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



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

MongoDB Pub/Sub With Capped Collections

Rick Copeland designs a MongoDB Pub/Sub system based on:

  • MongoDB’s capped collections,
  • tailable data-awaiting cursors,
  • sequences (using find_and_modify()),
  • a “poorly documented option” of capped collections: oplog_replay1.

If you’ve been following this blog for any length of time, you know that my NoSQL database of choice is MongoDB. One thing that MongoDB isn’t known for, however, is building a publish / subscribe system. Redis, on the other hand, is known for having a high-bandwith, low-latency pub/sub protocol. One thing I’ve always wondered is whether I can build a similar system atop MongoDB’s capped collections, and if so, what the performance would be. Read on to find out how it turned out…

The solution is definitely ingenious and it could probably work for systems with not so many requirements for their pub/sub. It’s definitely a good excercise in combining some interesting features of MongoDB (I like the capped collections and the tailable data-awaiting cursors).

✚ I’m wondering if the behavior of the tailable data-awaiting cursors is the one of the non-blocking polls.

  1. I don’t really understand how this works. 

Original title and link: MongoDB Pub/Sub With Capped Collections (NoSQL database©myNoSQL)


Counting in MongoDB Just Got Much Faster

Antoine Girbal about counts in MongoDB:

Doing counts in MongoDB has always been a slow operation even on an indexed field… until now. To do the count, it would iterate through every single element in the index and try to match the key, giving a response time of several seconds for just a million documents. It would be especially slow on values with high cardinality, meaning that the count is high.

A bug-fix and an optimization using MongoDB’s B-trees.

Original title and link: Counting in MongoDB Just Got Much Faster (NoSQL database©myNoSQL)


Is MongoDB Still on Course?

Adrien Mogenet about his expectations on MongoDB’s evolution:

I was a real fan of MongoDB in it’s early days, while all of the current solutions were just emerging. […] To be clear, I’m definitely not against MongoDB. I just wanted through this article to point out the fact that they roughly changed their directions and lead to a project that I could not follow anymore;

Breadth vs depth.

Original title and link: Is MongoDB Still on Course? (NoSQL database©myNoSQL)


MongoDB Transactions With TokuDB's Fractal Tree Indexes Engine

Interesting new direction of TokuDB pushing their storage engine based on Fractal Tree Indexes to MongoDB:

Running MongoDB with Fractal Tree Indexes (used today in the MySQL storage engine TokuDB) is fully transactional. Each statement is transactional. If an update is to modify ten rows, then either all rows are modified, or none are. Queries use multi-versioning concurrency control (MVCC) to return results from a snapshot of the system, thereby not being affected by write operations that may happen concurrently.

Original title and link: MongoDB Transactions With TokuDB’s Fractal Tree Indexes Engine (NoSQL database©myNoSQL)


Rackspace: BYOD to Your Preferred Storage

While Amazon Web Services approach is bring-your-own-data to our storage and processing solutions, Rackspace’s strategy seems to be “whatever popular NoSQL storage engine you like, we have your back. Just bring your data“.

Last month Rackspace bought MongoDB hosting provider ObjectRocket and now they acquired Exceptional Cloud Service which brings Redis hosting on board.

It’s difficult to say how well is Amazon’s strategy working as the company doesn’t do a lot to get their customers’ case studies out there—I still need to find a list of 10 companies that are using Amazon Dynamo. But this doesn’t mean a thing. On the other hand, I can see Rackspace’s strategy working and getting a lot of traction considering they’re looking after the most popular NoSQL tools.

✚ The Register writes about this acquisition too: Rackspace gobbles Exceptional Cloud Services for Redis smarts. I assume many others are asking the same question:

So, with Redis and MongoDB due to make their way into the Rackspace cloud proper, what other technologies are catching the web hoster turned cloud whisperer’s eyes?

Original title and link: Rackspace: BYOD to Your Preferred Storage (NoSQL database©myNoSQL)

Does Anyone Know What's Going on at Coinbase? - a Bank on MongoDB

Read the Hacker News thread about Coinbase.

Money is going missing. Transactions have been delayed for days and, in some cases, over a week. Even amounts already in BTC aren’t leaving the system.

The (snarky) comment is that Coinbase is a bank built on MongoDB.

Emin Gün Sirer

Original title and link: Does Anyone Know What’s Going on at Coinbase? - a Bank on MongoDB (NoSQL database©myNoSQL)


CSA: Upgrade Immediately to MongoDB 2.4.1

If you are running MongoDB 2.4, upgrade immediately to 2.4.1. Details here.

Original title and link: CSA: Upgrade Immediately to MongoDB 2.4.1 (NoSQL database©myNoSQL)

Drawn to Scale Announces Spire for Mongo

Bradford Stephens (CEO Drawn to Scale):

Today, we’re announcing that we’ve ported MongoDB onto Spire as a platform. What this means is:

  1. You can easily scale your MongoDB cluster to 200+ TB
  2. You don’t need to change a line of code in your app to make it scale
  3. You can use ANSI SQL (yes, joins), Mongo queries, and Hadoop on the same data.

Just a couple of thoughts:

  1. the push of NoSQL databases to get SQL support is growing extremely fast. But I still doubt this is happening thanks to the advantages of SQL, but more due to the 30 years of investments in the SQL ecosystem.
  2. I don’t agree with Bradford’s “MongoQL is also great because unlike SQL, there is only one flavor”. As far as I can tell, MongoDB comes with 3 flavors of queries: the object-based query language, the aggregation framework (a combination of object-based QL and pipelining) and the Javascript-based MapReduce
  3. last but not least, what are Ryan Rawson’s thoughts about Drawn to Scale going Mongo.

Original title and link: Drawn to Scale Announces Spire for Mongo (NoSQL database©myNoSQL)


10gen’s MongoDB Following the Steps of MySQL

10gen has never been shy about their plan: replacing MySQL. That’s a bold goal considering Oracle is now behind MySQL. But this could also make things a bit easier for 10gen.

Anyways, what made me write this separate post is the realization of how close 10gen is following the MySQL path:

  1. release early and incomplete. Enhance over time
  2. position the product as the developer friendly and fast
  3. introduce an enterprise edition once your adoption overpassed that of your immediate competitors.

I guess I already know how it’ll end: $2 billion acquisition from a company that gets acquired by Oracle.

While the official announcement of MongoDB 2.4 version mentioned just in passing the “MongoDB Enterprise” version, other websites didn’t leave this aspect aside. Actually it’s what got emphasized about the today’s announcement. In case you wonder what’s the the 10gen’s enterprise box: Kerberos-based security and an on-premise version of the MongoDB Monitoring Service.

The only question I have now is how soon Oracle will start looking into acquiring 10gen. Or how soon it will dedicate marketing and sales resources to directly address 10gen.

Original title and link: 10gen’s MongoDB Following the Steps of MySQL (NoSQL database©myNoSQL)

MongoDB 2.4 Released: Hash-Based Sharding, Geo Enhancements, Text Search

MongoDB 2.4 is out:

Highlights of MongoDB 2.4 include:

  • Hash-based Sharding
  • Capped Arrays
  • Text Search (Beta)
  • Geospatial Enhancements
  • Faster Counts
  • Working Set Analyzer
  • V8 JavaScript engine

Original title and link: MongoDB 2.4 Released: Hash-Based Sharding, Geo Enhancements, Text Search (NoSQL database©myNoSQL)


Battle-Test Your MongoDB Cluster

Kristina Chodorow1 shared a good list of tests to put a MongoDB cluster through:

Here are some exercises to battle-test your MongoDB instance before going into production. You’ll need a Database Master (aka DM) to make bad things happen to your MongoDB install and one or more players to try to fix it.

Netflix is using a series of tools that perform similar tests against their Cassandra clusters. With a small twist: they are run against the production clusters.

  1. In a recent post, Kristina Chodorow, one of the most prominent figures of the MongoDB world, has announced she has decided to become a Googler. Good luck Kristina! 

Original title and link: Battle-Test Your MongoDB Cluster (NoSQL database©myNoSQL)


MongoDB Touch Command

MongoDB 2.2 introduced thetouch command, which loads data from the data storage layer into memory. The touch command will load a collection’s documents, indexes or both into memory. This can be ideal to preheat a newly started server, in order to avoid page faults and slow performance once the server is brought into production. You can also use this when adding a new secondary to an existing replica set to ensure speedy subsequent reads.

I could see how this command could be useful for a caching system, but I haven’t seen it in any database. It’s probably a workaround for the memory mapped files mechanism used by MongoDB’s persistence.

Original title and link: MongoDB Touch Command (NoSQL database©myNoSQL)