Archive | general RSS feed for this section

MongoLab now manages over 100,000 databases! (102,280 to be exact)

We’re proud to announce that MongoLab is now powering over 100,000 cloud MongoDB databases in 23 datacenters worldwide! Continue Reading →

Finding duplicate keys with MongoDB’s aggregation framework

Quite frequently our users want to create a unique index on a data set but encounter some form of the following error because of duplicate key value(s):

E11000 duplicate key error index: db.collection.$field_1_field2_1  dup key: { : 1.0 : 1.0 }

While MongoDB supports an option to drop duplicates, dropDups, during index builds, this option forces the creation of a unique index by way of deleting data. If you use the dropDups option, MongoDB will create an index on the first occurrence of a value for a given key and then  delete all subsequent values. While this behavior may be acceptable in some cases, it’s important to be cautious whenever you are deleting data. Continue Reading →

Future of MongoDB: Fireside chat with MongoDB CTO Eliot Horowitz

Last night I attended a Meetup at MongoDB Inc.’s new Palo Alto office to hear MongoDB’s CTO, Eliot Horowitz, speak about the product roadmap. With a new production release right around the corner and MongoDB World in the not-so-distant future, the buzz and excitement around all things MongoDB is high. For those who were not able to attend, we’re going to recap all the major points Eliot made.

Continue Reading →

{ "comments": 3 }

Managing disk space in MongoDB

In our previous post on MongoDB storage structure and dbStats metrics, we covered how MongoDB stores data and the differences between the dataSize, storageSize and fileSize metrics. We can now apply this knowledge to evaluate strategies for re-using MongoDB disk space.

When documents or collections are deleted, empty record blocks within data files arise. MongoDB attempts to reuse this space when possible, but it will never return this space to the file system. This behavior explains why fileSize never decreases despite deletes on a database.

If your app frequently deletes or if your fileSize is significantly larger than the size of your data plus indexes, you can use one of the methods below reclaim free space. Continue Reading →

{ "comments": 3 }

Tuning MongoDB Performance with MMS

At MongoLab we manage thousands of MongoDB clusters and regularly help customers optimize system performance. Some of the best tools available for gaining insight into our MongoDB deployments are the monitoring features of MongoDB Management Service (MMS). MMS allows us to quickly determine the health of a MongoDB system and identify the root cause of performance issues. This post covers our general approach to using MMS and MongoDB log files and provides techniques to help you optimize your own MongoDB deployment, whether you’re in the cloud or on your own hardware.

First, we will define the key metrics that we use to guide any performance investigation. Then we will go through the various combinations of metric values, discuss what they mean, and explore how to address the problems they indicate.

Continue Reading →

{ "comments": 2 }

MongoLab Now Supports Two-Factor Authentication

(Updated: 2014-01-08 Two-factor authentication is now GA)

Here at MongoLab, security is one of our foremost concerns.  Part of our stewardship of our users’ data, in addition to keeping it accessible and intact, is doing our best to secure it against unauthorized access. Today, as part of that effort, we are excited to announce our adoption of two-factor authentication (“2FA”) for MongoLab’s web-based management portal.

If you keep tabs on the glamorous InfoSec scene you probably already know what 2FA is and exactly why you should care. If that’s you, feel free to skip on down to the punchline in the last paragraph. Otherwise, bear with me and I’ll try to explain why an extra screen in your MongoLab login sequence might be a Very Good Thing indeed.

Continue Reading →

{ "comments": 2 }

Deep Dive into Connection Pooling

As your application grows in functionality and/or usage, managing resources becomes increasingly important. Failure to properly utilize connection pooling is one major “gotcha” that we’ve seen greatly impact MongoDB performance and trip up developers of all levels.

Connection pools

Creating new authenticated connections to the database is expensive. So, instead of creating and destroying connections for each request to the database, you want to re-use existing connections as much as possible. This is where connection pooling comes in.

A Connection Pool is a cache of database connections maintained by your driver so that connections can be re-used when new connections to the database are required. When properly used, connection pools allow you to minimize the frequency and number of new connections to your database.

Continue Reading →

{ "comments": 8 }

Round Two: Node Knockout 2013!

Screen Shot 2013-10-30 at 11.28.16 AM

Hey Node hackers!

Given last year’s tremendous turnout and success, MongoLab is very happy to sponsor Node Knockout (Nov 8-10) once again. If you’re wondering what the buzz is about, Node Knockout is a 48-hour hackathon featuring Node.js. It’s an online virtual competition with contestants worldwide. The competition kicks off at 12:00 AM / 00:00 UTC on November 9, 2013 and ends at 12:00 AM / 00:00 UTC on November 11, 2013. There are still a few spots open on some teams, so reach out to our friends organizing the event if you’re interested!

MongoLab will be offering both service and prize sponsorships for participating teams. This means that during the competition your team can sign up for a free 500MB Joyent-hosted MongoDB. We’ve partnered with Joyent and Nodejitsu to bring you the lowest latency possible between your knockout app and MongoDB.

Continue Reading →