JavaZone 2010 - CouchDB and the web

There has been a lot of hype around NoSQL lately. In this session, you will get a brief introduction to NoSQL and learn why you should consider retiring your trusty relational database in your next project. There are still things that relational databases do better than NoSQL, but you will see that in most cases the downside for scaling is not worth it. Important NoSQL systems to be aware of and that will be covered in this overview are cassandra, hbase/hadoop, CouchDB, MongoDB and Tokyo Cabinet.
You will see specific examples of how the schemaless nature of CouchDB allows you to store multiple types of documents in a single database and why this is a good thing. Learn how CouchDB's powerful map reduce views can rid your code of SQL or SQL abstractions. A database without replication is useless and master-slave replication still makes for a slightly rigid and vulnerable storage system. Learn about CouchDB's master-master replication and how it's filters enables partial replications. Replication is both data protection and scaling to handle more load. To handle more data, you need to shard your data. Sharding is dividing your data across different servers. While you can preshard your data, the scary bit is often to reshard a running system. See how Pillow can help you handle your sharding and resharding needs. Reliability and consistency are important for a large scale storage system. You learn why eventual consistency is sufficient and how to ensure your system is reliable. There is also a reason why CouchDB and Pillow are both written in Erlang and you will get some background for these choices.
The talk will conclude with some key learnings from a year of working with Ruby and CouchDB in the Amazon cloud, EC2.
Knut O. Hellan

Knut O. Hellan

Knut has worked with search engines and related web scale systems for 10 years in FAST, Yahoo! and Google holding positions such as engineer, project manager, program manager and engineering manager. He founded Sincerial AS, a company developing and hosting a recommendation engine for web sites and is currently a senior consultant at Conceptos Consulting Trondheim. Knut has also found time to develop Pillow, an open-source routing and resharding server for CouchDB.