If NoSQL is your answer, you are probably asking the wrong question.
-
Upload
lukas-smith -
Category
Technology
-
view
2.711 -
download
0
description
Transcript of If NoSQL is your answer, you are probably asking the wrong question.
![Page 1: If NoSQL is your answer, you are probably asking the wrong question.](https://reader034.fdocuments.in/reader034/viewer/2022052507/554f8ce0b4c905d25b8b4f7e/html5/thumbnails/1.jpg)
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.](https://reader034.fdocuments.in/reader034/viewer/2022052507/554f8ce0b4c905d25b8b4f7e/html5/thumbnails/2.jpg)
Hi, my name is Lukas Kahwe
Smith
![Page 3: If NoSQL is your answer, you are probably asking the wrong question.](https://reader034.fdocuments.in/reader034/viewer/2022052507/554f8ce0b4c905d25b8b4f7e/html5/thumbnails/3.jpg)
and I am not a troll
![Page 4: If NoSQL is your answer, you are probably asking the wrong question.](https://reader034.fdocuments.in/reader034/viewer/2022052507/554f8ce0b4c905d25b8b4f7e/html5/thumbnails/4.jpg)
![Page 5: If NoSQL is your answer, you are probably asking the wrong question.](https://reader034.fdocuments.in/reader034/viewer/2022052507/554f8ce0b4c905d25b8b4f7e/html5/thumbnails/5.jpg)
@lsmith
![Page 6: If NoSQL is your answer, you are probably asking the wrong question.](https://reader034.fdocuments.in/reader034/viewer/2022052507/554f8ce0b4c905d25b8b4f7e/html5/thumbnails/6.jpg)
@lsmith77
![Page 7: If NoSQL is your answer, you are probably asking the wrong question.](https://reader034.fdocuments.in/reader034/viewer/2022052507/554f8ce0b4c905d25b8b4f7e/html5/thumbnails/7.jpg)
SQL
![Page 8: If NoSQL is your answer, you are probably asking the wrong question.](https://reader034.fdocuments.in/reader034/viewer/2022052507/554f8ce0b4c905d25b8b4f7e/html5/thumbnails/8.jpg)
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.](https://reader034.fdocuments.in/reader034/viewer/2022052507/554f8ce0b4c905d25b8b4f7e/html5/thumbnails/9.jpg)
SQL
![Page 10: If NoSQL is your answer, you are probably asking the wrong question.](https://reader034.fdocuments.in/reader034/viewer/2022052507/554f8ce0b4c905d25b8b4f7e/html5/thumbnails/10.jpg)
NoSQL
![Page 11: If NoSQL is your answer, you are probably asking the wrong question.](https://reader034.fdocuments.in/reader034/viewer/2022052507/554f8ce0b4c905d25b8b4f7e/html5/thumbnails/11.jpg)
No SQL?
![Page 12: If NoSQL is your answer, you are probably asking the wrong question.](https://reader034.fdocuments.in/reader034/viewer/2022052507/554f8ce0b4c905d25b8b4f7e/html5/thumbnails/12.jpg)
Not Only SQL?
![Page 13: If NoSQL is your answer, you are probably asking the wrong question.](https://reader034.fdocuments.in/reader034/viewer/2022052507/554f8ce0b4c905d25b8b4f7e/html5/thumbnails/13.jpg)
Time for some pseudo math
![Page 14: If NoSQL is your answer, you are probably asking the wrong question.](https://reader034.fdocuments.in/reader034/viewer/2022052507/554f8ce0b4c905d25b8b4f7e/html5/thumbnails/14.jpg)
Given that most relational databases have an SQL
interface
![Page 15: If NoSQL is your answer, you are probably asking the wrong question.](https://reader034.fdocuments.in/reader034/viewer/2022052507/554f8ce0b4c905d25b8b4f7e/html5/thumbnails/15.jpg)
RDBMS - SQL = NoSQL ?
![Page 16: If NoSQL is your answer, you are probably asking the wrong question.](https://reader034.fdocuments.in/reader034/viewer/2022052507/554f8ce0b4c905d25b8b4f7e/html5/thumbnails/16.jpg)
NoSQL + SQL = RDBMS ?
![Page 17: If NoSQL is your answer, you are probably asking the wrong question.](https://reader034.fdocuments.in/reader034/viewer/2022052507/554f8ce0b4c905d25b8b4f7e/html5/thumbnails/17.jpg)
Key-Value-Store + Complex Queries = NoSQL ?
![Page 18: If NoSQL is your answer, you are probably asking the wrong question.](https://reader034.fdocuments.in/reader034/viewer/2022052507/554f8ce0b4c905d25b8b4f7e/html5/thumbnails/18.jpg)
I am about to blow your mind
![Page 19: If NoSQL is your answer, you are probably asking the wrong question.](https://reader034.fdocuments.in/reader034/viewer/2022052507/554f8ce0b4c905d25b8b4f7e/html5/thumbnails/19.jpg)
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.](https://reader034.fdocuments.in/reader034/viewer/2022052507/554f8ce0b4c905d25b8b4f7e/html5/thumbnails/20.jpg)
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.](https://reader034.fdocuments.in/reader034/viewer/2022052507/554f8ce0b4c905d25b8b4f7e/html5/thumbnails/21.jpg)
Can we agree to stop using the term NoSQL ?
![Page 22: If NoSQL is your answer, you are probably asking the wrong question.](https://reader034.fdocuments.in/reader034/viewer/2022052507/554f8ce0b4c905d25b8b4f7e/html5/thumbnails/22.jpg)
Using NewSQL is not any better!
![Page 23: If NoSQL is your answer, you are probably asking the wrong question.](https://reader034.fdocuments.in/reader034/viewer/2022052507/554f8ce0b4c905d25b8b4f7e/html5/thumbnails/23.jpg)
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.](https://reader034.fdocuments.in/reader034/viewer/2022052507/554f8ce0b4c905d25b8b4f7e/html5/thumbnails/24.jpg)
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.](https://reader034.fdocuments.in/reader034/viewer/2022052507/554f8ce0b4c905d25b8b4f7e/html5/thumbnails/25.jpg)
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.](https://reader034.fdocuments.in/reader034/viewer/2022052507/554f8ce0b4c905d25b8b4f7e/html5/thumbnails/26.jpg)
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.](https://reader034.fdocuments.in/reader034/viewer/2022052507/554f8ce0b4c905d25b8b4f7e/html5/thumbnails/27.jpg)
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.](https://reader034.fdocuments.in/reader034/viewer/2022052507/554f8ce0b4c905d25b8b4f7e/html5/thumbnails/28.jpg)
RDBMS - relational model = ?
![Page 29: If NoSQL is your answer, you are probably asking the wrong question.](https://reader034.fdocuments.in/reader034/viewer/2022052507/554f8ce0b4c905d25b8b4f7e/html5/thumbnails/29.jpg)
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.](https://reader034.fdocuments.in/reader034/viewer/2022052507/554f8ce0b4c905d25b8b4f7e/html5/thumbnails/30.jpg)
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.](https://reader034.fdocuments.in/reader034/viewer/2022052507/554f8ce0b4c905d25b8b4f7e/html5/thumbnails/31.jpg)
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.](https://reader034.fdocuments.in/reader034/viewer/2022052507/554f8ce0b4c905d25b8b4f7e/html5/thumbnails/32.jpg)
So what do we really worry about .. ?
![Page 33: If NoSQL is your answer, you are probably asking the wrong question.](https://reader034.fdocuments.in/reader034/viewer/2022052507/554f8ce0b4c905d25b8b4f7e/html5/thumbnails/33.jpg)
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.](https://reader034.fdocuments.in/reader034/viewer/2022052507/554f8ce0b4c905d25b8b4f7e/html5/thumbnails/34.jpg)
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.](https://reader034.fdocuments.in/reader034/viewer/2022052507/554f8ce0b4c905d25b8b4f7e/html5/thumbnails/35.jpg)
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.](https://reader034.fdocuments.in/reader034/viewer/2022052507/554f8ce0b4c905d25b8b4f7e/html5/thumbnails/36.jpg)
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.](https://reader034.fdocuments.in/reader034/viewer/2022052507/554f8ce0b4c905d25b8b4f7e/html5/thumbnails/37.jpg)
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.](https://reader034.fdocuments.in/reader034/viewer/2022052507/554f8ce0b4c905d25b8b4f7e/html5/thumbnails/38.jpg)
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.](https://reader034.fdocuments.in/reader034/viewer/2022052507/554f8ce0b4c905d25b8b4f7e/html5/thumbnails/39.jpg)
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.](https://reader034.fdocuments.in/reader034/viewer/2022052507/554f8ce0b4c905d25b8b4f7e/html5/thumbnails/40.jpg)
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.](https://reader034.fdocuments.in/reader034/viewer/2022052507/554f8ce0b4c905d25b8b4f7e/html5/thumbnails/41.jpg)
Innovators Dilemma
![Page 42: If NoSQL is your answer, you are probably asking the wrong question.](https://reader034.fdocuments.in/reader034/viewer/2022052507/554f8ce0b4c905d25b8b4f7e/html5/thumbnails/42.jpg)
“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.](https://reader034.fdocuments.in/reader034/viewer/2022052507/554f8ce0b4c905d25b8b4f7e/html5/thumbnails/43.jpg)
The good news is that RDBMS vendors have been
unstuck
![Page 44: If NoSQL is your answer, you are probably asking the wrong question.](https://reader034.fdocuments.in/reader034/viewer/2022052507/554f8ce0b4c905d25b8b4f7e/html5/thumbnails/44.jpg)
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.](https://reader034.fdocuments.in/reader034/viewer/2022052507/554f8ce0b4c905d25b8b4f7e/html5/thumbnails/45.jpg)
In many ways its easier to start from scratch
![Page 46: If NoSQL is your answer, you are probably asking the wrong question.](https://reader034.fdocuments.in/reader034/viewer/2022052507/554f8ce0b4c905d25b8b4f7e/html5/thumbnails/46.jpg)
But lets look at some examples of things that have
happened in the RDBMS world
![Page 47: If NoSQL is your answer, you are probably asking the wrong question.](https://reader034.fdocuments.in/reader034/viewer/2022052507/554f8ce0b4c905d25b8b4f7e/html5/thumbnails/47.jpg)
VoltDB, ScaleBase and NuoDB promise elastic scaling on top of an RDBMS with SQL
and ACID* compliance
http://voltdb.com/tao-volt/five-principles.phphttp://www.scalebase.com/solution/
http://www.nuodb.com/explore/sql-cloud-database-how-it-works/
![Page 48: If NoSQL is your answer, you are probably asking the wrong question.](https://reader034.fdocuments.in/reader034/viewer/2022052507/554f8ce0b4c905d25b8b4f7e/html5/thumbnails/48.jpg)
Both PostgreSQL and MySQL have native support
for JSON (and XML)
![Page 49: If NoSQL is your answer, you are probably asking the wrong question.](https://reader034.fdocuments.in/reader034/viewer/2022052507/554f8ce0b4c905d25b8b4f7e/html5/thumbnails/49.jpg)
PostgreSQL performs reads on par with MongoDB,
especially for larger data sets
http://www.slideshare.net/stormdb_cloud_database/postgres-xc-askeyvaluestorevsmongodbhttp://jathanism-event-notes.readthedocs.org/en/latest/scale11x/talks/
postgres_as_a_schemaless_db.html
![Page 50: If NoSQL is your answer, you are probably asking the wrong question.](https://reader034.fdocuments.in/reader034/viewer/2022052507/554f8ce0b4c905d25b8b4f7e/html5/thumbnails/50.jpg)
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.](https://reader034.fdocuments.in/reader034/viewer/2022052507/554f8ce0b4c905d25b8b4f7e/html5/thumbnails/51.jpg)
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.](https://reader034.fdocuments.in/reader034/viewer/2022052507/554f8ce0b4c905d25b8b4f7e/html5/thumbnails/52.jpg)
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.](https://reader034.fdocuments.in/reader034/viewer/2022052507/554f8ce0b4c905d25b8b4f7e/html5/thumbnails/53.jpg)
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.](https://reader034.fdocuments.in/reader034/viewer/2022052507/554f8ce0b4c905d25b8b4f7e/html5/thumbnails/54.jpg)
Conclusion
![Page 55: If NoSQL is your answer, you are probably asking the wrong question.](https://reader034.fdocuments.in/reader034/viewer/2022052507/554f8ce0b4c905d25b8b4f7e/html5/thumbnails/55.jpg)
SQL is not a scalability enemy
![Page 56: If NoSQL is your answer, you are probably asking the wrong question.](https://reader034.fdocuments.in/reader034/viewer/2022052507/554f8ce0b4c905d25b8b4f7e/html5/thumbnails/56.jpg)
SQL is not a scalability enemy
![Page 57: If NoSQL is your answer, you are probably asking the wrong question.](https://reader034.fdocuments.in/reader034/viewer/2022052507/554f8ce0b4c905d25b8b4f7e/html5/thumbnails/57.jpg)
How big is your data .. really?
![Page 58: If NoSQL is your answer, you are probably asking the wrong question.](https://reader034.fdocuments.in/reader034/viewer/2022052507/554f8ce0b4c905d25b8b4f7e/html5/thumbnails/58.jpg)
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.](https://reader034.fdocuments.in/reader034/viewer/2022052507/554f8ce0b4c905d25b8b4f7e/html5/thumbnails/59.jpg)
There can be innovation in the RDBMS world
![Page 60: If NoSQL is your answer, you are probably asking the wrong question.](https://reader034.fdocuments.in/reader034/viewer/2022052507/554f8ce0b4c905d25b8b4f7e/html5/thumbnails/60.jpg)
Using an RDBMS is fine
![Page 61: If NoSQL is your answer, you are probably asking the wrong question.](https://reader034.fdocuments.in/reader034/viewer/2022052507/554f8ce0b4c905d25b8b4f7e/html5/thumbnails/61.jpg)
So is using Doc-Stores, Key-Value-Stores, Graph DBs
![Page 62: If NoSQL is your answer, you are probably asking the wrong question.](https://reader034.fdocuments.in/reader034/viewer/2022052507/554f8ce0b4c905d25b8b4f7e/html5/thumbnails/62.jpg)
Using NoSQL is not fine
![Page 63: If NoSQL is your answer, you are probably asking the wrong question.](https://reader034.fdocuments.in/reader034/viewer/2022052507/554f8ce0b4c905d25b8b4f7e/html5/thumbnails/63.jpg)
Just pick the right tool for the job ..
![Page 64: If NoSQL is your answer, you are probably asking the wrong question.](https://reader034.fdocuments.in/reader034/viewer/2022052507/554f8ce0b4c905d25b8b4f7e/html5/thumbnails/64.jpg)
Duh!
![Page 65: If NoSQL is your answer, you are probably asking the wrong question.](https://reader034.fdocuments.in/reader034/viewer/2022052507/554f8ce0b4c905d25b8b4f7e/html5/thumbnails/65.jpg)
Fin