Polyglot Persistence      Ole-Martin Mørk
Relasjonsdatabaser?
nosql-databaser?
Hvorfor så få?• Ukjent og skremmende teknologi?• Kunden er motvillig?• Ser ikke fordelene med nosql?
Hvorfor database?• Lagre data• Relasjonssøk• Lookup• Fulltekstsøk• Lage rapporter
Hvorfor RDBMS?• Lagre data• Relasjonssøk• Lookup• Fulltekstsøk• Lage rapporter
Hvorfor RDBMS?• Lagre data• Relasjonssøk• Lookup• Fulltekstsøk• Lage rapporter
ObjectRelational Mapping
RDBMS   OOP
Hvorfor RDBMS?• Lagre data• Relasjonssøk• Lookup• Fulltekstsøk• Lage rapporter
Hva med dette?• Lagre data• Relasjonssøk• Lookup• Fulltekstsøk• Lage rapporter
Ett system         System            Queries                           FulltextObject             Event storestore        ...
Ett system            System            Queries                              Graph                              Fulltext  ...
Do you read me?
Polyglot PersistenceIm confident to say that if you’re starting anew strategic enterprise application youshould no longer b...
Polyglot Persistence
CAP theorem
CAP theorem               RDBMS Cassandra RedisConsistencyAvailabilityPartition
Eventual Consistency
Eventuelt konsistens
Omsider konsistens
Eventual Consistency  First rule of Eventual Consistency          is to not talk about         Eventual Consistency       ...
Bank-konto Saldo: 1000 kr
Bank-konto           Saldo: 1000 kr-500 kr  ok?
Bank-konto               Saldo: 1000 kr-500 kr  ok?     OK
Bank-konto               Saldo: 1000 kr-500 kr                         -800 kr  ok?     OK                      ok?
Bank-konto               Saldo: 1000 kr-500 kr                          -800 kr  ok?     OK                OK     ok?
Bank-konto Saldo: 1000 kr
Bank-konto          Saldo: 1000 kr Ta ut500 kr
Bank-konto              Saldo: 500 kr Ta ut500 kr   OK
Bank-konto              Saldo: 500 kr Ta ut                        Ta ut500 kr   OK                   800 kr
Bank-konto              Saldo: -300 kr Ta ut                         Ta ut500 kr   OK               OK   800 kr
nosql fikser ORM• Rene objekter• Relasjoner slik som du ønsker dem
Hastighet
Requests pr second
Requests pr second600005000040000300002000010000    0        SET   GET   LPUSH   LPOP   SADD   SPOP   LRANGE
ReplicationLoad balancing   Failover  Recovery
Oppsummering
Takk for meg• martinfowler.com• qi4j.org• nosqltapes.com• bit.ly/nosql-landscape                           Ole-Martin Mørk
Polyglot persistence
Polyglot persistence
Upcoming SlideShare
Loading in …5
×

Polyglot persistence

617 views
586 views

Published on

A norwegian presentation on polyglot persistence

Published in: Technology, Economy & Finance
0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
617
On SlideShare
0
From Embeds
0
Number of Embeds
29
Actions
Shares
0
Downloads
0
Comments
0
Likes
1
Embeds 0
No embeds

No notes for slide
  • Polyglot persistence\n
  • Hvor mange bruker relasjonsdatabaser i prosjektene sitt?\n
  • Hvem bruker nosql-databaser?\n
  • Hvorfor er det slik?\n\nnosql eksistert siden 70-tallet, dbm\n\nBEKK kjenner generelt ikke teknologien godt nok. Vi tør kanskje ikke jobbe hardt for å få bruke det.\nGjelder både salg og tech\nNoen har brukt det på fritidsprosjekter og noe kompetansebygging\nOfte kan arkitekter og dba-er være vanskelig å overbevise.\n\nMå ha kunnskap og motivasjon\n
  • Hvorfor bruker vi egentlig databaser?\nLagre data\nGjenfinne data via identifikator\nGjenfinne data gjennom søk\nLage rapporter\n
  • Oppfyller alle vilkårene.\n\nPERFEKT!\n\nVel.... Den gjør jobben. Men ikke perfekt. Til tider bra, men man må alltid veie lagring opp mot gjennfinning f.eks.\nog fulltekst-søk... Det tar tid det\nog søk gjennom mange relasjoner, det er vanskelig og det tar tid\n\nRapporter derimot, det er det ganske bra, som regel.\n
  • Oppfyller alle vilkårene.\n\nPERFEKT!\n\nVel.... Den gjør jobben. Men ikke perfekt. Til tider bra, men man må alltid veie lagring opp mot gjennfinning f.eks.\nog fulltekst-søk... Det tar tid det\nog søk gjennom mange relasjoner, det er vanskelig og det tar tid\n\nRapporter derimot, det er det ganske bra, som regel.\n
  • Oppfyller alle vilkårene.\n\nPERFEKT!\n\nVel.... Den gjør jobben. Men ikke perfekt. Til tider bra, men man må alltid veie lagring opp mot gjennfinning f.eks.\nog fulltekst-søk... Det tar tid det\nog søk gjennom mange relasjoner, det er vanskelig og det tar tid\n\nRapporter derimot, det er det ganske bra, som regel.\n
  • Oppfyller alle vilkårene.\n\nPERFEKT!\n\nVel.... Den gjør jobben. Men ikke perfekt. Til tider bra, men man må alltid veie lagring opp mot gjennfinning f.eks.\nog fulltekst-søk... Det tar tid det\nog søk gjennom mange relasjoner, det er vanskelig og det tar tid\n\nRapporter derimot, det er det ganske bra, som regel.\n
  • Oppfyller alle vilkårene.\n\nPERFEKT!\n\nVel.... Den gjør jobben. Men ikke perfekt. Til tider bra, men man må alltid veie lagring opp mot gjennfinning f.eks.\nog fulltekst-søk... Det tar tid det\nog søk gjennom mange relasjoner, det er vanskelig og det tar tid\n\nRapporter derimot, det er det ganske bra, som regel.\n
  • ORM er vanskelig\nØdelegger ytelse\n\n
  • OOP fra Venus\nDatabaser fra Mars \n\nSikkert hørt om “Impedance mismatch”?\n\nDe passer ikke sammen, og ødelegger for hver andre.\n\nVi gjør vårt aller beste for at det skal fungere, men av og til er det greit å skille lag\n
  • Hvis vi går tilbake til denne\n
  • Hva med å benytte database-teknologi som er optimalisert for det det skal brukes til?\n\n
  • Rickard Øberg\nEt callcenter system som hadde mange krav til gjenfinning og søk\nObject store (key/value) - rask lookup, det man trenger\nEvent store (jdbm) - lagrer eventer med unike timestamps\nQueries (graph) - graph databaser er bedre og raskere for graf-queries\nFulltext search (lucene) - fulltekst søk er bedre og raskere for fulltekst\nReports (mysql) - rapporter er generelt noe rdbms gjør bra\n\nEvent store er GUD, alt kan gjenskapes derfra\n\nUtrolig fleksibel modell\n\nKan spørre datamodellen spørsmål senere\n
  • Rickard Øberg\nEt callcenter system som hadde mange krav til gjenfinning og søk\nObject store (key/value) - rask lookup, det man trenger\nEvent store (jdbm) - lagrer eventer med unike timestamps\nQueries (graph) - graph databaser er bedre og raskere for graf-queries\nFulltext search (lucene) - fulltekst søk er bedre og raskere for fulltekst\nReports (mysql) - rapporter er generelt noe rdbms gjør bra\n\nEvent store er GUD, alt kan gjenskapes derfra\n\nUtrolig fleksibel modell\n\nKan spørre datamodellen spørsmål senere\n
  • Rickard Øberg\nEt callcenter system som hadde mange krav til gjenfinning og søk\nObject store (key/value) - rask lookup, det man trenger\nEvent store (jdbm) - lagrer eventer med unike timestamps\nQueries (graph) - graph databaser er bedre og raskere for graf-queries\nFulltext search (lucene) - fulltekst søk er bedre og raskere for fulltekst\nReports (mysql) - rapporter er generelt noe rdbms gjør bra\n\nEvent store er GUD, alt kan gjenskapes derfra\n\nUtrolig fleksibel modell\n\nKan spørre datamodellen spørsmål senere\n
  • Rickard Øberg\nEt callcenter system som hadde mange krav til gjenfinning og søk\nObject store (key/value) - rask lookup, det man trenger\nEvent store (jdbm) - lagrer eventer med unike timestamps\nQueries (graph) - graph databaser er bedre og raskere for graf-queries\nFulltext search (lucene) - fulltekst søk er bedre og raskere for fulltekst\nReports (mysql) - rapporter er generelt noe rdbms gjør bra\n\nEvent store er GUD, alt kan gjenskapes derfra\n\nUtrolig fleksibel modell\n\nKan spørre datamodellen spørsmål senere\n
  • Rickard Øberg\nEt callcenter system som hadde mange krav til gjenfinning og søk\nObject store (key/value) - rask lookup, det man trenger\nEvent store (jdbm) - lagrer eventer med unike timestamps\nQueries (graph) - graph databaser er bedre og raskere for graf-queries\nFulltext search (lucene) - fulltekst søk er bedre og raskere for fulltekst\nReports (mysql) - rapporter er generelt noe rdbms gjør bra\n\nEvent store er GUD, alt kan gjenskapes derfra\n\nUtrolig fleksibel modell\n\nKan spørre datamodellen spørsmål senere\n
  • \n
  • Martin Fowler sier\n\nI'm confident to say that if you’re starting a new strategic enterprise application you should no longer be assuming that your persistence should be relational.\n\n
  • Martin Fowler\nBruk riktig teknologi til riktig problem\n\nUtnytt de fordelene hver database gir\n\nLagre forskjellig data i forskjellige databaser\n\n\n
  • “Bare” programmeringsspråk\n\nVeldig viktig for utviklere og hastigheten i prosjektet, men ikke viktig for bedriften!\n
  • Et mye større skifte\n\nPåvirker hvordan bedriften organiserer og finner igjen sine data!\n\nI mange sammenhenger, sine viktigste assets\n
  • Atomisk - alt eller ingenting\nkonsistent - man skriver noe og kan lese det rett etterpå.\nIsolasjon - to transaksjoner skal ikke kunne påvirke hverandre\nVarighet - At data når det først er lagret, er lagret for evig\n
  • Atomisk - alt eller ingenting\nkonsistent - man skriver noe og kan lese det rett etterpå.\nIsolasjon - to transaksjoner skal ikke kunne påvirke hverandre\nVarighet - At data når det først er lagret, er lagret for evig\n
  • Atomisk - alt eller ingenting\nkonsistent - man skriver noe og kan lese det rett etterpå.\nIsolasjon - to transaksjoner skal ikke kunne påvirke hverandre\nVarighet - At data når det først er lagret, er lagret for evig\n
  • Atomisk - alt eller ingenting\nkonsistent - man skriver noe og kan lese det rett etterpå.\nIsolasjon - to transaksjoner skal ikke kunne påvirke hverandre\nVarighet - At data når det først er lagret, er lagret for evig\n
  • Atomisk - alt eller ingenting\nkonsistent - man skriver noe og kan lese det rett etterpå.\nIsolasjon - to transaksjoner skal ikke kunne påvirke hverandre\nVarighet - At data når det først er lagret, er lagret for evig\n
  • Atomisk - alt eller ingenting\nkonsistent - man skriver noe og kan lese det rett etterpå.\nIsolasjon - to transaksjoner skal ikke kunne påvirke hverandre\nVarighet - At data når det først er lagret, er lagret for evig\n
  • Atomisk - alt eller ingenting\nkonsistent - man skriver noe og kan lese det rett etterpå.\nIsolasjon - to transaksjoner skal ikke kunne påvirke hverandre\nVarighet - At data når det først er lagret, er lagret for evig\n
  • CAP theorem sier at du kun kan ha to av\nKonsistens\nTilgjengelighet\nPartisjonsvennlighet\n\nAlle databaser kan tunes her.\n\nKan få relasjonsdatabase partisjonsvennlig ved å strukturere dataene slik\nKan få cassandra konsistent ved å endre på konfigurasjon\n\nog Redis kan du gjøre alt mulig med\n
  • CAP theorem sier at du kun kan ha to av\nKonsistens\nTilgjengelighet\nPartisjonsvennlighet\n\nAlle databaser kan tunes her.\n\nKan få relasjonsdatabase partisjonsvennlig ved å strukturere dataene slik\nKan få cassandra konsistent ved å endre på konfigurasjon\n\nog Redis kan du gjøre alt mulig med\n
  • CAP theorem sier at du kun kan ha to av\nKonsistens\nTilgjengelighet\nPartisjonsvennlighet\n\nAlle databaser kan tunes her.\n\nKan få relasjonsdatabase partisjonsvennlig ved å strukturere dataene slik\nKan få cassandra konsistent ved å endre på konfigurasjon\n\nog Redis kan du gjøre alt mulig med\n
  • CAP theorem sier at du kun kan ha to av\nKonsistens\nTilgjengelighet\nPartisjonsvennlighet\n\nAlle databaser kan tunes her.\n\nKan få relasjonsdatabase partisjonsvennlig ved å strukturere dataene slik\nKan få cassandra konsistent ved å endre på konfigurasjon\n\nog Redis kan du gjøre alt mulig med\n
  • CAP theorem sier at du kun kan ha to av\nKonsistens\nTilgjengelighet\nPartisjonsvennlighet\n\nAlle databaser kan tunes her.\n\nKan få relasjonsdatabase partisjonsvennlig ved å strukturere dataene slik\nKan få cassandra konsistent ved å endre på konfigurasjon\n\nog Redis kan du gjøre alt mulig med\n
  • CAP theorem sier at du kun kan ha to av\nKonsistens\nTilgjengelighet\nPartisjonsvennlighet\n\nAlle databaser kan tunes her.\n\nKan få relasjonsdatabase partisjonsvennlig ved å strukturere dataene slik\nKan få cassandra konsistent ved å endre på konfigurasjon\n\nog Redis kan du gjøre alt mulig med\n
  • Ta med?\n
  • Vanligste problemet folk har.\n\nNosql er kult, men det der omsider konsistent greiene \n
  • Vanligste problemet folk har.\n\nNosql er kult, men det der omsider konsistent greiene \n
  • Vanligste problemet folk har.\n\nNosql er kult, men det der omsider konsistent greiene \n
  • Vanligste problemet folk har.\n\nNosql er kult, men det der omsider konsistent greiene \n
  • Spør heller kunden om det er greit med 1 sekund venting på oppdaterte data\n\nHa atomiske operasjoner\noppdater data, ikke overskriv\n\nog dataene vil bli korrekte... til slutt\n\n\n
  • Bank-kontoen din er eventual consistent\nBanken lar deg overtrekke kontoen hvis du vil\n\noperasjonene er atomiske\nvi mister ikke dem\nblir konsistent til slutt\n\nhvorfor tillatter banken eventuelt konsistent og ikke din kunde?\n\n
  • Bank-kontoen din er eventual consistent\nBanken lar deg overtrekke kontoen hvis du vil\n\noperasjonene er atomiske\nvi mister ikke dem\nblir konsistent til slutt\n\nhvorfor tillatter banken eventuelt konsistent og ikke din kunde?\n\n
  • Bank-kontoen din er eventual consistent\nBanken lar deg overtrekke kontoen hvis du vil\n\noperasjonene er atomiske\nvi mister ikke dem\nblir konsistent til slutt\n\nhvorfor tillatter banken eventuelt konsistent og ikke din kunde?\n\n
  • Bank-kontoen din er eventual consistent\nBanken lar deg overtrekke kontoen hvis du vil\n\noperasjonene er atomiske\nvi mister ikke dem\nblir konsistent til slutt\n\nhvorfor tillatter banken eventuelt konsistent og ikke din kunde?\n\n
  • Bank-kontoen din er eventual consistent\nBanken lar deg overtrekke kontoen hvis du vil\n\noperasjonene er atomiske\nvi mister ikke dem\nblir konsistent til slutt\n\nhvorfor tillatter banken eventuelt konsistent og ikke din kunde?\n\n
  • Bank-kontoen din er eventual consistent\nBanken lar deg overtrekke kontoen hvis du vil\n\noperasjonene er atomiske\nvi mister ikke dem\nblir konsistent til slutt\n\nhvorfor tillatter banken eventuelt konsistent og ikke din kunde?\n\n
  • Bank-kontoen din er eventual consistent\nBanken lar deg overtrekke kontoen hvis du vil\n\noperasjonene er atomiske\nvi mister ikke dem\nblir konsistent til slutt\n\nhvorfor tillatter banken eventuelt konsistent og ikke din kunde?\n\n
  • Bank-kontoen din er eventual consistent\nBanken lar deg overtrekke kontoen hvis du vil\n\noperasjonene er atomiske\nvi mister ikke dem\nblir konsistent til slutt\n\nhvorfor tillatter banken eventuelt konsistent og ikke din kunde?\n\n
  • Bank-kontoen din er eventual consistent\nBanken lar deg overtrekke kontoen hvis du vil\n\noperasjonene er atomiske\nvi mister ikke dem\nblir konsistent til slutt\n\nhvorfor tillatter banken eventuelt konsistent og ikke din kunde?\n\n
  • Bank-kontoen din er eventual consistent\nBanken lar deg overtrekke kontoen hvis du vil\n\noperasjonene er atomiske\nvi mister ikke dem\nblir konsistent til slutt\n\nhvorfor tillatter banken eventuelt konsistent og ikke din kunde?\n\n
  • Bank-kontoen din er eventual consistent\nBanken lar deg overtrekke kontoen hvis du vil\n\noperasjonene er atomiske\nvi mister ikke dem\nblir konsistent til slutt\n\nhvorfor tillatter banken eventuelt konsistent og ikke din kunde?\n\n
  • Bank-kontoen din er eventual consistent\nBanken lar deg overtrekke kontoen hvis du vil\n\noperasjonene er atomiske\nvi mister ikke dem\nblir konsistent til slutt\n\nhvorfor tillatter banken eventuelt konsistent og ikke din kunde?\n\n
  • Bank-kontoen din er eventual consistent\nBanken lar deg overtrekke kontoen hvis du vil\n\noperasjonene er atomiske\nvi mister ikke dem\nblir konsistent til slutt\n\nhvorfor tillatter banken eventuelt konsistent og ikke din kunde?\n\n
  • Bank-kontoen din er eventual consistent\nBanken lar deg overtrekke kontoen hvis du vil\n\noperasjonene er atomiske\nvi mister ikke dem\nblir konsistent til slutt\n\nhvorfor tillatter banken eventuelt konsistent og ikke din kunde?\n\n
  • Bank-kontoen din er eventual consistent\nBanken lar deg overtrekke kontoen hvis du vil\n\noperasjonene er atomiske\nvi mister ikke dem\nblir konsistent til slutt\n\nhvorfor tillatter banken eventuelt konsistent og ikke din kunde?\n\n
  • Bank-kontoen din er eventual consistent\nBanken lar deg overtrekke kontoen hvis du vil\n\noperasjonene er atomiske\nvi mister ikke dem\nblir konsistent til slutt\n\nhvorfor tillatter banken eventuelt konsistent og ikke din kunde?\n\n
  • Bank-kontoen din er eventual consistent\nBanken lar deg overtrekke kontoen hvis du vil\n\noperasjonene er atomiske\nvi mister ikke dem\nblir konsistent til slutt\n\nhvorfor tillatter banken eventuelt konsistent og ikke din kunde?\n\n
  • Bank-kontoen din er eventual consistent\nBanken lar deg overtrekke kontoen hvis du vil\n\noperasjonene er atomiske\nvi mister ikke dem\nblir konsistent til slutt\n\nhvorfor tillatter banken eventuelt konsistent og ikke din kunde?\n\n
  • Bank-kontoen din er eventual consistent\nBanken lar deg overtrekke kontoen hvis du vil\n\noperasjonene er atomiske\nvi mister ikke dem\nblir konsistent til slutt\n\nhvorfor tillatter banken eventuelt konsistent og ikke din kunde?\n\n
  • Bank-kontoen din er eventual consistent\nBanken lar deg overtrekke kontoen hvis du vil\n\noperasjonene er atomiske\nvi mister ikke dem\nblir konsistent til slutt\n\nhvorfor tillatter banken eventuelt konsistent og ikke din kunde?\n\n
  • og hvis du absolutt må bruke ORM-lignende verktøy, så finnes det også\n
  • \n
  • Redis\nDette er på min maskin.\n\nKan med kraftig maskin og korrekt tuning få mysql opp i tilsvarende nummer for lesing, men skriving er værre\n\n\n
  • Redis\nDette er på min maskin.\n\nKan med kraftig maskin og korrekt tuning få mysql opp i tilsvarende nummer for lesing, men skriving er værre\n\n\n
  • Redis\nDette er på min maskin.\n\nKan med kraftig maskin og korrekt tuning få mysql opp i tilsvarende nummer for lesing, men skriving er værre\n\n\n
  • Redis\nDette er på min maskin.\n\nKan med kraftig maskin og korrekt tuning få mysql opp i tilsvarende nummer for lesing, men skriving er værre\n\n\n
  • Redis\nDette er på min maskin.\n\nKan med kraftig maskin og korrekt tuning få mysql opp i tilsvarende nummer for lesing, men skriving er værre\n\n\n
  • Redis\nDette er på min maskin.\n\nKan med kraftig maskin og korrekt tuning få mysql opp i tilsvarende nummer for lesing, men skriving er værre\n\n\n
  • Redis\nDette er på min maskin.\n\nKan med kraftig maskin og korrekt tuning få mysql opp i tilsvarende nummer for lesing, men skriving er værre\n\n\n
  • Redis\nDette er på min maskin.\n\nKan med kraftig maskin og korrekt tuning få mysql opp i tilsvarende nummer for lesing, men skriving er værre\n\n\n
  • \n
  • Det er ikke lett\nMan mister gamle utfordringer, men de blir erstattet med nye.\n\nPolitikk, DBA mister kontroll\nArkitekten vil ikke ha enda flere systemer\nMye gammel legacy-data som er viktige\n\nMen begynner vi å bevege oss i denne retningen så vil vi bli bedre på data\n- Får bedre domenemodeller\n- Får mye bedre måter å finne igjen data på\n- Blir flinkere til å levere det kunden vil ha\n\nRelasjonsdatabasen er ikke det viktigste for kunden\n
  • Det var jeg ville si\n\nLykke til\n\nTakk for meg\n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • Enkelt\nIngen konsistens-sjekk ---> Cleaning\nAtomiske operasjoner\n
  • Enkelt\nIngen konsistens-sjekk ---> Cleaning\nAtomiske operasjoner\n
  • Enkelt\nIngen konsistens-sjekk ---> Cleaning\nAtomiske operasjoner\n
  • Enkelt\nIngen konsistens-sjekk ---> Cleaning\nAtomiske operasjoner\n
  • Enkelt\nIngen konsistens-sjekk ---> Cleaning\nAtomiske operasjoner\n
  • Enkelt\nIngen konsistens-sjekk ---> Cleaning\nAtomiske operasjoner\n
  • Enkelt\nIngen konsistens-sjekk ---> Cleaning\nAtomiske operasjoner\n
  • Enkelt\nIngen konsistens-sjekk ---> Cleaning\nAtomiske operasjoner\n
  • Enkelt\nIngen konsistens-sjekk ---> Cleaning\nAtomiske operasjoner\n
  • Enkelt\nIngen konsistens-sjekk ---> Cleaning\nAtomiske operasjoner\n
  • Polyglot persistence

    1. 1. Polyglot Persistence Ole-Martin Mørk
    2. 2. Relasjonsdatabaser?
    3. 3. nosql-databaser?
    4. 4. Hvorfor så få?• Ukjent og skremmende teknologi?• Kunden er motvillig?• Ser ikke fordelene med nosql?
    5. 5. Hvorfor database?• Lagre data• Relasjonssøk• Lookup• Fulltekstsøk• Lage rapporter
    6. 6. Hvorfor RDBMS?• Lagre data• Relasjonssøk• Lookup• Fulltekstsøk• Lage rapporter
    7. 7. Hvorfor RDBMS?• Lagre data• Relasjonssøk• Lookup• Fulltekstsøk• Lage rapporter
    8. 8. ObjectRelational Mapping
    9. 9. RDBMS OOP
    10. 10. Hvorfor RDBMS?• Lagre data• Relasjonssøk• Lookup• Fulltekstsøk• Lage rapporter
    11. 11. Hva med dette?• Lagre data• Relasjonssøk• Lookup• Fulltekstsøk• Lage rapporter
    12. 12. Ett system System Queries FulltextObject Event storestore Reports
    13. 13. Ett system System Queries Graph Fulltext Lucene ObjectKey/Value Event store jdbm store Reports mySQL
    14. 14. Do you read me?
    15. 15. Polyglot PersistenceIm confident to say that if you’re starting anew strategic enterprise application youshould no longer be assuming that yourpersistence should be relational. Martin Fowler
    16. 16. Polyglot Persistence
    17. 17. CAP theorem
    18. 18. CAP theorem RDBMS Cassandra RedisConsistencyAvailabilityPartition
    19. 19. Eventual Consistency
    20. 20. Eventuelt konsistens
    21. 21. Omsider konsistens
    22. 22. Eventual Consistency First rule of Eventual Consistency is to not talk about Eventual Consistency Greg Young
    23. 23. Bank-konto Saldo: 1000 kr
    24. 24. Bank-konto Saldo: 1000 kr-500 kr ok?
    25. 25. Bank-konto Saldo: 1000 kr-500 kr ok? OK
    26. 26. Bank-konto Saldo: 1000 kr-500 kr -800 kr ok? OK ok?
    27. 27. Bank-konto Saldo: 1000 kr-500 kr -800 kr ok? OK OK ok?
    28. 28. Bank-konto Saldo: 1000 kr
    29. 29. Bank-konto Saldo: 1000 kr Ta ut500 kr
    30. 30. Bank-konto Saldo: 500 kr Ta ut500 kr OK
    31. 31. Bank-konto Saldo: 500 kr Ta ut Ta ut500 kr OK 800 kr
    32. 32. Bank-konto Saldo: -300 kr Ta ut Ta ut500 kr OK OK 800 kr
    33. 33. nosql fikser ORM• Rene objekter• Relasjoner slik som du ønsker dem
    34. 34. Hastighet
    35. 35. Requests pr second
    36. 36. Requests pr second600005000040000300002000010000 0 SET GET LPUSH LPOP SADD SPOP LRANGE
    37. 37. ReplicationLoad balancing Failover Recovery
    38. 38. Oppsummering
    39. 39. Takk for meg• martinfowler.com• qi4j.org• nosqltapes.com• bit.ly/nosql-landscape Ole-Martin Mørk

    ×