if nosql is your answer, you are probably asking the wrong question

65
If NoSQL is your answer, you are probably asking the wrong question.

Upload: lukas-smith

Post on 10-May-2015

2.711 views

Category:

Technology


0 download

DESCRIPTION

This session is not about bad mouthing MongoDB, CoachDB, big data, map reduce or any of the other more recent additions to the database buzzword bingo. Instead it is about looking at how NoSQL is a confusing term and a more realistic assessment how old and new approaches in databases impact todays architectures...

TRANSCRIPT

Page 1: If NoSQL is your answer, you are probably asking the wrong question

If NoSQL is your answer, you are probably asking the wrong

question.

Page 2: If NoSQL is your answer, you are probably asking the wrong question

Hi, my name is Lukas Kahwe

Smith

Page 3: If NoSQL is your answer, you are probably asking the wrong question

and I am not a troll

Page 4: If NoSQL is your answer, you are probably asking the wrong question
Page 5: If NoSQL is your answer, you are probably asking the wrong question

@lsmith

Page 6: If NoSQL is your answer, you are probably asking the wrong question

@lsmith77

Page 7: If NoSQL is your answer, you are probably asking the wrong question

SQL

Page 8: If NoSQL is your answer, you are probably asking the wrong question

For the conference we're looking for someone who can be a part of the 'Databases - short talks' presentations to

give a lightning talk about SQL.

Page 9: If NoSQL is your answer, you are probably asking the wrong question

SQL

Page 10: If NoSQL is your answer, you are probably asking the wrong question

NoSQL

Page 11: If NoSQL is your answer, you are probably asking the wrong question

No SQL?

Page 12: If NoSQL is your answer, you are probably asking the wrong question

Not Only SQL?

Page 13: If NoSQL is your answer, you are probably asking the wrong question

Time for some pseudo math

Page 14: If NoSQL is your answer, you are probably asking the wrong question

Given that most relational databases have an SQL

interface

Page 15: If NoSQL is your answer, you are probably asking the wrong question

RDBMS - SQL = NoSQL ?

Page 16: If NoSQL is your answer, you are probably asking the wrong question

NoSQL + SQL = RDBMS ?

Page 17: If NoSQL is your answer, you are probably asking the wrong question

Key-Value-Store + Complex Queries = NoSQL ?

Page 18: If NoSQL is your answer, you are probably asking the wrong question

I am about to blow your mind

Page 19: If NoSQL is your answer, you are probably asking the wrong question

I have created a database API for unstructured

hierarchical documents on top of an RDBMS with

an SQL-like interface

Page 20: If NoSQL is your answer, you are probably asking the wrong question

And I wasn’t even the first person to do it ..

Page 21: If NoSQL is your answer, you are probably asking the wrong question

Can we agree to stop using the term NoSQL ?

Page 22: If NoSQL is your answer, you are probably asking the wrong question

Using NewSQL is not any better!

Page 23: If NoSQL is your answer, you are probably asking the wrong question

Instead talk about RDBMS, Doc-Stores, Key-Value-

Stores, Graph-Databases ..

Page 24: If NoSQL is your answer, you are probably asking the wrong question

There is clearly a growing number of people considering

alternatives to RDBMS

Page 25: If NoSQL is your answer, you are probably asking the wrong question

Actually Key-Value-Stores have been popular for many

years already

Page 26: If NoSQL is your answer, you are probably asking the wrong question

So clearly the current trend is not just about sharding

unstructured documents in an elastically scaling

cluster

Page 27: If NoSQL is your answer, you are probably asking the wrong question

Its also not about getting rid of SQL, after all the CAP theorem

doesn’t talk about what query languages to use

Page 28: If NoSQL is your answer, you are probably asking the wrong question

RDBMS - relational model = ?

Page 29: If NoSQL is your answer, you are probably asking the wrong question

We still love RDBMS for what their good for

Storing and retrieving structured relational small to

large data sets with high consistency and reliability

Page 30: If NoSQL is your answer, you are probably asking the wrong question

And yes we also still love SQL

Running ad-hoc search queries and schema

updates even if we are not rocket scientists

http://2012.nosql-matters.org/cgn/slides/#olaf_bachmann

Page 31: If NoSQL is your answer, you are probably asking the wrong question

And while JSON queries might be easier parsed by computers

SQL is definitely easy to parse for humans

Page 32: If NoSQL is your answer, you are probably asking the wrong question

So what do we really worry about .. ?

Page 33: If NoSQL is your answer, you are probably asking the wrong question

ACID, Asynchronous, Atomic Updates, BigData, Binaries, CAP Theorem, Column Oriented, E l a s t i c S c a l i n g , E v e n t u a l Consistency, Failover, FullText Search, Graphs, Low Latency, In Memory, MapReduce, Master-Master, Sharding, Smart Clients

Page 34: If NoSQL is your answer, you are probably asking the wrong question

ACID, Asynchronous, Atomic Updates, BigData, Binaries, CAP Theorem, Column Oriented, E l a s t i c S c a l i n g , E v e n t u a l Consistency, Failover, FullText Search, Graphs, Low Latency, In Memory, MapReduce, Master-Master, Sharding, Smart Clients

Page 35: If NoSQL is your answer, you are probably asking the wrong question

ACID, Asynchronous, Atomic Updates, BigData , Binaries, C A P T h e o r e m , C o l u m n Oriented, Elastic Scaling, Eventual Consistency, Failover, FullText Search, Graphs, Low Latency, In Memory, MapReduce, Master-Master, Sharding, Smart Clients

Page 36: If NoSQL is your answer, you are probably asking the wrong question

ACID, Asynchronous, Atomic Updates, BigData, Binaries, CAP Theorem, Column Oriented, E l a s t i c S c a l i n g , E v e n t u a l Consistency, Failover, FullText Search, Graphs, Low Latency, In Memory, MapReduce, Master-Master, Sharding, Smart Clients

Page 37: If NoSQL is your answer, you are probably asking the wrong question

ACID, Asynchronous, Atomic Updates, BigData, Binaries, CAP Theorem, Column Oriented, Elast ic Scal ing , Even tua l Consistency, Failover, FullText Search, Graphs, Low Latency, In Memory, MapReduce, Master-Master, Sharding, Smart Clients

Page 38: If NoSQL is your answer, you are probably asking the wrong question

ACID, Asynchronous, Atomic Updates, BigData, Binaries, CAP Theorem, Column Oriented, E l a s t i c S c a l i n g , E v e n t u a l Consistency, Failover, FullText Search, Graphs, Low Latency, In Memory, MapReduce, Master-Master, Sharding, Smart Clients

Page 39: If NoSQL is your answer, you are probably asking the wrong question

ACID, Asynchronous, Atomic Updates, BigData, Binaries, CAP Theorem, Column Oriented, E l a s t i c S c a l i n g , E v e n t u a l Consistency, Failover, FullText Search, Graphs, Low Latency, In Memory, MapReduce, Master-Master, Sharding, Smart Clients

Page 40: If NoSQL is your answer, you are probably asking the wrong question

RDBMS vendors got stuck as a result of their own

success

Page 41: If NoSQL is your answer, you are probably asking the wrong question

Innovators Dilemma

Page 42: If NoSQL is your answer, you are probably asking the wrong question

“The two biggest issues that stand out to me are that current leading relational databases never

solved scale out very well, and online operations are too expensive. [..] The

innovation hasn't been in the language, but in the design of database engines themselves. “

Brian Aker (Drizzle, previously MySQL)

http://blog.krow.net/2013/03/mysql-vs-nosql-vs-postgres-vs-sql.html

Page 43: If NoSQL is your answer, you are probably asking the wrong question

The good news is that RDBMS vendors have been

unstuck

Page 44: If NoSQL is your answer, you are probably asking the wrong question

However its hard to move on from a monolithic

architecture, Drizzle is a radical attempt at trying it

Page 45: If NoSQL is your answer, you are probably asking the wrong question

In many ways its easier to start from scratch

Page 46: If NoSQL is your answer, you are probably asking the wrong question

But lets look at some examples of things that have

happened in the RDBMS world

Page 48: If NoSQL is your answer, you are probably asking the wrong question

Both PostgreSQL and MySQL have native support

for JSON (and XML)

Page 50: If NoSQL is your answer, you are probably asking the wrong question

MySQL Server and MySQL Cluster allow by passing SQL via the Memcache protocol

http://blog.ulf-wendel.de/downloads/nosql_in_mysql.pdf

Page 51: If NoSQL is your answer, you are probably asking the wrong question

MySQL and PostgreSQL both have forks providing

Multi-Master replication

http://www.enterprisedb.com/products-services-training/products-overview/xdb-replication-server-multi-master

http://www.codership.com/content/using-galera-cluster

Page 52: If NoSQL is your answer, you are probably asking the wrong question

OQGRAPH Engine to store graphs in Maria DB

http://openquery.com/products/graph-engine

Page 53: If NoSQL is your answer, you are probably asking the wrong question

MySQLND plugins for client side query caching,

transaction aware load balancing

http://php.net/mysqlnd_qchttp://php.net/manual/en/book.mysqlnd-ms.php

Page 54: If NoSQL is your answer, you are probably asking the wrong question

Conclusion

Page 55: If NoSQL is your answer, you are probably asking the wrong question

SQL is not a scalability enemy

Page 56: If NoSQL is your answer, you are probably asking the wrong question

SQL is not a scalability enemy

Page 57: If NoSQL is your answer, you are probably asking the wrong question

How big is your data .. really?

Page 58: If NoSQL is your answer, you are probably asking the wrong question

Operational experience only comes over time, having

something solid that just works matters

Page 59: If NoSQL is your answer, you are probably asking the wrong question

There can be innovation in the RDBMS world

Page 60: If NoSQL is your answer, you are probably asking the wrong question

Using an RDBMS is fine

Page 61: If NoSQL is your answer, you are probably asking the wrong question

So is using Doc-Stores, Key-Value-Stores, Graph DBs

Page 62: If NoSQL is your answer, you are probably asking the wrong question

Using NoSQL is not fine

Page 63: If NoSQL is your answer, you are probably asking the wrong question

Just pick the right tool for the job ..

Page 64: If NoSQL is your answer, you are probably asking the wrong question

Duh!

Page 65: If NoSQL is your answer, you are probably asking the wrong question

Fin