Juozas “Joe” Kaziukėnashttp://juokaz.com / juozas@juokaz.com / @juokaz
 Juozas Kaziukėnas, Lithuanian You can call me Joe ~4 years in Edinburgh, UK CEO of Web Species Ltd Occasional open s...
 Reliability Relational model Transactions SQL Integration
 Atomicity Consistency Isolation Durability
 Vertical scalability   Hardware (memory) limits Horizontal scalability   Joins   Transactions Consistency is a majo...
Consistency                  Partition                                         Availability                  tolerance* ht...
 Data driven projects A lot of data Real-time analysis Google BigTable and Amazon Dynamo
 Acid:   Atomicity   Consistency   Isolation   Durability Hard to implement in distributed systems Eventual consist...
 Schema-less Types   Key Value      Dynamo, Membase, Riak, Redis   Document      MongoDB and CouchDB   Graph      ...
 Understand   Business model   Use cases   Size   Requirements Do not over-engineer, it will fail anyway Do not loc...
 Dynamic queries   Index data Map/Reduce Key lookups
 Created by Google Process data using mappers and reducers Can be distributed on any amount of machines Popular to use...
 Distributed systems are tricky Databases are buggy… Foursquare, Tumblr, Twitter and more publicly failed Outage Data...
NoSQL > SQL                NoSQL < SQL Horizontal scalability    No partial reads High write OR read        No securit...
 Distribution model   Dynamo like   Master-Master   Master-Slave Query model   Map/Reduce   Dynamic queries Disk s...
 In-memory database (needs to fit in memory*)   Eventual consistency in disk Master-slave replication Key-value, but a...
 Master/Slave replication Sharding Dynamic queries   Using JavaScript expressions Update-in-place with atomic operati...
 Bi-directional replication. Master-master Versioning and conflict detection Always consistent Needs compacting, not g...
 Faster writes than reads Query by column Secondary indices Map/reduce possible with Hadoop Complex, Java system Use...
 Map/Reduce with Hadoop Random access Real-time read/write access
 Graph database Master-slave Path finding Optimized for reads For complicated interconnected data
 Measure   Memory   Disk I/O   CPU utilization Don’t try to make a database do things it wasn’t  designed for Create...
Keep in touch  http://juokaz.com  juozas@juokaz.com  twitter: @juokaz
Choosing The Right NoSQL Database - 4Developers
Choosing The Right NoSQL Database - 4Developers
Choosing The Right NoSQL Database - 4Developers
Choosing The Right NoSQL Database - 4Developers
Choosing The Right NoSQL Database - 4Developers
Choosing The Right NoSQL Database - 4Developers
Choosing The Right NoSQL Database - 4Developers
Choosing The Right NoSQL Database - 4Developers
Upcoming SlideShare
Loading in...5
×

Choosing The Right NoSQL Database - 4Developers

4,500

Published on

Published in: Technology
0 Comments
4 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
4,500
On Slideshare
0
From Embeds
0
Number of Embeds
1
Actions
Shares
0
Downloads
73
Comments
0
Likes
4
Embeds 0
No embeds

No notes for slide

Choosing The Right NoSQL Database - 4Developers

  1. 1. Juozas “Joe” Kaziukėnashttp://juokaz.com / juozas@juokaz.com / @juokaz
  2. 2.  Juozas Kaziukėnas, Lithuanian You can call me Joe ~4 years in Edinburgh, UK CEO of Web Species Ltd Occasional open source developer Conferences speaker More info in http://juokaz.com Tweet me @juokaz
  3. 3.  Reliability Relational model Transactions SQL Integration
  4. 4.  Atomicity Consistency Isolation Durability
  5. 5.  Vertical scalability  Hardware (memory) limits Horizontal scalability  Joins  Transactions Consistency is a major bottleneck
  6. 6. Consistency Partition Availability tolerance* http://en.wikipedia.org/wiki/CAP_theorem
  7. 7.  Data driven projects A lot of data Real-time analysis Google BigTable and Amazon Dynamo
  8. 8.  Acid:  Atomicity  Consistency  Isolation  Durability Hard to implement in distributed systems Eventual consistency
  9. 9.  Schema-less Types  Key Value  Dynamo, Membase, Riak, Redis  Document  MongoDB and CouchDB  Graph  Neo4j, FlockDB  Column  Big Table, Cassandra, Hbase
  10. 10.  Understand  Business model  Use cases  Size  Requirements Do not over-engineer, it will fail anyway Do not lock-in
  11. 11.  Dynamic queries  Index data Map/Reduce Key lookups
  12. 12.  Created by Google Process data using mappers and reducers Can be distributed on any amount of machines Popular to use with Hadoop
  13. 13.  Distributed systems are tricky Databases are buggy… Foursquare, Tumblr, Twitter and more publicly failed Outage Data loss Consistency problem
  14. 14. NoSQL > SQL NoSQL < SQL Horizontal scalability  No partial reads High write OR read  No security throughput  No relational model Stores any data  Only stores data, no reporting, aggregating
  15. 15.  Distribution model  Dynamo like  Master-Master  Master-Slave Query model  Map/Reduce  Dynamic queries Disk structure  How database is persisted on a disk
  16. 16.  In-memory database (needs to fit in memory*)  Eventual consistency in disk Master-slave replication Key-value, but also sets, lists and hashes Supports transactions Good for expiring and/or rapidly changing data
  17. 17.  Master/Slave replication Sharding Dynamic queries  Using JavaScript expressions Update-in-place with atomic operations Can store files For anything MySQL would be used for, but schema- less is required Used to be unreliable on a single machine
  18. 18.  Bi-directional replication. Master-master Versioning and conflict detection Always consistent Needs compacting, not good for rapid changing data Map/Reduce as query mechanism Real-time data updates feed (_changes) Document validation Best for offline systems. Great for content stores
  19. 19.  Faster writes than reads Query by column Secondary indices Map/reduce possible with Hadoop Complex, Java system Used to store a lot of data
  20. 20.  Map/Reduce with Hadoop Random access Real-time read/write access
  21. 21.  Graph database Master-slave Path finding Optimized for reads For complicated interconnected data
  22. 22.  Measure  Memory  Disk I/O  CPU utilization Don’t try to make a database do things it wasn’t designed for Create a non-relational model Denormalize
  23. 23. Keep in touch http://juokaz.com juozas@juokaz.com twitter: @juokaz
  1. A particular slide catching your eye?

    Clipping is a handy way to collect important slides you want to go back to later.

×