SlideShare ist ein Scribd-Unternehmen logo
1 von 305
Riak Tutorial (Øredev)
Riak Tutorial (Øredev)
Riak Tutorial (Øredev)
Riak Tutorial (Øredev)
Riak Tutorial (Øredev)
Riak Tutorial (Øredev)
Riak Tutorial (Øredev)
Riak Tutorial (Øredev)
Riak Tutorial (Øredev)
Riak Tutorial (Øredev)
Riak Tutorial (Øredev)
Riak Tutorial (Øredev)
Riak Tutorial (Øredev)
Riak Tutorial (Øredev)
Riak Tutorial (Øredev)
Riak Tutorial (Øredev)
Riak Tutorial (Øredev)
Riak Tutorial (Øredev)
Riak Tutorial (Øredev)
Riak Tutorial (Øredev)
Riak Tutorial (Øredev)
Riak Tutorial (Øredev)
Riak Tutorial (Øredev)
Riak Tutorial (Øredev)
Riak Tutorial (Øredev)
Riak Tutorial (Øredev)
Riak Tutorial (Øredev)
Riak Tutorial (Øredev)
Riak Tutorial (Øredev)
Riak Tutorial (Øredev)
Riak Tutorial (Øredev)
Riak Tutorial (Øredev)
Riak Tutorial (Øredev)
Riak Tutorial (Øredev)
Riak Tutorial (Øredev)
Riak Tutorial (Øredev)
Riak Tutorial (Øredev)
Riak Tutorial (Øredev)
Riak Tutorial (Øredev)
Riak Tutorial (Øredev)
Riak Tutorial (Øredev)
Riak Tutorial (Øredev)
Riak Tutorial (Øredev)
Riak Tutorial (Øredev)
Riak Tutorial (Øredev)
Riak Tutorial (Øredev)
Riak Tutorial (Øredev)
Riak Tutorial (Øredev)
Riak Tutorial (Øredev)
Riak Tutorial (Øredev)
Riak Tutorial (Øredev)
Riak Tutorial (Øredev)
Riak Tutorial (Øredev)
Riak Tutorial (Øredev)
Riak Tutorial (Øredev)
Riak Tutorial (Øredev)
Riak Tutorial (Øredev)
Riak Tutorial (Øredev)
Riak Tutorial (Øredev)
Riak Tutorial (Øredev)
Riak Tutorial (Øredev)
Riak Tutorial (Øredev)
Riak Tutorial (Øredev)
Riak Tutorial (Øredev)
Riak Tutorial (Øredev)
Riak Tutorial (Øredev)
Riak Tutorial (Øredev)
Riak Tutorial (Øredev)
Riak Tutorial (Øredev)
Riak Tutorial (Øredev)
Riak Tutorial (Øredev)
Riak Tutorial (Øredev)
Riak Tutorial (Øredev)
Riak Tutorial (Øredev)
Riak Tutorial (Øredev)
Riak Tutorial (Øredev)
Riak Tutorial (Øredev)
Riak Tutorial (Øredev)
Riak Tutorial (Øredev)
Riak Tutorial (Øredev)
Riak Tutorial (Øredev)
Riak Tutorial (Øredev)
Riak Tutorial (Øredev)
Riak Tutorial (Øredev)
Riak Tutorial (Øredev)
Riak Tutorial (Øredev)
Riak Tutorial (Øredev)
Riak Tutorial (Øredev)
Riak Tutorial (Øredev)
Riak Tutorial (Øredev)
Riak Tutorial (Øredev)
Riak Tutorial (Øredev)
Riak Tutorial (Øredev)
Riak Tutorial (Øredev)
Riak Tutorial (Øredev)
Riak Tutorial (Øredev)
Riak Tutorial (Øredev)
Riak Tutorial (Øredev)
Riak Tutorial (Øredev)
Riak Tutorial (Øredev)
Riak Tutorial (Øredev)
Riak Tutorial (Øredev)
Riak Tutorial (Øredev)
Riak Tutorial (Øredev)
Riak Tutorial (Øredev)
Riak Tutorial (Øredev)
Riak Tutorial (Øredev)
Riak Tutorial (Øredev)
Riak Tutorial (Øredev)
Riak Tutorial (Øredev)
Riak Tutorial (Øredev)
Riak Tutorial (Øredev)
Riak Tutorial (Øredev)
Riak Tutorial (Øredev)
Riak Tutorial (Øredev)
Riak Tutorial (Øredev)
Riak Tutorial (Øredev)
Riak Tutorial (Øredev)
Riak Tutorial (Øredev)
Riak Tutorial (Øredev)
Riak Tutorial (Øredev)
Riak Tutorial (Øredev)
Riak Tutorial (Øredev)
Riak Tutorial (Øredev)
Riak Tutorial (Øredev)
Riak Tutorial (Øredev)
Riak Tutorial (Øredev)
Riak Tutorial (Øredev)
Riak Tutorial (Øredev)
Riak Tutorial (Øredev)
Riak Tutorial (Øredev)
Riak Tutorial (Øredev)
Riak Tutorial (Øredev)
Riak Tutorial (Øredev)
Riak Tutorial (Øredev)
Riak Tutorial (Øredev)
Riak Tutorial (Øredev)
Riak Tutorial (Øredev)
Riak Tutorial (Øredev)
Riak Tutorial (Øredev)
Riak Tutorial (Øredev)
Riak Tutorial (Øredev)
Riak Tutorial (Øredev)
Riak Tutorial (Øredev)
Riak Tutorial (Øredev)
Riak Tutorial (Øredev)
Riak Tutorial (Øredev)
Riak Tutorial (Øredev)
Riak Tutorial (Øredev)
Riak Tutorial (Øredev)
Riak Tutorial (Øredev)
Riak Tutorial (Øredev)
Riak Tutorial (Øredev)
Riak Tutorial (Øredev)
Riak Tutorial (Øredev)
Riak Tutorial (Øredev)
Riak Tutorial (Øredev)
Riak Tutorial (Øredev)
Riak Tutorial (Øredev)
Riak Tutorial (Øredev)
Riak Tutorial (Øredev)
Riak Tutorial (Øredev)
Riak Tutorial (Øredev)
Riak Tutorial (Øredev)
Riak Tutorial (Øredev)
Riak Tutorial (Øredev)
Riak Tutorial (Øredev)
Riak Tutorial (Øredev)
Riak Tutorial (Øredev)
Riak Tutorial (Øredev)
Riak Tutorial (Øredev)
Riak Tutorial (Øredev)
Riak Tutorial (Øredev)
Riak Tutorial (Øredev)
Riak Tutorial (Øredev)
Riak Tutorial (Øredev)
Riak Tutorial (Øredev)
Riak Tutorial (Øredev)
Riak Tutorial (Øredev)
Riak Tutorial (Øredev)
Riak Tutorial (Øredev)
Riak Tutorial (Øredev)
Riak Tutorial (Øredev)
Riak Tutorial (Øredev)
Riak Tutorial (Øredev)
Riak Tutorial (Øredev)
Riak Tutorial (Øredev)
Riak Tutorial (Øredev)
Riak Tutorial (Øredev)
Riak Tutorial (Øredev)
Riak Tutorial (Øredev)
Riak Tutorial (Øredev)
Riak Tutorial (Øredev)
Riak Tutorial (Øredev)
Riak Tutorial (Øredev)
Riak Tutorial (Øredev)
Riak Tutorial (Øredev)
Riak Tutorial (Øredev)
Riak Tutorial (Øredev)
Riak Tutorial (Øredev)
Riak Tutorial (Øredev)
Riak Tutorial (Øredev)
Riak Tutorial (Øredev)
Riak Tutorial (Øredev)
Riak Tutorial (Øredev)
Riak Tutorial (Øredev)
Riak Tutorial (Øredev)
Riak Tutorial (Øredev)
Riak Tutorial (Øredev)
Riak Tutorial (Øredev)
Riak Tutorial (Øredev)
Riak Tutorial (Øredev)
Riak Tutorial (Øredev)
Riak Tutorial (Øredev)
Riak Tutorial (Øredev)
Riak Tutorial (Øredev)
Riak Tutorial (Øredev)
Riak Tutorial (Øredev)
Riak Tutorial (Øredev)
Riak Tutorial (Øredev)
Riak Tutorial (Øredev)
Riak Tutorial (Øredev)
Riak Tutorial (Øredev)
Riak Tutorial (Øredev)
Riak Tutorial (Øredev)
Riak Tutorial (Øredev)
Riak Tutorial (Øredev)
Riak Tutorial (Øredev)
Riak Tutorial (Øredev)
Riak Tutorial (Øredev)
Riak Tutorial (Øredev)
Riak Tutorial (Øredev)
Riak Tutorial (Øredev)
Riak Tutorial (Øredev)
Riak Tutorial (Øredev)
Riak Tutorial (Øredev)
Riak Tutorial (Øredev)
Riak Tutorial (Øredev)
Riak Tutorial (Øredev)
Riak Tutorial (Øredev)
Riak Tutorial (Øredev)
Riak Tutorial (Øredev)
Riak Tutorial (Øredev)
Riak Tutorial (Øredev)
Riak Tutorial (Øredev)
Riak Tutorial (Øredev)
Riak Tutorial (Øredev)
Riak Tutorial (Øredev)
Riak Tutorial (Øredev)
Riak Tutorial (Øredev)
Riak Tutorial (Øredev)
Riak Tutorial (Øredev)
Riak Tutorial (Øredev)
Riak Tutorial (Øredev)
Riak Tutorial (Øredev)
Riak Tutorial (Øredev)
Riak Tutorial (Øredev)
Riak Tutorial (Øredev)
Riak Tutorial (Øredev)
Riak Tutorial (Øredev)
Riak Tutorial (Øredev)
Riak Tutorial (Øredev)
Riak Tutorial (Øredev)
Riak Tutorial (Øredev)
Riak Tutorial (Øredev)
Riak Tutorial (Øredev)
Riak Tutorial (Øredev)
Riak Tutorial (Øredev)
Riak Tutorial (Øredev)
Riak Tutorial (Øredev)
Riak Tutorial (Øredev)
Riak Tutorial (Øredev)
Riak Tutorial (Øredev)
Riak Tutorial (Øredev)
Riak Tutorial (Øredev)
Riak Tutorial (Øredev)
Riak Tutorial (Øredev)
Riak Tutorial (Øredev)
Riak Tutorial (Øredev)
Riak Tutorial (Øredev)
Riak Tutorial (Øredev)
Riak Tutorial (Øredev)
Riak Tutorial (Øredev)
Riak Tutorial (Øredev)
Riak Tutorial (Øredev)
Riak Tutorial (Øredev)
Riak Tutorial (Øredev)
Riak Tutorial (Øredev)
Riak Tutorial (Øredev)
Riak Tutorial (Øredev)
Riak Tutorial (Øredev)
Riak Tutorial (Øredev)
Riak Tutorial (Øredev)
Riak Tutorial (Øredev)
Riak Tutorial (Øredev)
Riak Tutorial (Øredev)
Riak Tutorial (Øredev)
Riak Tutorial (Øredev)
Riak Tutorial (Øredev)
Riak Tutorial (Øredev)
Riak Tutorial (Øredev)
Riak Tutorial (Øredev)
Riak Tutorial (Øredev)
Riak Tutorial (Øredev)
Riak Tutorial (Øredev)

Weitere ähnliche Inhalte

Was ist angesagt?

Les Topologies Physiques des réseaux informatiques
Les Topologies Physiques des réseaux informatiquesLes Topologies Physiques des réseaux informatiques
Les Topologies Physiques des réseaux informatiquesATPENSC-Group
 
Introduction à la big data V2
Introduction à la big data V2Introduction à la big data V2
Introduction à la big data V2Mehdi TAZI
 
Cours HBase et Base de Données Orientées Colonnes (HBase, Column Oriented Dat...
Cours HBase et Base de Données Orientées Colonnes (HBase, Column Oriented Dat...Cours HBase et Base de Données Orientées Colonnes (HBase, Column Oriented Dat...
Cours HBase et Base de Données Orientées Colonnes (HBase, Column Oriented Dat...Hatim CHAHDI
 
Chap4 Récursivité en python
Chap4 Récursivité en pythonChap4 Récursivité en python
Chap4 Récursivité en pythonMariem ZAOUALI
 
Initiation à l'algorithmique
Initiation à l'algorithmiqueInitiation à l'algorithmique
Initiation à l'algorithmiqueAbdoulaye Dieng
 
TD2 - UML - Correction
TD2 - UML - CorrectionTD2 - UML - Correction
TD2 - UML - CorrectionLilia Sfaxi
 
Formation sur la monétique
Formation sur la monétiqueFormation sur la monétique
Formation sur la monétiqueONGRegCaeli
 
Pfsense 121202023417-phpapp02
Pfsense 121202023417-phpapp02Pfsense 121202023417-phpapp02
Pfsense 121202023417-phpapp02Mohamed Houssem
 
exercices business intelligence
exercices business intelligence exercices business intelligence
exercices business intelligence Yassine Badri
 
Cours Big Data Chap2
Cours Big Data Chap2Cours Big Data Chap2
Cours Big Data Chap2Amal Abid
 
Android-Tp2: liste et adaptateurs
Android-Tp2: liste et adaptateursAndroid-Tp2: liste et adaptateurs
Android-Tp2: liste et adaptateursLilia Sfaxi
 
BigData_Chp3: Data Processing
BigData_Chp3: Data ProcessingBigData_Chp3: Data Processing
BigData_Chp3: Data ProcessingLilia Sfaxi
 
Systèmes d'Exploitation - chp2-gestion des processus
Systèmes d'Exploitation - chp2-gestion des processusSystèmes d'Exploitation - chp2-gestion des processus
Systèmes d'Exploitation - chp2-gestion des processusLilia Sfaxi
 
BigData_Chp1: Introduction à la Big Data
BigData_Chp1: Introduction à la Big DataBigData_Chp1: Introduction à la Big Data
BigData_Chp1: Introduction à la Big DataLilia Sfaxi
 

Was ist angesagt? (20)

Td dw1
Td dw1Td dw1
Td dw1
 
Les Topologies Physiques des réseaux informatiques
Les Topologies Physiques des réseaux informatiquesLes Topologies Physiques des réseaux informatiques
Les Topologies Physiques des réseaux informatiques
 
Introduction à la big data V2
Introduction à la big data V2Introduction à la big data V2
Introduction à la big data V2
 
Cours HBase et Base de Données Orientées Colonnes (HBase, Column Oriented Dat...
Cours HBase et Base de Données Orientées Colonnes (HBase, Column Oriented Dat...Cours HBase et Base de Données Orientées Colonnes (HBase, Column Oriented Dat...
Cours HBase et Base de Données Orientées Colonnes (HBase, Column Oriented Dat...
 
Tp voip
Tp voipTp voip
Tp voip
 
vpn
vpnvpn
vpn
 
Chap4 Récursivité en python
Chap4 Récursivité en pythonChap4 Récursivité en python
Chap4 Récursivité en python
 
Initiation à l'algorithmique
Initiation à l'algorithmiqueInitiation à l'algorithmique
Initiation à l'algorithmique
 
TD2 - UML - Correction
TD2 - UML - CorrectionTD2 - UML - Correction
TD2 - UML - Correction
 
Formation sur la monétique
Formation sur la monétiqueFormation sur la monétique
Formation sur la monétique
 
Pfsense 121202023417-phpapp02
Pfsense 121202023417-phpapp02Pfsense 121202023417-phpapp02
Pfsense 121202023417-phpapp02
 
exercices business intelligence
exercices business intelligence exercices business intelligence
exercices business intelligence
 
NMAP
NMAPNMAP
NMAP
 
Cours Big Data Chap2
Cours Big Data Chap2Cours Big Data Chap2
Cours Big Data Chap2
 
Android-Tp2: liste et adaptateurs
Android-Tp2: liste et adaptateursAndroid-Tp2: liste et adaptateurs
Android-Tp2: liste et adaptateurs
 
BigData_Chp3: Data Processing
BigData_Chp3: Data ProcessingBigData_Chp3: Data Processing
BigData_Chp3: Data Processing
 
Systèmes d'Exploitation - chp2-gestion des processus
Systèmes d'Exploitation - chp2-gestion des processusSystèmes d'Exploitation - chp2-gestion des processus
Systèmes d'Exploitation - chp2-gestion des processus
 
OpenERP/Odoo: Fiche Technique
OpenERP/Odoo: Fiche TechniqueOpenERP/Odoo: Fiche Technique
OpenERP/Odoo: Fiche Technique
 
BigData_Chp1: Introduction à la Big Data
BigData_Chp1: Introduction à la Big DataBigData_Chp1: Introduction à la Big Data
BigData_Chp1: Introduction à la Big Data
 
Tp 1
Tp 1Tp 1
Tp 1
 

Mehr von Sean Cribbs

Eventually Consistent Data Structures (from strangeloop12)
Eventually Consistent Data Structures (from strangeloop12)Eventually Consistent Data Structures (from strangeloop12)
Eventually Consistent Data Structures (from strangeloop12)Sean Cribbs
 
Eventually-Consistent Data Structures
Eventually-Consistent Data StructuresEventually-Consistent Data Structures
Eventually-Consistent Data StructuresSean Cribbs
 
A Case of Accidental Concurrency
A Case of Accidental ConcurrencyA Case of Accidental Concurrency
A Case of Accidental ConcurrencySean Cribbs
 
Embrace NoSQL and Eventual Consistency with Ripple
Embrace NoSQL and Eventual Consistency with RippleEmbrace NoSQL and Eventual Consistency with Ripple
Embrace NoSQL and Eventual Consistency with RippleSean Cribbs
 
Riak with node.js
Riak with node.jsRiak with node.js
Riak with node.jsSean Cribbs
 
Schema Design for Riak (Take 2)
Schema Design for Riak (Take 2)Schema Design for Riak (Take 2)
Schema Design for Riak (Take 2)Sean Cribbs
 
Riak (Øredev nosql day)
Riak (Øredev nosql day)Riak (Øredev nosql day)
Riak (Øredev nosql day)Sean Cribbs
 
The Radiant Ethic
The Radiant EthicThe Radiant Ethic
The Radiant EthicSean Cribbs
 
Introduction to Riak and Ripple (KC.rb)
Introduction to Riak and Ripple (KC.rb)Introduction to Riak and Ripple (KC.rb)
Introduction to Riak and Ripple (KC.rb)Sean Cribbs
 
Schema Design for Riak
Schema Design for RiakSchema Design for Riak
Schema Design for RiakSean Cribbs
 
Introduction to Riak - Red Dirt Ruby Conf Training
Introduction to Riak - Red Dirt Ruby Conf TrainingIntroduction to Riak - Red Dirt Ruby Conf Training
Introduction to Riak - Red Dirt Ruby Conf TrainingSean Cribbs
 
Introducing Riak and Ripple
Introducing Riak and RippleIntroducing Riak and Ripple
Introducing Riak and RippleSean Cribbs
 
Round PEG, Round Hole - Parsing Functionally
Round PEG, Round Hole - Parsing FunctionallyRound PEG, Round Hole - Parsing Functionally
Round PEG, Round Hole - Parsing FunctionallySean Cribbs
 
Story Driven Development With Cucumber
Story Driven Development With CucumberStory Driven Development With Cucumber
Story Driven Development With CucumberSean Cribbs
 
Achieving Parsing Sanity In Erlang
Achieving Parsing Sanity In ErlangAchieving Parsing Sanity In Erlang
Achieving Parsing Sanity In ErlangSean Cribbs
 
Of Rats And Dragons
Of Rats And DragonsOf Rats And Dragons
Of Rats And DragonsSean Cribbs
 
Erlang/OTP for Rubyists
Erlang/OTP for RubyistsErlang/OTP for Rubyists
Erlang/OTP for RubyistsSean Cribbs
 
Content Management That Won't Rot Your Brain
Content Management That Won't Rot Your BrainContent Management That Won't Rot Your Brain
Content Management That Won't Rot Your BrainSean Cribbs
 

Mehr von Sean Cribbs (19)

Eventually Consistent Data Structures (from strangeloop12)
Eventually Consistent Data Structures (from strangeloop12)Eventually Consistent Data Structures (from strangeloop12)
Eventually Consistent Data Structures (from strangeloop12)
 
Eventually-Consistent Data Structures
Eventually-Consistent Data StructuresEventually-Consistent Data Structures
Eventually-Consistent Data Structures
 
A Case of Accidental Concurrency
A Case of Accidental ConcurrencyA Case of Accidental Concurrency
A Case of Accidental Concurrency
 
Embrace NoSQL and Eventual Consistency with Ripple
Embrace NoSQL and Eventual Consistency with RippleEmbrace NoSQL and Eventual Consistency with Ripple
Embrace NoSQL and Eventual Consistency with Ripple
 
Riak with node.js
Riak with node.jsRiak with node.js
Riak with node.js
 
Schema Design for Riak (Take 2)
Schema Design for Riak (Take 2)Schema Design for Riak (Take 2)
Schema Design for Riak (Take 2)
 
Riak (Øredev nosql day)
Riak (Øredev nosql day)Riak (Øredev nosql day)
Riak (Øredev nosql day)
 
The Radiant Ethic
The Radiant EthicThe Radiant Ethic
The Radiant Ethic
 
Introduction to Riak and Ripple (KC.rb)
Introduction to Riak and Ripple (KC.rb)Introduction to Riak and Ripple (KC.rb)
Introduction to Riak and Ripple (KC.rb)
 
Riak with Rails
Riak with RailsRiak with Rails
Riak with Rails
 
Schema Design for Riak
Schema Design for RiakSchema Design for Riak
Schema Design for Riak
 
Introduction to Riak - Red Dirt Ruby Conf Training
Introduction to Riak - Red Dirt Ruby Conf TrainingIntroduction to Riak - Red Dirt Ruby Conf Training
Introduction to Riak - Red Dirt Ruby Conf Training
 
Introducing Riak and Ripple
Introducing Riak and RippleIntroducing Riak and Ripple
Introducing Riak and Ripple
 
Round PEG, Round Hole - Parsing Functionally
Round PEG, Round Hole - Parsing FunctionallyRound PEG, Round Hole - Parsing Functionally
Round PEG, Round Hole - Parsing Functionally
 
Story Driven Development With Cucumber
Story Driven Development With CucumberStory Driven Development With Cucumber
Story Driven Development With Cucumber
 
Achieving Parsing Sanity In Erlang
Achieving Parsing Sanity In ErlangAchieving Parsing Sanity In Erlang
Achieving Parsing Sanity In Erlang
 
Of Rats And Dragons
Of Rats And DragonsOf Rats And Dragons
Of Rats And Dragons
 
Erlang/OTP for Rubyists
Erlang/OTP for RubyistsErlang/OTP for Rubyists
Erlang/OTP for Rubyists
 
Content Management That Won't Rot Your Brain
Content Management That Won't Rot Your BrainContent Management That Won't Rot Your Brain
Content Management That Won't Rot Your Brain
 

Hinweis der Redaktion

  1. Think of it like a big hash-table
  2. Think of it like a big hash-table
  3. Think of it like a big hash-table
  4. Think of it like a big hash-table
  5. Think of it like a big hash-table
  6. Think of it like a big hash-table
  7. X = throughput, compute power for MapReduce, storage, lower latency
  8. X = throughput, compute power for MapReduce, storage, lower latency
  9. X = throughput, compute power for MapReduce, storage, lower latency
  10. Consistent hashing means: 1) large, fixed-size key-space 2) no rehashing of keys - always hash the same way
  11. Consistent hashing means: 1) large, fixed-size key-space 2) no rehashing of keys - always hash the same way
  12. Consistent hashing means: 1) large, fixed-size key-space 2) no rehashing of keys - always hash the same way
  13. Consistent hashing means: 1) large, fixed-size key-space 2) no rehashing of keys - always hash the same way
  14. Consistent hashing means: 1) large, fixed-size key-space 2) no rehashing of keys - always hash the same way
  15. 1) Client requests a key 2) Get handler starts up to service the request 3) Hashes key to its owner partitions (N=3) 4) Sends similar “get” request to those partitions 5) Waits for R replies that concur (R=2) 6) Resolves the object, replies to client 7) Third reply may come back at any time, but FSM replies as soon as quorum is satisfied/violated
  16. 1) Client requests a key 2) Get handler starts up to service the request 3) Hashes key to its owner partitions (N=3) 4) Sends similar “get” request to those partitions 5) Waits for R replies that concur (R=2) 6) Resolves the object, replies to client 7) Third reply may come back at any time, but FSM replies as soon as quorum is satisfied/violated
  17. 1) Client requests a key 2) Get handler starts up to service the request 3) Hashes key to its owner partitions (N=3) 4) Sends similar “get” request to those partitions 5) Waits for R replies that concur (R=2) 6) Resolves the object, replies to client 7) Third reply may come back at any time, but FSM replies as soon as quorum is satisfied/violated
  18. 1) Client requests a key 2) Get handler starts up to service the request 3) Hashes key to its owner partitions (N=3) 4) Sends similar “get” request to those partitions 5) Waits for R replies that concur (R=2) 6) Resolves the object, replies to client 7) Third reply may come back at any time, but FSM replies as soon as quorum is satisfied/violated
  19. 1) Client requests a key 2) Get handler starts up to service the request 3) Hashes key to its owner partitions (N=3) 4) Sends similar “get” request to those partitions 5) Waits for R replies that concur (R=2) 6) Resolves the object, replies to client 7) Third reply may come back at any time, but FSM replies as soon as quorum is satisfied/violated
  20. 1) Client requests a key 2) Get handler starts up to service the request 3) Hashes key to its owner partitions (N=3) 4) Sends similar “get” request to those partitions 5) Waits for R replies that concur (R=2) 6) Resolves the object, replies to client 7) Third reply may come back at any time, but FSM replies as soon as quorum is satisfied/violated
  21. 1) Client requests a key 2) Get handler starts up to service the request 3) Hashes key to its owner partitions (N=3) 4) Sends similar “get” request to those partitions 5) Waits for R replies that concur (R=2) 6) Resolves the object, replies to client 7) Third reply may come back at any time, but FSM replies as soon as quorum is satisfied/violated
  22. 1) Client requests a key 2) Get handler starts up to service the request 3) Hashes key to its owner partitions (N=3) 4) Sends similar “get” request to those partitions 5) Waits for R replies that concur (R=2) 6) Resolves the object, replies to client 7) Third reply may come back at any time, but FSM replies as soon as quorum is satisfied/violated
  23. 1) Client requests a key 2) Get handler starts up to service the request 3) Hashes key to its owner partitions (N=3) 4) Sends similar “get” request to those partitions 5) Waits for R replies that concur (R=2) 6) Resolves the object, replies to client 7) Third reply may come back at any time, but FSM replies as soon as quorum is satisfied/violated
  24. 1) Client requests a key 2) Get handler starts up to service the request 3) Hashes key to its owner partitions (N=3) 4) Sends similar “get” request to those partitions 5) Waits for R replies that concur (R=2) 6) Resolves the object, replies to client 7) Third reply may come back at any time, but FSM replies as soon as quorum is satisfied/violated
  25. 1) Client requests a key 2) Get handler starts up to service the request 3) Hashes key to its owner partitions (N=3) 4) Sends similar “get” request to those partitions 5) Waits for R replies that concur (R=2) 6) Resolves the object, replies to client 7) Third reply may come back at any time, but FSM replies as soon as quorum is satisfied/violated
  26. 1) Client requests a key 2) Get handler starts up to service the request 3) Hashes key to its owner partitions (N=3) 4) Sends similar “get” request to those partitions 5) Waits for R replies that concur (R=2) 6) Resolves the object, replies to client 7) Third reply may come back at any time, but FSM replies as soon as quorum is satisfied/violated
  27. 1) Client requests a key 2) Get handler starts up to service the request 3) Hashes key to its owner partitions (N=3) 4) Sends similar “get” request to those partitions 5) Waits for R replies that concur (R=2) 6) Resolves the object, replies to client 7) Third reply may come back at any time, but FSM replies as soon as quorum is satisfied/violated
  28. 1) Client requests a key 2) Get handler starts up to service the request 3) Hashes key to its owner partitions (N=3) 4) Sends similar “get” request to those partitions 5) Waits for R replies that concur (R=2) 6) Resolves the object, replies to client 7) Third reply may come back at any time, but FSM replies as soon as quorum is satisfied/violated
  29. 1) Client requests a key 2) Get handler starts up to service the request 3) Hashes key to its owner partitions (N=3) 4) Sends similar “get” request to those partitions 5) Waits for R replies that concur (R=2) 6) Resolves the object, replies to client 7) Third reply may come back at any time, but FSM replies as soon as quorum is satisfied/violated
  30. 1) Client requests a key 2) Get handler starts up to service the request 3) Hashes key to its owner partitions (N=3) 4) Sends similar “get” request to those partitions 5) Waits for R replies that concur (R=2) 6) Resolves the object, replies to client 7) Third reply may come back at any time, but FSM replies as soon as quorum is satisfied/violated
  31. 1) Client requests a key 2) Get handler starts up to service the request 3) Hashes key to its owner partitions (N=3) 4) Sends similar “get” request to those partitions 5) Waits for R replies that concur (R=2) 6) Resolves the object, replies to client 7) Third reply may come back at any time, but FSM replies as soon as quorum is satisfied/violated
  32. 1) Client requests a key 2) Get handler starts up to service the request 3) Hashes key to its owner partitions (N=3) 4) Sends similar “get” request to those partitions 5) Waits for R replies that concur (R=2) 6) Resolves the object, replies to client 7) Third reply may come back at any time, but FSM replies as soon as quorum is satisfied/violated
  33. 1) Client requests a key 2) Get handler starts up to service the request 3) Hashes key to its owner partitions (N=3) 4) Sends similar “get” request to those partitions 5) Waits for R replies that concur (R=2) 6) Resolves the object, replies to client 7) Third reply may come back at any time, but FSM replies as soon as quorum is satisfied/violated
  34. 1) Client requests a key 2) Get handler starts up to service the request 3) Hashes key to its owner partitions (N=3) 4) Sends similar “get” request to those partitions 5) Waits for R replies that concur (R=2) 6) Resolves the object, replies to client 7) Third reply may come back at any time, but FSM replies as soon as quorum is satisfied/violated
  35. 1) Client requests a key 2) Get handler starts up to service the request 3) Hashes key to its owner partitions (N=3) 4) Sends similar “get” request to those partitions 5) Waits for R replies that concur (R=2) 6) Resolves the object, replies to client 7) Third reply may come back at any time, but FSM replies as soon as quorum is satisfied/violated
  36. 1) Client requests a key 2) Get handler starts up to service the request 3) Hashes key to its owner partitions (N=3) 4) Sends similar “get” request to those partitions 5) Waits for R replies that concur (R=2) 6) Resolves the object, replies to client 7) Third reply may come back at any time, but FSM replies as soon as quorum is satisfied/violated
  37. 1) Client requests a key 2) Get handler starts up to service the request 3) Hashes key to its owner partitions (N=3) 4) Sends similar “get” request to those partitions 5) Waits for R replies that concur (R=2) 6) Resolves the object, replies to client 7) Third reply may come back at any time, but FSM replies as soon as quorum is satisfied/violated
  38. 1) Client requests a key 2) Get handler starts up to service the request 3) Hashes key to its owner partitions (N=3) 4) Sends similar “get” request to those partitions 5) Waits for R replies that concur (R=2) 6) Resolves the object, replies to client 7) Third reply may come back at any time, but FSM replies as soon as quorum is satisfied/violated
  39. 1) Client requests a key 2) Get handler starts up to service the request 3) Hashes key to its owner partitions (N=3) 4) Sends similar “get” request to those partitions 5) Waits for R replies that concur (R=2) 6) Resolves the object, replies to client 7) Third reply may come back at any time, but FSM replies as soon as quorum is satisfied/violated
  40. 1) Client requests a key 2) Get handler starts up to service the request 3) Hashes key to its owner partitions (N=3) 4) Sends similar “get” request to those partitions 5) Waits for R replies that concur (R=2) 6) Resolves the object, replies to client 7) Third reply may come back at any time, but FSM replies as soon as quorum is satisfied/violated
  41. 1) Client requests a key 2) Get handler starts up to service the request 3) Hashes key to its owner partitions (N=3) 4) Sends similar “get” request to those partitions 5) Waits for R replies that concur (R=2) 6) Resolves the object, replies to client 7) Third reply may come back at any time, but FSM replies as soon as quorum is satisfied/violated
  42. *** make sure to talk about LWW, and commit hooks -- tell them to ignore the vclock business ***
  43. “Quorums”? When I say “quora” I mean the constraints (or lack thereof) your application puts on request consistency.
  44. Remember that requests contact all participant partitions/vnodes. No computer system is 100% reliable, so there will be times when increased latency or hardware failure will make a node unavailable. By unavailable, I mean requests timeout, the network partitions, or there’s an actual physical outage. FT = fault-tolerance, C = consistency Strong consistency (as opposed to strict) means that the participants in each read or write quorum overlap. The typical example is N=3, R=2, W=2. In all successful read requests, at least one of the read partitions will be one that accepted the latest write.
  45. Remember that requests contact all participant partitions/vnodes. No computer system is 100% reliable, so there will be times when increased latency or hardware failure will make a node unavailable. By unavailable, I mean requests timeout, the network partitions, or there’s an actual physical outage. FT = fault-tolerance, C = consistency Strong consistency (as opposed to strict) means that the participants in each read or write quorum overlap. The typical example is N=3, R=2, W=2. In all successful read requests, at least one of the read partitions will be one that accepted the latest write.
  46. Remember that requests contact all participant partitions/vnodes. No computer system is 100% reliable, so there will be times when increased latency or hardware failure will make a node unavailable. By unavailable, I mean requests timeout, the network partitions, or there’s an actual physical outage. FT = fault-tolerance, C = consistency Strong consistency (as opposed to strict) means that the participants in each read or write quorum overlap. The typical example is N=3, R=2, W=2. In all successful read requests, at least one of the read partitions will be one that accepted the latest write.
  47. Remember that requests contact all participant partitions/vnodes. No computer system is 100% reliable, so there will be times when increased latency or hardware failure will make a node unavailable. By unavailable, I mean requests timeout, the network partitions, or there’s an actual physical outage. FT = fault-tolerance, C = consistency Strong consistency (as opposed to strict) means that the participants in each read or write quorum overlap. The typical example is N=3, R=2, W=2. In all successful read requests, at least one of the read partitions will be one that accepted the latest write.
  48. However, writes are a little more complicated to track than reads. When there’s a detectable node outage/partition, writes will be sent to fallbacks (hinted handoff), which means that Riak is HIGHLY write-available. Also, there’s an implied R quorum because the internal Erlang client has to fetch the object to update it and the vclock.
  49. However, writes are a little more complicated to track than reads. When there’s a detectable node outage/partition, writes will be sent to fallbacks (hinted handoff), which means that Riak is HIGHLY write-available. Also, there’s an implied R quorum because the internal Erlang client has to fetch the object to update it and the vclock.
  50. However, writes are a little more complicated to track than reads. When there’s a detectable node outage/partition, writes will be sent to fallbacks (hinted handoff), which means that Riak is HIGHLY write-available. Also, there’s an implied R quorum because the internal Erlang client has to fetch the object to update it and the vclock.
  51. However, writes are a little more complicated to track than reads. When there’s a detectable node outage/partition, writes will be sent to fallbacks (hinted handoff), which means that Riak is HIGHLY write-available. Also, there’s an implied R quorum because the internal Erlang client has to fetch the object to update it and the vclock.
  52. Why don’t we outright reclaim the space? Ordering is hard to determine since deletes require no vclock. We prefer not lose data when there is an issue of contention.
  53. Why don’t we outright reclaim the space? Ordering is hard to determine since deletes require no vclock. We prefer not lose data when there is an issue of contention.
  54. Why don’t we outright reclaim the space? Ordering is hard to determine since deletes require no vclock. We prefer not lose data when there is an issue of contention.
  55. This is probably one of the easiest Map-Reduce queries/jobs you can submit. It simply returns the values of all the keys in the bucket, including their bucket/key/vclock and metadata.
  56. Instead of specifying the function inline, you can also store it under a bucket/key, and have Riak retrieve and execute it automatically.
  57. A query that makes use of the “arg” in the map phase, named functions, and a reduce phase. Finally here’s how you can submit all queries. Use the @- to signify that your data will come on the next line and be terminated by Ctrl-D.
  58. A query that makes use of the “arg” in the map phase, named functions, and a reduce phase. Finally here’s how you can submit all queries. Use the @- to signify that your data will come on the next line and be terminated by Ctrl-D.