What is M/DB?

M/DB is a Free Open Source "plug-compatible" alternative to Amazon's SimpleDB database. Outwardly, M/DB behaves identically to SimpleDB, being accessed through the same REST APIs and returning identical responses. The only difference in use is that REST requests are directed at a different domain name or IP address. Note that M/DB isn't a mock service: it's a true database.

M/DB is compliant with Amazon Simple DB version 2009-04-15.

*** Latest News! node-mdb: Node.js-based rewrite of M/DB now available for testing ***

M/DB is being rewritten in Javascript for use with Node.js. It continues to use the original GT.M database and uses the original data model, so is 100% compatible with the original version. The new version is being named node-mdb

Click here for further details on the node-mdb project which is now available for evaluation.

Initial impressions are that this new Node.js version is significantly faster than the original version.

*** M/DB brings SimpleDB emulation to the Ubuntu Enterprise Cloud ***

Canonical have made an M/DB Appliance available in their Ubuntu Enterprise Cloud (UEC) Image Store, and, as a result, have extended the range of Amazon Web Services APIs that are emulated in the UEC to include SimpleDB. The M/DB Appliance was the first non-Canonical image to be included in the UEC Image Store: another first for M/Gateway!

Why would I use M/DB?

M/DB will be of interest to anyone who is considering or already using SimpleDB, or is interested in using a simple, scalable database that avoids all the complexities of a relational database.

There are some interesting differences between M/DB and SimpleDB, as indicated in the table below:

Amazon SimpleDB M/DB
Pay as you go Free
Only available through Amazon Web Services Can be used as a local database, hosted within any cloud provider's service, including Amazon's EC2, or in a Private Cloud (eg Ubuntu Enterprise Cloud)
1 kb maximum attribute size Each attribute can be up to 32 kb
Maximum 10Gb per domain Domain size limited only by your available disk storage
Maximum 250 million attribute name/value pairs per domain No limit imposed, limited only by your available disk storage
Maximum of 100 domains per account Unlimited domains
Maximum of 256 attribute name/value pairs per item Unlimited name/value pairs per item
Maximum query execution time: 5 seconds No limit imposed
No datatyping: text only. Integers and reals must be represented using leading zeros to ensure proper query comparisons Dynamic datatyping. Integers and reals automatically collated and correctly recognised when queries are run
Very slow write performance, but this is due to multiple copies being made across multiple nodes for resilience and performance reasons Very high-speed write performance, ideal for a locally hosted database. Replication is possible via the core DBMS technology
Massively scalable and fast querying Highly scalable and fast querying
Zero maintenance Very low maintenance
XML requests/responses SimpleDB-compliant XML requests/responses, but also optional JSON interface

What are typical uses for M/DB?

M/DB can be used for a variety of reasons including the following:

Are any SimpleDB Explorer tools compatible with M/DB?


What database technology has been used for M/DB?

M/DB has been built on top of the free Open Source GT.M schemaless, hierarchical database engine. GT.M is a tried and tested technology that delivers very high performance and scalability. See this paper which summarises why GT.M's Global storage engine made it the perfect technology for implementing M/DB.

How much does M/DB cost?

M/DB is a Free Open Source product, licensed under the GNU Affero General Public License Version 3.

Donations to support our ongoing development of M/DB are always appreciated. Note: all donations are treated as part of M/Gateway Development Ltd's income.

Is there an official M/DB forum or discussion group?

Yes. We've set up a Google Group to provide an online community forum for M/DB users, for news, self-help support, tips, examples etc. Feel free to join by clicking here.

Are there any video tutorials on getting started with M/DB?