NoSQLTech Days 2012Boris Bucha
THE APP GDI, WPF, SVG, CSS, HTML5 Canvas, WebForms, JSP, … Message Bus, Crif Technology Platform, Crif CreditFlow, BizTalk...
Why so relational ?• Store / Load interface• Simple , beautiful , flexible (efficiently enough  supports many usecases - a...
The ugly• Impedance mismatch (well …)• “Don’t scale” (well …) –  Google, Facebook, Linkedin,..  – Vertical / horizontal   ...
Welcome to the world of              Polyglot persistence• Document stores       CouchDB, MongoDB, RavenDB, …• Key-value s...
So what do WE typically store ?        Objects graphs
Object graphs like…
Object graphs that respect rules         of concurrent access• Objects can often be edited as a group  – Coarse-Grained Lo...
Aggregate [DDD]• Consistency boundaries (ACID)• Relational databases are aggregate-ignorant• Document database to RESCUE!•...
Cost of working with aggregates
RavenDB
Use cases• When ?  – View model persistance – CQRS  – Aggregates stores• When NOT ?  – BI, Reporting – many adhoc queries
Cloud friendly
Upcoming SlideShare
Loading in …5
×

No SQL - Intro

413 views

Published on

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

  • Be the first to like this

No Downloads
Views
Total views
413
On SlideShare
0
From Embeds
0
Number of Embeds
7
Actions
Shares
0
Downloads
2
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide
  • - vela vyrobcovdodavavpodstatepodobneriesenie – “and I don’t care as long as I have Hibernate”
  • No SQL - Intro

    1. 1. NoSQLTech Days 2012Boris Bucha
    2. 2. THE APP GDI, WPF, SVG, CSS, HTML5 Canvas, WebForms, JSP, … Message Bus, Crif Technology Platform, Crif CreditFlow, BizTalk, … (long/short running, sync/async ..) Oracle, Microsoft, Postrge ? … SQL
    3. 3. Why so relational ?• Store / Load interface• Simple , beautiful , flexible (efficiently enough supports many usecases - almost)• 5 comammandments to make life easier (5NF) – Ayende - compression• Integration vs Application database (SOA) – agreed (relational) model makes DB easy target to misuse by other apps
    4. 4. The ugly• Impedance mismatch (well …)• “Don’t scale” (well …) – Google, Facebook, Linkedin,.. – Vertical / horizontal vs – Shared disk (in cluster)• Don’t capture the way data are accessed (UI, BL analogy)
    5. 5. Welcome to the world of Polyglot persistence• Document stores CouchDB, MongoDB, RavenDB, …• Key-value stores• Column Family stores• Graph stores Neo4J, Infinite Graph, OrientDB, FlockDB,…
    6. 6. So what do WE typically store ? Objects graphs
    7. 7. Object graphs like…
    8. 8. Object graphs that respect rules of concurrent access• Objects can often be edited as a group – Coarse-Grained Lock [PoEAA] (Fowler 2002) Consistency aplied to groups Object graph = intent Impedance mismatch !!
    9. 9. Aggregate [DDD]• Consistency boundaries (ACID)• Relational databases are aggregate-ignorant• Document database to RESCUE!• 1 IO OP = Sharding (sharding function ie. geoloc,• vip customers,)Effective Aggregate Design [http://dddcommunity.org/library/vernon_2011]
    10. 10. Cost of working with aggregates
    11. 11. RavenDB
    12. 12. Use cases• When ? – View model persistance – CQRS – Aggregates stores• When NOT ? – BI, Reporting – many adhoc queries
    13. 13. Cloud friendly

    ×