SlideShare una empresa de Scribd logo
1 de 31
Descargar para leer sin conexión
Apache
                           CouchDB
Monday, November 2, 2009

how couchdb treats the disks
append only btree
Replication
                           JSON
 Map Reduce
                           HTTP
Monday, November 2, 2009

intro:
offline apps
simple development
easy to deploy
Stuart Langridge - Canonical




      !                                       !


Monday, November 2, 2009

15 million desktops by the end of the year.
solve the data island problem
Monday, November 2, 2009

raindrop - next gen messaging platform
name: your own personal piece of the cloud
Monday, November 2, 2009
Monday, November 2, 2009

Couchapps
-- easiest way to deploy an Ajax application that needs to store data.
-- capable of scaling up with CouchDB. (etags etc)
“Ground Computing”
                                                                          @jhuggins




                                                     http://www.flickr.com/photos/mcpig/872293700/
Monday, November 2, 2009

app runs near the user. lower latency, lower cost.
Monday, November 2, 2009
Offline by Default




                                               http://www.flickr.com/photos/shane-h/280084650
Monday, November 2, 2009

reliable
telephone poles / like akamai but for dynamic database backed applications.
 - same application on the client and server or the cloud
http://apod.nasa.gov/apod/ap050930.html




                                  “Of the Web”



                            http://jacobian.org/writing/of-the-web/



Monday, November 2, 2009
Let me tell you something: Django may be built for the Web, but CouchDB is built of the Web. I've never seen software that so
completely embraces the philosophies behind HTTP. ... this is what the software of the future looks like. Jacob Kaplan-Moss --
October, 2007

perfect spot - discovered not invented

When you can move data via replication, it

 changes the physics of the web

so data is useful independent of location.
Lockless
                           Storage
Monday, November 2, 2009

html5 story

   js

   ruby

   
   transactions?

-- getting CouchDB right involves going all the way to core lockless storage engine.

performance, map reduce, and deployment
B-Tree

Monday, November 2, 2009

data structure
sorted by keys
minimize disk seeks
Monday, November 2, 2009

logical btree
Monday, November 2, 2009

indexes - efficient
key lookups
range scans
Append

                                Only
Monday, November 2, 2009

robust / reliable
never touch bytes that are on disk
can’t be inconsistent
Monday, November 2, 2009

append only - in action
update J to a new value (rewrite j’s leaf node)
Monday, November 2, 2009

rewrite the path along the tree to J
up the parent path until we write the root.
Monday, November 2, 2009

all pointers point backwards into the file
Monday, November 2, 2009

update cost?

only has O(log n) cost where n is the # of keys
Monday, November 2, 2009

another update - add 5.

rewrite path to Z node to add 5
Monday, November 2, 2009

time follows the blue arrow.
top half is actually an accumulation of updates like the bottom.
note: batch efficiency -- save block updates
Monday, November 2, 2009

2 day test run
couchdb over long haul
4 writers, 16 readers, random access, small keyspace - lots of 409s etc.
Incremental

                           Reduce
Monday, November 2, 2009

takes advantage of the write pattern we’ve seen
setup main storage doc count example
Monday, November 2, 2009

rereduce = false
count # of keys in the block
Monday, November 2, 2009

rereduce = true
sum # of docs in child nodes
flexible range querying
Monday, November 2, 2009

intermediate reductions stored during a view calculation
updating J doesn’t change any counts, adding the 5 key does
Monday, November 2, 2009

we are rewriting the parent nodes anyway, so it makes sense to run the reduce calculation
Concurrent
               Access
Monday, November 2, 2009

readers see a consistent view
we can support many readers
reads don’t block writes
writes don’t block reads
Monday, November 2, 2009

concurrent readers
list all docs, then a write comes in, you don’t want to be surprised by an extra doc
readers can be as long lived as they want without blocking writers or seeing inconsistencies
Local Web
                    Platform
Monday, November 2, 2009

user interviews
http://www.longnow.org/projects/clock/orrery/
Monday, November 2, 2009

append-only
no fixup phase
reliable and concurrent
sequential write pattern (few writer seeks)
hot backups
compaction

Más contenido relacionado

Similar a Btree Nosql Oak

Apache Hadoop Talk at QCon
Apache Hadoop Talk at QConApache Hadoop Talk at QCon
Apache Hadoop Talk at QConCloudera, Inc.
 
How OpenNTF Open Source Solutions Can Save You Time, Money And Your Hair
How OpenNTF Open Source Solutions Can Save You Time, Money And Your HairHow OpenNTF Open Source Solutions Can Save You Time, Money And Your Hair
How OpenNTF Open Source Solutions Can Save You Time, Money And Your HairBruce Elgort
 
Game Changing Dependency Management
Game Changing Dependency ManagementGame Changing Dependency Management
Game Changing Dependency ManagementJeremy Kendall
 
The State of the Social Desktop 2009
The State of the Social Desktop 2009The State of the Social Desktop 2009
The State of the Social Desktop 2009Frank Karlitschek
 
Caching, sharding, distributing - Scaling best practices
Caching, sharding, distributing - Scaling best practicesCaching, sharding, distributing - Scaling best practices
Caching, sharding, distributing - Scaling best practicesLars Jankowfsky
 
Fast & Furious: Speed in the Opera browser
Fast & Furious: Speed in the Opera browserFast & Furious: Speed in the Opera browser
Fast & Furious: Speed in the Opera browserAndreas Bovens
 
Macruby - RubyConf Presentation 2010
Macruby - RubyConf Presentation 2010Macruby - RubyConf Presentation 2010
Macruby - RubyConf Presentation 2010Matt Aimonetti
 
Bringing Your Applications to the Fast Lane (CPN203) | AWS re:Invent 2013
Bringing Your Applications to the Fast Lane (CPN203) | AWS re:Invent 2013Bringing Your Applications to the Fast Lane (CPN203) | AWS re:Invent 2013
Bringing Your Applications to the Fast Lane (CPN203) | AWS re:Invent 2013Amazon Web Services
 
2009, o ano do Ruby on Rails no Brasil - CaelumDay 2009
2009, o ano do Ruby on Rails no Brasil - CaelumDay 20092009, o ano do Ruby on Rails no Brasil - CaelumDay 2009
2009, o ano do Ruby on Rails no Brasil - CaelumDay 2009Caue Guerra
 
Aloha on-rails-2009
Aloha on-rails-2009Aloha on-rails-2009
Aloha on-rails-2009John Woodell
 
Building A Scalable Open Source Storage Solution
Building A Scalable Open Source Storage SolutionBuilding A Scalable Open Source Storage Solution
Building A Scalable Open Source Storage SolutionPhil Cryer
 
The Open-PC - OpenSourceExpo 2009
The Open-PC - OpenSourceExpo 2009The Open-PC - OpenSourceExpo 2009
The Open-PC - OpenSourceExpo 2009Frank Karlitschek
 
Tech Talk: RocksDB Slides by Dhruba Borthakur & Haobo Xu of Facebook
Tech Talk: RocksDB Slides by Dhruba Borthakur & Haobo Xu of FacebookTech Talk: RocksDB Slides by Dhruba Borthakur & Haobo Xu of Facebook
Tech Talk: RocksDB Slides by Dhruba Borthakur & Haobo Xu of FacebookThe Hive
 
Functional Java Script - Webtechcon 2009
Functional Java Script - Webtechcon 2009Functional Java Script - Webtechcon 2009
Functional Java Script - Webtechcon 2009wolframkriesing
 

Similar a Btree Nosql Oak (20)

Performance Strategies
Performance StrategiesPerformance Strategies
Performance Strategies
 
Go Course Day1
Go Course Day1Go Course Day1
Go Course Day1
 
Apache Hadoop Talk at QCon
Apache Hadoop Talk at QConApache Hadoop Talk at QCon
Apache Hadoop Talk at QCon
 
How OpenNTF Open Source Solutions Can Save You Time, Money And Your Hair
How OpenNTF Open Source Solutions Can Save You Time, Money And Your HairHow OpenNTF Open Source Solutions Can Save You Time, Money And Your Hair
How OpenNTF Open Source Solutions Can Save You Time, Money And Your Hair
 
Docker
DockerDocker
Docker
 
Game Changing Dependency Management
Game Changing Dependency ManagementGame Changing Dependency Management
Game Changing Dependency Management
 
The State of the Social Desktop 2009
The State of the Social Desktop 2009The State of the Social Desktop 2009
The State of the Social Desktop 2009
 
Caching, sharding, distributing - Scaling best practices
Caching, sharding, distributing - Scaling best practicesCaching, sharding, distributing - Scaling best practices
Caching, sharding, distributing - Scaling best practices
 
Fast & Furious: Speed in the Opera browser
Fast & Furious: Speed in the Opera browserFast & Furious: Speed in the Opera browser
Fast & Furious: Speed in the Opera browser
 
Macruby - RubyConf Presentation 2010
Macruby - RubyConf Presentation 2010Macruby - RubyConf Presentation 2010
Macruby - RubyConf Presentation 2010
 
Bringing Your Applications to the Fast Lane (CPN203) | AWS re:Invent 2013
Bringing Your Applications to the Fast Lane (CPN203) | AWS re:Invent 2013Bringing Your Applications to the Fast Lane (CPN203) | AWS re:Invent 2013
Bringing Your Applications to the Fast Lane (CPN203) | AWS re:Invent 2013
 
2009, o ano do Ruby on Rails no Brasil - CaelumDay 2009
2009, o ano do Ruby on Rails no Brasil - CaelumDay 20092009, o ano do Ruby on Rails no Brasil - CaelumDay 2009
2009, o ano do Ruby on Rails no Brasil - CaelumDay 2009
 
Aloha on-rails-2009
Aloha on-rails-2009Aloha on-rails-2009
Aloha on-rails-2009
 
Building A Scalable Open Source Storage Solution
Building A Scalable Open Source Storage SolutionBuilding A Scalable Open Source Storage Solution
Building A Scalable Open Source Storage Solution
 
Everyday - mongodb
Everyday - mongodbEveryday - mongodb
Everyday - mongodb
 
The Open-PC - OpenSourceExpo 2009
The Open-PC - OpenSourceExpo 2009The Open-PC - OpenSourceExpo 2009
The Open-PC - OpenSourceExpo 2009
 
Tech Talk: RocksDB Slides by Dhruba Borthakur & Haobo Xu of Facebook
Tech Talk: RocksDB Slides by Dhruba Borthakur & Haobo Xu of FacebookTech Talk: RocksDB Slides by Dhruba Borthakur & Haobo Xu of Facebook
Tech Talk: RocksDB Slides by Dhruba Borthakur & Haobo Xu of Facebook
 
Functional Java Script - Webtechcon 2009
Functional Java Script - Webtechcon 2009Functional Java Script - Webtechcon 2009
Functional Java Script - Webtechcon 2009
 
JRubyConf 2009
JRubyConf 2009JRubyConf 2009
JRubyConf 2009
 
Cloudera Desktop
Cloudera DesktopCloudera Desktop
Cloudera Desktop
 

Más de Chris Anderson

CouchDB - Local Web Platform
CouchDB - Local Web PlatformCouchDB - Local Web Platform
CouchDB - Local Web PlatformChris Anderson
 
CouchDB Open Source Bridge
CouchDB Open Source BridgeCouchDB Open Source Bridge
CouchDB Open Source BridgeChris Anderson
 
CouchDB to the Edge ApacheCon EU
CouchDB to the  Edge ApacheCon EUCouchDB to the  Edge ApacheCon EU
CouchDB to the Edge ApacheCon EUChris Anderson
 
CouchDB Talk JChris NYC
CouchDB Talk JChris NYCCouchDB Talk JChris NYC
CouchDB Talk JChris NYCChris Anderson
 

Más de Chris Anderson (6)

CouchDB - Local Web Platform
CouchDB - Local Web PlatformCouchDB - Local Web Platform
CouchDB - Local Web Platform
 
CouchDB Open Source Bridge
CouchDB Open Source BridgeCouchDB Open Source Bridge
CouchDB Open Source Bridge
 
CouchDB To The Edge
CouchDB To The EdgeCouchDB To The Edge
CouchDB To The Edge
 
CouchDB to the Edge ApacheCon EU
CouchDB to the  Edge ApacheCon EUCouchDB to the  Edge ApacheCon EU
CouchDB to the Edge ApacheCon EU
 
Vidoop CouchDB Talk
Vidoop CouchDB TalkVidoop CouchDB Talk
Vidoop CouchDB Talk
 
CouchDB Talk JChris NYC
CouchDB Talk JChris NYCCouchDB Talk JChris NYC
CouchDB Talk JChris NYC
 

Último

Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLDeveloper Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLScyllaDB
 
DSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine TuningDSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine TuningLars Bell
 
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Mark Simos
 
Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Commit University
 
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024BookNet Canada
 
SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024Lorenzo Miniero
 
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdfHyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdfPrecisely
 
How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.Curtis Poe
 
How to write a Business Continuity Plan
How to write a Business Continuity PlanHow to write a Business Continuity Plan
How to write a Business Continuity PlanDatabarracks
 
Streamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupStreamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupFlorian Wilhelm
 
Advanced Computer Architecture – An Introduction
Advanced Computer Architecture – An IntroductionAdvanced Computer Architecture – An Introduction
Advanced Computer Architecture – An IntroductionDilum Bandara
 
Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfUnraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfAlex Barbosa Coqueiro
 
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxMerck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxLoriGlavin3
 
Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfGen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfAddepto
 
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc
 
Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationSlibray Presentation
 
SAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxSAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxNavinnSomaal
 
Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Scott Keck-Warren
 
Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Enterprise Knowledge
 

Último (20)

Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLDeveloper Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQL
 
DSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine TuningDSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine Tuning
 
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
 
Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!
 
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
 
SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024
 
DMCC Future of Trade Web3 - Special Edition
DMCC Future of Trade Web3 - Special EditionDMCC Future of Trade Web3 - Special Edition
DMCC Future of Trade Web3 - Special Edition
 
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdfHyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
 
How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.
 
How to write a Business Continuity Plan
How to write a Business Continuity PlanHow to write a Business Continuity Plan
How to write a Business Continuity Plan
 
Streamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupStreamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project Setup
 
Advanced Computer Architecture – An Introduction
Advanced Computer Architecture – An IntroductionAdvanced Computer Architecture – An Introduction
Advanced Computer Architecture – An Introduction
 
Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfUnraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdf
 
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxMerck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
 
Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfGen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdf
 
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
 
Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck Presentation
 
SAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxSAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptx
 
Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024
 
Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024
 

Btree Nosql Oak

  • 1. Apache CouchDB Monday, November 2, 2009 how couchdb treats the disks append only btree
  • 2. Replication JSON Map Reduce HTTP Monday, November 2, 2009 intro: offline apps simple development easy to deploy
  • 3. Stuart Langridge - Canonical ! ! Monday, November 2, 2009 15 million desktops by the end of the year. solve the data island problem
  • 4. Monday, November 2, 2009 raindrop - next gen messaging platform name: your own personal piece of the cloud
  • 6. Monday, November 2, 2009 Couchapps -- easiest way to deploy an Ajax application that needs to store data. -- capable of scaling up with CouchDB. (etags etc)
  • 7. “Ground Computing” @jhuggins http://www.flickr.com/photos/mcpig/872293700/ Monday, November 2, 2009 app runs near the user. lower latency, lower cost.
  • 9. Offline by Default http://www.flickr.com/photos/shane-h/280084650 Monday, November 2, 2009 reliable telephone poles / like akamai but for dynamic database backed applications. - same application on the client and server or the cloud
  • 10. http://apod.nasa.gov/apod/ap050930.html “Of the Web” http://jacobian.org/writing/of-the-web/ Monday, November 2, 2009 Let me tell you something: Django may be built for the Web, but CouchDB is built of the Web. I've never seen software that so completely embraces the philosophies behind HTTP. ... this is what the software of the future looks like. Jacob Kaplan-Moss -- October, 2007 perfect spot - discovered not invented When you can move data via replication, it changes the physics of the web so data is useful independent of location.
  • 11. Lockless Storage Monday, November 2, 2009 html5 story js ruby transactions? -- getting CouchDB right involves going all the way to core lockless storage engine. performance, map reduce, and deployment
  • 12. B-Tree Monday, November 2, 2009 data structure sorted by keys minimize disk seeks
  • 13. Monday, November 2, 2009 logical btree
  • 14. Monday, November 2, 2009 indexes - efficient key lookups range scans
  • 15. Append Only Monday, November 2, 2009 robust / reliable never touch bytes that are on disk can’t be inconsistent
  • 16. Monday, November 2, 2009 append only - in action update J to a new value (rewrite j’s leaf node)
  • 17. Monday, November 2, 2009 rewrite the path along the tree to J up the parent path until we write the root.
  • 18. Monday, November 2, 2009 all pointers point backwards into the file
  • 19. Monday, November 2, 2009 update cost? only has O(log n) cost where n is the # of keys
  • 20. Monday, November 2, 2009 another update - add 5. rewrite path to Z node to add 5
  • 21. Monday, November 2, 2009 time follows the blue arrow. top half is actually an accumulation of updates like the bottom. note: batch efficiency -- save block updates
  • 22. Monday, November 2, 2009 2 day test run couchdb over long haul 4 writers, 16 readers, random access, small keyspace - lots of 409s etc.
  • 23. Incremental Reduce Monday, November 2, 2009 takes advantage of the write pattern we’ve seen setup main storage doc count example
  • 24. Monday, November 2, 2009 rereduce = false count # of keys in the block
  • 25. Monday, November 2, 2009 rereduce = true sum # of docs in child nodes flexible range querying
  • 26. Monday, November 2, 2009 intermediate reductions stored during a view calculation updating J doesn’t change any counts, adding the 5 key does
  • 27. Monday, November 2, 2009 we are rewriting the parent nodes anyway, so it makes sense to run the reduce calculation
  • 28. Concurrent Access Monday, November 2, 2009 readers see a consistent view we can support many readers reads don’t block writes writes don’t block reads
  • 29. Monday, November 2, 2009 concurrent readers list all docs, then a write comes in, you don’t want to be surprised by an extra doc readers can be as long lived as they want without blocking writers or seeing inconsistencies
  • 30. Local Web Platform Monday, November 2, 2009 user interviews
  • 31. http://www.longnow.org/projects/clock/orrery/ Monday, November 2, 2009 append-only no fixup phase reliable and concurrent sequential write pattern (few writer seeks) hot backups compaction