SlideShare uma empresa Scribd logo
1 de 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)

Mais conteúdo relacionado

Mais procurados

Intrusion detection system ppt
Intrusion detection system pptIntrusion detection system ppt
Intrusion detection system pptSheetal Verma
 
ZagorvL 302 - Cromov glasnik
ZagorvL 302 - Cromov glasnikZagorvL 302 - Cromov glasnik
ZagorvL 302 - Cromov glasnikStripovizijacom
 
Module 18 investigating web attacks
Module 18 investigating web attacksModule 18 investigating web attacks
Module 18 investigating web attackssagaroceanic11
 
Goethe-Zertifikat B2 - Cover
Goethe-Zertifikat B2 - CoverGoethe-Zertifikat B2 - Cover
Goethe-Zertifikat B2 - CoverMads Knudsen
 
Machine Learning and Data Mining: 03 Data Representation
Machine Learning and Data Mining: 03 Data RepresentationMachine Learning and Data Mining: 03 Data Representation
Machine Learning and Data Mining: 03 Data RepresentationPier Luca Lanzi
 
Distributed DBMS - Unit 8 - Distributed Transaction Management & Concurrency ...
Distributed DBMS - Unit 8 - Distributed Transaction Management & Concurrency ...Distributed DBMS - Unit 8 - Distributed Transaction Management & Concurrency ...
Distributed DBMS - Unit 8 - Distributed Transaction Management & Concurrency ...Gyanmanjari Institute Of Technology
 
Cyber Security - Unit - 5 - Introduction to Cyber Crime Investigation
Cyber Security - Unit - 5 - Introduction to Cyber Crime InvestigationCyber Security - Unit - 5 - Introduction to Cyber Crime Investigation
Cyber Security - Unit - 5 - Introduction to Cyber Crime InvestigationGyanmanjari Institute Of Technology
 
TF.ROTF.OMS-NFROS.02
TF.ROTF.OMS-NFROS.02TF.ROTF.OMS-NFROS.02
TF.ROTF.OMS-NFROS.02Arcee327
 
Intrusion Detection Systems and Intrusion Prevention Systems
Intrusion Detection Systems  and Intrusion Prevention Systems Intrusion Detection Systems  and Intrusion Prevention Systems
Intrusion Detection Systems and Intrusion Prevention Systems Cleverence Kombe
 
3 reasons your business can't ignore Two-Factor Authentication
3 reasons your business can't ignore Two-Factor Authentication3 reasons your business can't ignore Two-Factor Authentication
3 reasons your business can't ignore Two-Factor AuthenticationFortytwo
 
0274. čEličNa KućA
0274. čEličNa KućA0274. čEličNa KućA
0274. čEličNa KućATompa *
 
Lms 496 - kit teler - zlatni tovar
Lms   496 - kit teler - zlatni tovarLms   496 - kit teler - zlatni tovar
Lms 496 - kit teler - zlatni tovarStripovizijacom
 

Mais procurados (20)

Intrusion detection system ppt
Intrusion detection system pptIntrusion detection system ppt
Intrusion detection system ppt
 
ZagorvL 302 - Cromov glasnik
ZagorvL 302 - Cromov glasnikZagorvL 302 - Cromov glasnik
ZagorvL 302 - Cromov glasnik
 
Module 18 investigating web attacks
Module 18 investigating web attacksModule 18 investigating web attacks
Module 18 investigating web attacks
 
Windows Hacking
Windows HackingWindows Hacking
Windows Hacking
 
Goethe-Zertifikat B2 - Cover
Goethe-Zertifikat B2 - CoverGoethe-Zertifikat B2 - Cover
Goethe-Zertifikat B2 - Cover
 
Malicious
MaliciousMalicious
Malicious
 
Machine Learning and Data Mining: 03 Data Representation
Machine Learning and Data Mining: 03 Data RepresentationMachine Learning and Data Mining: 03 Data Representation
Machine Learning and Data Mining: 03 Data Representation
 
Denial of service
Denial of serviceDenial of service
Denial of service
 
Distributed DBMS - Unit 8 - Distributed Transaction Management & Concurrency ...
Distributed DBMS - Unit 8 - Distributed Transaction Management & Concurrency ...Distributed DBMS - Unit 8 - Distributed Transaction Management & Concurrency ...
Distributed DBMS - Unit 8 - Distributed Transaction Management & Concurrency ...
 
Cyber Security - Unit - 5 - Introduction to Cyber Crime Investigation
Cyber Security - Unit - 5 - Introduction to Cyber Crime InvestigationCyber Security - Unit - 5 - Introduction to Cyber Crime Investigation
Cyber Security - Unit - 5 - Introduction to Cyber Crime Investigation
 
TF.ROTF.OMS-NFROS.02
TF.ROTF.OMS-NFROS.02TF.ROTF.OMS-NFROS.02
TF.ROTF.OMS-NFROS.02
 
Intrusion Detection Systems and Intrusion Prevention Systems
Intrusion Detection Systems  and Intrusion Prevention Systems Intrusion Detection Systems  and Intrusion Prevention Systems
Intrusion Detection Systems and Intrusion Prevention Systems
 
3 reasons your business can't ignore Two-Factor Authentication
3 reasons your business can't ignore Two-Factor Authentication3 reasons your business can't ignore Two-Factor Authentication
3 reasons your business can't ignore Two-Factor Authentication
 
0274. čEličNa KućA
0274. čEličNa KućA0274. čEličNa KućA
0274. čEličNa KućA
 
What is malware
What is malwareWhat is malware
What is malware
 
Forensics Analysis and Validation
Forensics Analysis and Validation  Forensics Analysis and Validation
Forensics Analysis and Validation
 
939 lik izdajnika
939  lik izdajnika939  lik izdajnika
939 lik izdajnika
 
Lms 496 - kit teler - zlatni tovar
Lms   496 - kit teler - zlatni tovarLms   496 - kit teler - zlatni tovar
Lms 496 - kit teler - zlatni tovar
 
Network security and viruses
Network security and virusesNetwork security and viruses
Network security and viruses
 
File000152
File000152File000152
File000152
 

Mais de 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
 

Mais de 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
 

Notas do Editor

  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.