Python and NoSQL
One of the more interesting developments in the past couple years is the use of NoSQL databases. FOr many years, the default answer to any kind of persistence problem was simply to put it in a (relational) database. If you had problems scaling, then you would shard or pay lots of money for clustered/big iron solutions. NoSQL developed in part as a reaction to the overuse of RDBMSes for all sorts of problems.
Of course, it can be hard to say exactly what NoSQL is - but I like to define it as a resurgence of "the right tool for the job," just applied to the storage and persistence space. It can be graph-based, document-based, column-based, or object based -- or even just a data structures server.
It is not surprising, though, that Python is able to talk to them all. In this track we have four different talks, giving the inside scoop on production-level use of various NoSQL stores.
ZODB: A Python Persistence System by Chris McDonough. The ZODB is the granddaddy of the various NoSQL options for Python, having been developed when such things were "object databases" and not "NoSQL." Nevertheless, the ZODB is a standalone persistence system uniquely integrated into Python that remains astoundingly buzzword-compliant despite its age. This talk will provide a high-level overview of ZODB useful to a novice or intermediate Python programmer. At the end of the talk, an attendee should have a basic understanding of how to create an application which depends on ZODB persistence.
CouchDB and Python in practice by Luke Gotszling. CouchDB has a unique document-centric model with automatic clustering and replication. It is gaining a lot of traction, and has recently been seen both up in the clouds and as a data store on Android phones. This talk will introduce CouchDB and will show how to get it to play well with Python. Luke will continue by showing a python ORM for CouchDB, easing development and object-document interoperability. Finally, Luke will cover parsing CouchDB documents within python, writing view functions in python, map/reduce functions on CouchDB from python, and some lessons learned from managing and distributing a live deployment at scale under high load.
Scaling Python past 100 by Mark Ramm. Those with eagle eyes will spot this as a repeat from the "web working" track. That is because this talk is a twofer - describing both the development of the modern Python codebase as well as the use of MongoDB to address the scaling issues associated with a top 100 site.
MongoDB + Pylons at Catch.com: Scalable Web Apps with Python and NoSQL by Niall O'Higgins. The Catch.com backend provides an API for publishing and querying your personal data - used by many hugely popular Android, iOS and Web clients. Faced with the limits of the initial Catch.com Java/BDB backend implemention, they evaluated various alternative technologies including Amazon SimpleDB, MySQL, Cassandra and MongoDB. They found Python and MongoDB gave them unique flexibility with our data model, allowed them to scale for increased reliability and performance and decreased feature development time - and in this talk they'll describe exactly how.
Edit: Wesley Chun points out that Running Django Apps on Google App Engine is also designed to deal with NoSQL datastores - and that the principles covered in his talk apply both to GAE and to MongoDB. ed.
Is this the conference you want to see? Then, register for PyCon and book your room now! We have picked up a few more rooms - including a few at a lower rate a block away. You can email (pycon4-reg@cteusa.com), or phone (847-759-4277). We have very few spots left.
Links:
- Go to Part 1 of this series
- Go to Part 2 of this series
- Go to this post on the PyCon site.
Comments