mongodb: All content on NoSQL databases and projects about mongodb, featuring the best daily NoSQL articles, news, and links on mongodb
Thursday, 2 September 2010
MongoDB safe and fsync Explained ☞
Kristina Chodorow explains the MongoDB safe and fsync options:
safe and fsync are not the same, here’s a rundown of the options:
safe=> false: do not wait for a db responsesafe=> true: wait for a db responsesafe=> num: wait for that many servers to have the write before returning
fsync=> true: fsync the write to disk before returning.fsync=> true impliessafe=>true, but not visa versa.- If
fsync=>false andsafe=>true and the write could be in successfully applied to a mmapped file but not yet written to disk.
Related to MongoDB durability.
Original title and link for this post: MongoDB safe and fsync Explained (published on the NoSQL blog: myNoSQL)
CouchDB and MongoDB: Querying ☞
Andrew Glover:
Both MongoDB and CouchDB are document-oriented datastores. They both work with JSON documents. They both are usually thrown into the NoSQL bucket. They’re both hip. But that’s where the similarities, for the most part, stop.
When it comes to queries, both couldn’t be any more different.
They differ even in the implementation and behavior of MapReduce.
Original title and link for this post: CouchDB and MongoDB: Quering (published on the NoSQL blog: myNoSQL)
Wednesday, 1 September 2010
MongoDB: Stable MongoDB 1.6.2 Released, Recommended Upgrade
New stable version from MongoDB fixing a couple of bugs:
- database isolation issue with concurrency and deletion of objects http://jira.mongodb.org/browse/SERVER-1710
- concurrency issue when doing in-memory sort
- current operation tracking could cause segfault while being accessed
- replica set initialization segfault fixed
- map reduce sort option working again
- administrative enhancements for using replica sets as shards
Full announcement ☞ here.
Original title and link for this post: MongoDB: Stable 1.6.2 Released, Recommended Upgrade (published on the NoSQL blog: myNoSQL)
MongoDB or Hadoop? ☞
Posted on the MongoDB mailing list:
I have about 500M log file entries each representing an “ad impression” (we are an advertising company). Each “hit” has about 50 attributes to it (example: Country, State, City, Adsize, Browser, OS, etc) .. I want to load all 500M into some form of database and then run queries against this set.
As you could expect MongoDB is considered as a possibility. But I’d call that a biased vendor advise. I’ll be blunt: invest in your future by using Hadoop and Pig. Hive may fit too.
Original title and link for this post: MongoDB or Hadoop? (published on the NoSQL blog: myNoSQL)
MongoVUE: What's on the Roadmap? ☞
Ishan Kumar, the creator of MongoVUE, a MongoDB GUI for Windows, interviewed about the future of the tool:
(Short term):
- Inline editing/updating
- GridFS support
(Long term):
- Support for Linux through Mono.
- An interactive shell like the one that comes with MongoDB.
- Data Visualizations – ability to fetch data not just as a series of documents but as interactive charts and models. Some preliminary work in this area will be available in the next release 0.3.1.
- Data Modeling and Schema design. Although MongoDB is schemaless, there is much value in having a documented schema model for collaboration and communication in team members.
Sounds like a lot of work, but definitely exciting features for MongoVUE and MongoDB users.
Original title and link for this post: MongoVUE: What’s on the Roadmap? (published on the NoSQL blog: myNoSQL)
MongoODM: A new Mongo ODM for Ruby
There have been only a few days since I’ve written that (maybe) there are already too may mapping tools for document databases. Then, we’ve heard about Mongomatic: a minimal Ruby mapper for MongoDB. And now it is MongoODM, yet another Ruby mapper for MongoDB that can be found on ☞ GitHub.
Basically, I’ve tried to create an ODM that uses the native query syntax of the Ruby driver, but that was:
- Fully compatible with Rails 3
- Use the Mongo ruby driver syntax over a new syntax (for queries, cursors, indexes management…)
- Allow lazy loading of collections and queries nesting (concatenation of ‘find’ calls) to emulate ActiveRecord 3
- No association methods (for now): Just declare your own methods on models to fetch associated items
- Give support for dirty objects, validations, etc. through ActiveModel 3
- Automanage type conversions and default values
- Keep it as simple as possible
I made sure to ask the author, Carlos Paramio, why a new mapping tool for MongoDB? and what is it different in MongoODM compared to those other 3 MongoDB mapping libraries?
Carlos Paramio: The main reason for me creating this new ODM is that I felt the Mongo Ruby driver and its syntax (which is pretty similar to the native MongoDB syntax) is much more proper and richer than the syntax similar to the popular ActiveRecord ORM for Ruby — which is particularly designed for relational databases. Even if MongoMapper and MongoId are awesome projects, they both share this particular ActiveRecord-like syntax, which sometimes seems a bit forced and it generates weird bugs and unexpected behavior.
I preferred to use the official syntax and instead of writing tons of new code to bring all the other interesting features that you would expect from an Object Mapper (as an extra to the database driver), I used some stable and widely used Ruby libraries to provide: Validations, type conversions, dirty objects, nesting conditions, Rails 3 compatibility, etc.
There is a similar ODM by Ben Myles, who shares this same opinion about how a MongoDB ODM should work. It’s called MongoMatic, and it’s really cool. I think we started to code our ODMs at approximately same time, because we both have published stable versions of them recently (I’m particularly using MongoODM for my own project). MongoMatic doesn’t support some features like dirty objects, nesting conditions or Rails 3 compatibility yet, but it seems to be interesting to follow.
I think some people was expecting a solution like this. Like Kyle Banker has said (and I quote) recently in response to the MongoODM announcement at the mongodb-user mailing list: “Awesome. I love the trend of moving toward a more native MongoDB query syntax. Great to see the surge in new Ruby ODMs, too.”
Now the Ruby world of MongoDB has 4 mapping libraries and it is only the time and users that will decide if all of them are needed.
Original title and link for this post: MongoODM: A new Mongo ODM for Ruby (published on the NoSQL blog: myNoSQL)
Monday, 30 August 2010
MongoDB and SQL Server Basic Speed Tests ☞
Having used MongoDb almost exclusively with the NoRM C# driver for several months now, this is something that I have always wanted to do, just to satisfy my own curiosity.
Unfortunately “basic” is the wrong word. Just another useless benchmark.
Original title and link for this post: MongoDB and SQL Server Basic Speed Tests (published on the NoSQL blog: myNoSQL)
Saturday, 28 August 2010
CouchDB Users: The Large Hadron Collider ☞
Couchio announced another user[1]
of CouchDB: the European Organization for Nuclear Research (CERN) — responsible for the Large Hadron Collider — in the Compact Muon Solenoid experiment:
The DMWM team has issues that don’t fit well into standard relational databases or files in a filesystem. Being able to easily access and consolidate data from distributed locations with minimal latency is required routinely. Typically, external access to a site is limited, so incoming connections to a database aren’t possible. The team often doesn’t have clear requirements to address, which means metadata is either not collected or not effectively used. Generally, the team members must prototype tools quickly and be able to demonstrate that they are ready to go into production.
In case you missed it, back in June, the same project ☞ announced the usage of MongoDB. So, wouldn’t it be interesting to hear why MongoDB was replaced by CouchDB? (in case that’s true and the two are not in fact used in parallel).
Update: according to @LusciousPear the two projects are used side-by-side.
- Couchio people call these case studies, but I’d say they are only success stories or “who’s using” lists. A case study usually answers the questions: what, why, how, with a bonus part on lessons learned. Like Netvibes using Tokyo Tyrant or Adobe using HBase or Twitter looking into using Cassandra. (↩)
Original title and link for this post: CouchDB Users: The Large Hadron Collider (published on the NoSQL blog: myNoSQL)
Friday, 27 August 2010
MongoDB is Web Scale
Too funny not to watch it:
Original title and link for this post: MongoDB is Web Scale (published on the NoSQL blog: myNoSQL)
Thursday, 26 August 2010
MongoDB at SourceForge ☞
Mark Ramm talks on why they chose MongoDB for SourceForge, how it compared to other possible solutions, the problems encountered, how they fixed them, overall lessons learned, and answering questions
From the same InfoQ series:
- CouchDB at BBC presented by Enda Farrell
- Justin Sheehy interviewed about Building Blocks of Dynamo-like Distributed Systems
- Emil Eifrem about NoSQL and the Benefits of Graph Databases
Original title and link for this post: MongoDB at SourceForge (published on the NoSQL blog: myNoSQL)
History of MongoDB ☞
Kristina Chodorow:
GUIs: We decided early on not to create a GUI for MongoDB and let the community sort one out, which has had mixed consequences: there are now over a dozen to choose from! (We’re still hoping it’ll settle down.)
[1]
This doesn’t apply to MongoDB consulting, but I’m not sure about hosting where 10gen is not yet present.
Original title and link for this post: History of MongoDB (published on the NoSQL blog: myNoSQL)
MongoDB: Twitter Stream as Input Data ☞
A bit old, but cool way to get test data into MongoDB:
curl http://stream.twitter.com/1/statuses/sample.json -u<user>:<pass> | mongoimport -c twitter_live
Original title and link for this post: MongoDB: Twitter Stream as Input Data (published on the NoSQL blog: myNoSQL)

