Automatic MongoDB database designer
Latest commit e33cd9a Dec 15, 2014 @fangjian601 fangjian601 add


D4 is an automated tool for a generating distributed document database designs for applications running on MongoDB. This tool specifically targets applications running highly concurrent workloads, and thus its designs are tailored to the unique properties of large-scale, Web-based applications. It can also be used to assist in porting MySQL-based applications to MongoDB.

Using a sample workload trace from a either a document-oriented or relational database application, D4 will compute the best a database design that optimizes the throughput and latency of a document DBMS. The three design elements that D4 can select for an application are:

  • Sharding Keys
  • Indexes
  • Collection (De)normalization

For More Information:


  • python-pymongo
  • python-yaml
  • python-MySQLdb (optional)


Past Contributors


This work is supported (in part) by an Amazon AWS Research Grant. Additional assistance is also provided by 10gen, Inc.