Fast Updates with MongoDB (update-in-place)
One nice feature with MongoDB is that updates can happen “in place” — the database does not have to allocate and write a full new copy of the object. This can be highly performant for frequent update use cases. For example, incrementing a counter is a highly efficient operation. We need not fetch the document from the server, we can simply send an increment operation...
Webinar recording posted
The recording of the webinar on MongoDB by Dwight Merriman (10gen) & Ian White (Business Insider) is available here: http://vivu.tv/portal/archive.jsp?flow=527-472-7945&id=1256920226675
10gen is looking for a full time Java developer
10gen, which provides commercial support for MongoDB, is hiring a Java developer to work full time on the JVM languages in NYC. This job entails maintenance and improvement of the Java driver, and also working with the JVM languages like scala and clojure. If you’re interested, you can send an email to info at 10gen dot com. If you’re really interested, you should submit a patch...
A prebuilt binary for Joyent (labeled “Solaris64”) is now available on the mongodb.org downloads page. See http://www.mongodb.org/display/DOCS/Joyent for more information including an example of installation.
More than 10 Indexes now Supported
The 10 index limit per collection has been raised to 40. This is available in the latest daily build. Please consider “alpha” for now (like any daily build) but let us know how it works.
Webinar on MongoDB on Oct 30th
We’re doing a webinar on MongoDB on Oct 30, 2009 noon EST. It’ll be an overview of MongoDB & will also have Ian White from Business Insider talking about how they are using MongoDB in production: Details & register at: http://mongodb1.eventbrite.com/ (The webinar is FREE) We’ve been speaking about MongoDB at physical events like conferences and meetups. But since there’s interest in...
Databases Should be Dynamically Typed
Software developers often debate the pros and cons of static versus dynamic typing in programming languages. Yet what about databases? Of course, static typing is traditional for databases. In a relational database we usual declare our columns and the datatype of each column’s values. However, we now see in the nosql space what are known as “schemaless” databases. Technically...
Upcoming Conferences for the MongoDB Team
We try to speak about MongoDB at as many conferences and meetups as possible. If you’re interested in learning more about MongoDB or in meeting some of the people who work on it then you should try to make it out to one. Our schedule for the next couple of months is below. If you know of (or are organizing) a conference/meetup where you’d like to hear from us shoot us an email at...
Storing Large Objects and Files in MongoDB
Large objects, or “files”, are easily stored in MongoDB. It is no problem to store 100MB videos in the database. For example, MusicNation uses MongoDB to store its videos. This has a number of advantages over files stored in a file system. Unlike a file system, the database will have no problem dealing with millions of objects. Additionally, we get the power of the database...
1.0 GA Released
The MongoDB team is very happy to announce that we have released MongoDB version 1.0.0. MongoDB 1.0.0 is production ready for single master, master/slave and replica pair environments. While there are many more features that people want and that we are working on, 1.0 is very stable and the code base has been used in production for over 18 months. As usual, you can get from here:...
MongoDB is Fantastic for Logging
We’re all quite used to having log files on lots of servers, in disparate places. Wouldn’t it be nice to have centralized logs for a production system? Logs that can be queried? I would encourage everyone to consider using MongoDB for log centralization. It’s a very good fit for this problem for several reasons: MongoDB inserts can be done asynchronously. One wouldn’t...
Using MongoDB for Real-time Analytics
Some MongoDB developers use the database as a way to track real-time performance metrics for their websites (page views, uniques, etc.) Tools like Google Analytics are great but not real-time — sometimes it is useful to build a secondary system that provides basic realtime stats. Using the Mongo upsert and $inc features, we can efficiently solve the problem. When an app server renders a...
Looking for a Ruby Developer
10gen is looking for a Ruby developer to work on the ruby driver, ruby support, and be another MongoDB expert to help out with all the work going into MongoDB right now. More info here: http://www.10gen.com/jobs If you’re interested, send an email to info at 10gen dt com, or ping us on irc. 10gen is located in New York -Eliot
MongoDB 0.9.10 Released
MongoDB 0.9.9 Released
MongoDB 0.9.9 has just been released. This release is hopefully the last release before 1.0 If you are using any previous of the database, we would appreciate you testing this release in preperation for 1.0. Notable Changes: slaves allow reads by default indexes will be used with regex searches like /^abc/ shell will report getLastError build fix with multiple versions installed Downloads:...
Work full time on MongoDB : 10gen is hiring C++...
10gen, which provides commercial support for MongoDB, is hiring C++ developers to work on the project. If you are interested, we think the best way to start talking would be to pick something from Jira and just fix it as a micro project! Then get in touch on IRC or by email (dwight at 10gen dt com). 10gen is located in New York City. Thanks, Dwight M
What is the Right Data Model?
There is certainly plenty of activity in the nonrelational (“NOSQL”) db space right now. We know for these projects the data model is not relational. But what is the data model? What is the right model? There are many possibilities, the most popular of which are: Key/Value. Pure key/value stores are blobs stored by key. Tabular. Some projects use a Google BigTable-like data model...
32-bit MongoDB processes are limited to about 2 gb of data. This has come as a surprise to a lot of people who are used to not having to worry about that. The reason for this is that the MongoDB storage engine uses memory-mapped files for performance. By not supporting more than 2gb on 32-bit, we’ve been able to keep our code much simpler and cleaner. This greatly reduces the number...
Reaching into Objects
MongoDB is a JSON-style store. Just like JSON, we can nest objects within other objects, and also arrays of data within objects. This then suggests the question or issue: how does one perform a query on nested objects? Index keys in nested objects? This is very important of course. The following doc page explains the method. http://www.mongodb.org/display/DOCS/Dot+Notation
Databases and Predictability of Performance
A subject which perhaps doesn’t get enough attention is whether the performance of a database is predictable. What we are asking is: are there ever any surprises or gotchas in the time it takes for a db operation to execute? For traditional database management systems, the answer is yes. For example, statistical query optimizers can be unpredictable: if the statistics for a table change in...