Writing MongoDB: The Definitive Guide

MongoDB: The Definitive Guide is now available in bookstores everywhere! (Or at least on Amazon.) Please pick up a copy! Some interesting things I learned about the process of publishing: There are professional indexers who write the index. This amazes me, because we had to proofread our index and I’ve never been so bored inContinue reading “Writing MongoDB: The Definitive Guide”

Choose your own adventure: MongoDB crash recovery edition

Suppose your application is happily talking to MongoDB and your laptop battery runs out. Or your server bursts into flame. Or velociraptors attack your data center. What now? To bring your server back up, read through the text until you get to a bold question. Click on the answer that best matches your situation toContinue reading “Choose your own adventure: MongoDB crash recovery edition”

Oh, the Mistakes I’ve Seen

I’ll be giving an O’Reilly webcast, Scaling with MongoDB, on Friday (9/17). Please sign up if you’re interested in learning some more advanced optimization than what this post gets into. This webcast is, in part, to pimp MongoDB: The Definitive Guide, which will be coming out next week! These are a few basic tips onContinue reading “Oh, the Mistakes I’ve Seen”

A Quick Intro to mongosniff

Writing an application on top of a framework on top of a driver on top of the database is a bit like playing telephone: you say “insert foo” and the database says “purple monkey dishwasher.” mongosniff lets you see exactly what the database is hearing and saying. It comes with the binary distribution, so ifContinue reading “A Quick Intro to mongosniff”

Return of the Mongo Mailbag

On the mongodb-user mailing list last week, someone asked (basically): I have 4 servers and I want two shards. How do I set it up? A lot of people have been asking questions about configuring replica sets and sharding, so here’s how to do it in nitty-gritty detail. The Architecture Prerequisites: if you aren’t tooContinue reading “Return of the Mongo Mailbag”

History of MongoDB

At LinuxCon, a guy took a look at me and said, “So, MongoDB was developed by college students, huh?” No, it was not. I couldn’t distribute my way out of a paper bag, which is why I’m not designing the database. A lot of people have been curious about where MongoDB came from, so hereContinue reading “History of MongoDB”

If it quacks like a RDBMS…

MongoDB feels a lot like a relational database: you can think of documents as rows, do ad hoc queries, and create indexes on fields. There are, however, a ton of differences due to the data model, scalability considerations, and MongoDB’s youth. This can lead to some not-so-pleasant surprises for users. We (the developers) try toContinue reading “If it quacks like a RDBMS…”

Sharding and Replica Sets Illustrated

This post assumes you know what replica sets and sharding are. Step 1: Don’t use sharding Seriously. Almost no one needs it. If you were at the point where you needed to partition your MySQL database, you’ve probably got a long ways to go before you’ll need to partition MongoDB (we scoff at billions ofContinue reading “Sharding and Replica Sets Illustrated”

Part 3: Replica Sets in the Wild

This post assumes that you know what replica sets are and some of the basic syntax. In part 1, we set up a replica set from scratch, but real life is messier: you might want to migrate dev servers into production, add new slaves, prioritize servers, change things on the fly… that’s what this postContinue reading “Part 3: Replica Sets in the Wild”