After posting Redis, MemcacheDB, or CouchDB?, I did some work with MemcacheDB.
The convenience was really cool, but the limitations became quickly apparent.
I found myself managing my own index of documents; i.e. no fun. That might be ok in some cases, but not for browsing documents. It might be possible to eventually and easily automate indexing, but I decided to read up again on the other NoSQL projects.
I'm surprised with how many of these are written in erlang! Of them all, CouchDB (erlang) and MongoDB (C++) look the most impressive. They are way more than a key/value storage system; but could be used as such, as long as the documents are in JSON format.
Since the documents are stored in JSON, they have some inherent key/value pairs. Thus, these keys can be used for some tentative relationships, aka views.
While I prefer erlang to java, its still a fairly big dependency for a database. Thankfully, mongodb is written in C++ and there are debian packages available, as well as in the official debian "sid" repository.
So it looks like I'll eventually be switching from memcachedb to mongodb.
NOTE: I think its awesome that the mongodb developers chose the AGPL for the license!
UPDATE: A big difference between CouchDB and MongoDB is that CouchDB uses a REST style interface, while MongoDB does not, it uses language specific drivers. However, as the MongoDB docs state, a REST interface can be created in the future, and it appears there are some projects which make this possible, like sinatra_resource.
db version v1.3.3-, pdfile version 4.5 git hash: nogitversion sys info: Linux domU-12-31-39-09-BE-63 2.6.21.7-2.fc8xen-ec2-v1.0 #2 SMP Tue Sep 1 10:04:29 EDT 2009 i686 BOOST_LIB_VERSION=1_35dbwritelocked: 0 (initial) uptime: 93667 seconds
assertions:
replInfo:
Clients:
Thread | OpId | Active | LockType | Waiting | SecsRunning | Op | NameSpace | Query | client |
---|---|---|---|---|---|---|---|---|---|
initandlisten | 0 | 1 | 2004 | local.system.namespaces | { name: /^local.temp./ } | 0.0.0.0:0 | |||
snapshotthread | 0 | 0 | 0 | 0.0.0.0:0 | |||||
websvr | 2 | -1 | 2004 | admin.system.users | {} | 0.0.0.0:0 |
replication master: 0 slave: 0 initialSyncCompleted: 1
DBTOP (occurences|percent of elapsed)
NS | total | Reads | Writes | Queries | GetMores | Inserts | Updates | Removes |
---|---|---|---|---|---|---|---|---|
GLOBAL | 0|0.00% | 0|0.00% | 0|0.00% | 0|0.00% | 0|0.00% | 0|0.00% | 0|0.00% | 0|0.00% |
Related Posts: