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.
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.
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!
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:
|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|
M/DB can be used for a variety of reasons including the following:
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.
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.
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.