Your SlideShare is downloading. ×
Polyglot Persistence
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×
Saving this for later? Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime – even offline.
Text the download link to your phone
Standard text messaging rates apply

Polyglot Persistence

1,192
views

Published on

Published in: Technology

0 Comments
3 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
1,192
On Slideshare
0
From Embeds
0
Number of Embeds
5
Actions
Shares
0
Downloads
33
Comments
0
Likes
3
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide

Transcript

  • 1. POLYGLOT PERSISTENCE alex brandt sr developer Wednesday, August 21, 13
  • 2. 2 Wednesday, August 21, 13
  • 3. 3 Wednesday, August 21, 13
  • 4. 4 Wednesday, August 21, 13
  • 5. 5 RDBMS may not be the best fit Wednesday, August 21, 13
  • 6. 6 Wednesday, August 21, 13
  • 7. 7 Wednesday, August 21, 13
  • 8. INTRODUCTION TO NOSQL • NoSQL Database (1998) • NoREL • “Not only SQL” • NoSQL (2009) 8 Wednesday, August 21, 13
  • 9. 9 5 Characteristics Wednesday, August 21, 13
  • 10. 10 Non-relational Wednesday, August 21, 13
  • 11. 11 Distributed Wednesday, August 21, 13
  • 12. 12 Open-source Wednesday, August 21, 13
  • 13. 13 Horizontally Scalable Wednesday, August 21, 13
  • 14. 14 Schema-less Wednesday, August 21, 13
  • 15. orders customers order lines credit cards ID: 1001 line items: customer: Ann 0321293533 0321601912 0131495054 2 1 1 $48 $48 $39 $51 $39 $51 payment details: Card: Amex CC #: 12345 expires: 04/2001 15 Wednesday, August 21, 13
  • 16. 16 Types in Detail Wednesday, August 21, 13
  • 17. Key/Value DatabaseS 17 Wednesday, August 21, 13
  • 18. Key/Value DatabaseS • Good Use Cases: • Storing Session Information • User Profiles & Preferences • Shopping Cart Data • Bad Use Cases: • Data Relationships •Multi-operation Transactions •Query by Data 18 Wednesday, August 21, 13
  • 19. Key/Value DatabaseS • Good Use Cases: • Storing Session Information • User Profiles & Preferences • Shopping Cart Data • Bad Use Cases: • Data Relationships •Multi-operation Transactions •Query by Data 19 Wednesday, August 21, 13
  • 20. document Database 20 Wednesday, August 21, 13
  • 21. document Databases •Good Use Cases: • Event Logging • Blogging Platforms • Real-time Analytics • Article storage • Bad Use Cases: • Complex Transactions •Queries against Varying Aggregate Structures 21 Wednesday, August 21, 13
  • 22. document Databases •Good Use Cases: • Event Logging • Blogging Platforms • Real-time Analytics • Article storage • Bad Use Cases: • Complex Transactions •Queries against Varying Aggregate Structures 22 Wednesday, August 21, 13
  • 23. COLUMN FAMILY 23 Wednesday, August 21, 13
  • 24. 24 Wednesday, August 21, 13
  • 25. COLUMN-FAMILY datastores •Good Use Cases: • Event Logging • Blogging Platforms • Counters (page visits) • Expiring Usage • Bad Use Cases: • ACID transactions required • Early prototype applications 25 Wednesday, August 21, 13
  • 26. graph database 26 Wednesday, August 21, 13
  • 27. Amanda KNOWS KNOWS KNOWS Robert Gerry Lamar KNOWS App 1 BUILT BUILT KNOWS App 2 USES BUILT Christie KNOWS Destiny Jessica KNOWS App 3 BUILT USES USES USES KNOWS graph database 27 Wednesday, August 21, 13
  • 28. graph databases •Good Use Cases: • Connected Data • Location-based services • Recommendation engines • Bad Use Cases: • Ability to update specific aggregates 28 Wednesday, August 21, 13
  • 29. Companies using nosql 29 DATABASE COMPANIES Wednesday, August 21, 13
  • 30. THE FUTURE IS POLYGLOT 30 Neo4J database Cassandra database Couch database MongoDB database RELATIONAL DATABASE Graph-structured domain rules Columnar data access with decentralization Document structures Document structures with offline processing (Actors) (Actors) (Actors)(Actors) Asynchronous message passing MODULE 1 MODULE 2 MODULE 3 MODULE 4 IEEE Software Sept/October 2010 - Debasish Ghosh / Twitter @debasishg Wednesday, August 21, 13
  • 31. 31 POLYGLOT PATTERN: cache ORDER TAKING RESTAURANT MANAGEMENT REDIS CACHE MYSQL DATABASE SECONDFIRST CONSUMER RESTAURANT OWNER Credit: @crichardson Wednesday, August 21, 13
  • 32. 32 POLYGLOT PATTERN: write to sql and NOSQL NEW TWEET INSERT LPUSHX LTRIM MySQL TWEETS FOLLOWS FOLLOWERS Redis: Timeline FOLLOWER 1 FOLLOWER 2 FOLLOWER 3 Avoid expensive MySQL joins Credit: @crichardson Wednesday, August 21, 13
  • 33. 33 POLYGLOT PATTERN: REPLICATE FROM MYsql to NOSQL QUERY SERVICE UPDATE SERVICE REDIS MYSQL DATABASE SYSTEM OF RECORD MATERIALIZED VIEW READER WRITER replicate and denormalize query() update() Credit: @crichardson Wednesday, August 21, 13
  • 34. 34 Atomic Consistent Isolated Durable ACID to base Basically Available Soft state Eventually consistent Wednesday, August 21, 13

×