Charity Majors

MongoDB + RocksDB at Parse

If you've been paying attention to the MongoDB world lately, then you know that exciting things are afoot. The 3.0 release introduces a modular storage engine API, allowing third party engines like RocksDB, TokuDB and WiredTiger to integrate seamlessly with the MongoDB data interface. The RocksDB engine developed by Facebook engineers is one of the...

Smart Indexing at Parse

We love running databases at Parse! We also believe that mobile app developers shouldn't have to be DBAs to build beautiful, performant apps. No matter what your data model looks like, one of the most important things to get right is your indexes. If your data is not indexed at all, every query will have...

MongoDB 2.6 Production Release Highlights

The Parse platform relies heavily on MongoDB. We use MongoDB for a variety of workloads, such as routing and storing application data, monitoring, real-time API request performance analysis, and billing and backend platform analytics. We love the flexibility and richness of the feature set that MongoDB provides, as well as the rock-solid high availability and...

MongoNYC and Masters Summit Recap

As many of you may already know, the Parse backend makes extensive use of a nonrelational document database called MongoDB. On June 20-21 I was thrilled to attend MongoDB Days in NYC, as well as my first MongoDB Masters' summit. The masters' summit was phenomenal. The event drew 20 or 30 of the world's most...

Summary of the June 11th Service Disruption

We would like to share some information about the service disruption on Tuesday, June 11th. Around 8:00 A.M. PDT, one of our database clusters triggered an indexing bug in the underlying database layer. This data was replicated across four different machines; however, the bug triggered on three of the machines simultaneously. Service was unaffected at...

Summary of the May 23rd Parse Service Disruption

We would like to share some more details about the service disruption we experienced on Thursday, May 23rd, and the steps we are taking to mitigate this sort of issue in the future. At around 4:46 P.M. PDT we experienced a surge of elevated error rates. We tracked this down to an underlying hardware event...

Summary of the March 21st Parse Service Disruption

We would like to share more information about the service disruption on Thursday, March 21st, and the steps we are taking to prevent this sort of issue from happening again. We take reliability for our customers very seriously, and are always working to improve stability and uptime. The outage began at 1:22 P.M. PDT, when...

Techniques for Warming Up a MongoDB Secondary

At Parse we make extensive use of MongoDB replica sets. This is a configuration where you have one primary node and two or more secondary nodes, which can optionally accept read queries, run snapshots and backups, compaction scripts, and so forth.   If you are running replica sets, you will occasionally need to elect a...

Summary of the January 22nd Parse Service Disruption

We would like to share more details about the nature of the events during the January 22nd service disruption. We are working hard to improve reliability and would like to relay information about the nature of the service disruption, our efforts to restore functionality, and the steps we are taking to prevent this sort of...