NoSQL Benchmarks NoSQL use cases NoSQL Videos NoSQL Hybrid Solutions NoSQL Presentations Big Data Hadoop MapReduce Pig Hive Flume Oozie Sqoop HDFS ZooKeeper Cascading Cascalog BigTable Cassandra HBase Hypertable Couchbase CouchDB MongoDB OrientDB RavenDB Jackrabbit Terrastore Amazon DynamoDB Redis Riak Project Voldemort Tokyo Cabinet Kyoto Cabinet memcached Amazon SimpleDB Datomic MemcacheDB M/DB GT.M Amazon Dynamo Dynomite Mnesia Yahoo! PNUTS/Sherpa Neo4j InfoGrid Sones GraphDB InfiniteGraph AllegroGraph MarkLogic Clustrix CouchDB Case Studies MongoDB Case Studies NoSQL at Adobe NoSQL at Facebook NoSQL at Twitter



Python: All content tagged as Python in NoSQL databases and polyglot persistence

MongoDB, Pymongo and mod_wsgi

Very interesting discussion about the possible limitations [1] of using Pymongo with mod_wsgi [2]:

The problem, as someone else rightly described is because the C extension module is not tying global data created at the C level to specific interpreters. Thus it is sharing Python objects between sub interpreters, which is generally a very bad idea.


RedBottle: REST-style app with Redis and Python Bottle

So I thought, hey, why not cook up a super-simple application skeleton that integrates Bottle and Redis? That way, you could create a Bottle project with the Redis goodness more-or-less built-in.

I like both Bottle (and I’d like it even more if it would it would be a bit more OO — nb maybe it already is and I just missed that, so please feel free to correct me if wrong) and Redis, so this should be fun.



Internationalization with MongoDB and MongoKit

An example on how to store internationalized data with MongoDB and MongoKit:

>> raw_blog_post

{u'body': [{u'lang': u'fr', u'value': u'Comment allez-vous ?'},
           {u'lang': u'en', u'value': u'How are you ?'}],
 u'_id': u'bp1', 
 u'author': u'me', 
 u'title': [{u'lang': u'fr', u'value': u'Salut'}, 
            {u'lang': u'en', u'value': u'Hello'}]

I’ve been using a very similar solution for storing InfoQ content translations in JCR/Jackrabbit.



Usecase: NoSQL-based Blogs

Aside Twitter applications, blogs are another darling of NoSQL projects. So, I’ve put together a list of NoSQL powered blog projects.



A Rails and CouchDB blog. Code on ☞ GitHub


A CouchDB-based blog built in “one day” with Django (nb so far I couldn’t find the source code, so any leads are appreciated).



A simple blog built using neo4j, jo4neo and Stripes. You can read more about it ☞ here and get the code from ☞ Google code.

Couple of comments:

  • I don’t really like the fact that the model is neo4j aware, but that’s similar to what JPA is doing too
  • I like the indexing annotation though, but I am not sure if it uses neo4j Lucene full text indexing



A cli-application blog built using neo4j. Code available on ☞ Google code.




A lightweight blogging engine written in C++ and using MongoDB. Code available on ☞ GitHub


Update: thanks to the comments, I have added two more NoSQL-based blog engines.


Django-Mumblr is a basic Django tumblelog application that uses MongoDB. Source code can be found on ☞ GitHub


mmmblog is a blog engine based on Rails, mongomapper and MongoDB, providing feeds, OpenID comments and a simple admin interface. Code is available on ☞ Gitorious

I am pretty sure there are more out there, so please send them over!

NoSQL Twitter Applications

Everyone is building these days a Twitter-like or Twitter-related project using some NoSQL solution. I guess they can use as a ‘scientific’ explanation for these experiments Nati Shalom’s (Gigaspaces) great ☞ post on the common principles behind NoSQL alternatives (the post was inspired by his talk at QCon on building a scalable Twitter application. The presentation is embedded below).


Even if the project code is not available and I couldn’t get the mentioned online version to work, I’d say that the combination of Redis and HTML5 WebSockets is making it worth mentioning. And it case you cannot get it to work either, there is a screencast for it:


TStore is a twitter search result backup tool build in Python and CouchDB. The source code is available on ☞ GitHub.


Retwis is a non-distributed Twitter clone built in PHP and using Redis. The source code and extended details about the implementation are available ☞ here.

According to this page, there is already a port of this solution to Ruby and Sinatra: ☞ Retwis-RB.

Update: Thanks to @koevert, now the list includes also a java port of Retwis: ☞ twayis


Floxee is a commercial tweetstream search and tagging platform built using MongoDB. You can read a bit more about MongoDB usage ☞ here

I am pretty sure I haven’t found all Twitter-like/Twitter-related NoSQL apps out there, so please feel free to send me more. I’ll be happy to update the post.

And in case you are not interested in NoSQL Twitter applications, then you can check the MongoDB-based forum/message-boards apps.

Nati Shalom: Designing a Scalable Twitter - Patterns for Designing Scalable Real-Time Web Applications

An Introduction to Using CouchDB with Django

CouchDB is one of the more exciting projects—measured in number of semi-plausible day dreams it has inspired—I’ve run into in the past year. It is an ideological rival to relational databases, and instead of being focused on highly detailed schemas (long ints, varchars of length 25, and blobs of binary data, oh my) it deals in documents. These documents may be comprised of identical fields, but may also contain dissimilar fields, allowing the same flexibility as Google’s BigTable. Beyond that, CouchDB brings some other unexpected goodies to the table like document versioning.