Automatic MongoDB database designer
Clone or download
Latest commit e33cd9a Dec 15, 2014
Type Name Latest commit message Commit time
Failed to load latest commit information.
exps resetting databases Dec 11, 2014
libs Changed the sqlparse lib to version 0.1.11 Mar 18, 2014
src update predicates field in query Nov 21, 2014
tests change tests for new commit Nov 21, 2014
.gitignore ignore log files Mar 12, 2014 Make sure that we always use a random salt value if the user doesn't … Nov 8, 2012 add Dec 16, 2014


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.