Table storage is the main storage function of Windows Azure, designed to scale ( 100TB 200TB 500 TB per account), durable (triple replicated in the data center, optionally geo-replicated to another data center) and schematically (each row can contain any properties, which you want). The line is located with the section key + line key, providing a very fast search. All access to the table storage is through a well-defined REST API that can be used in any language (with an SDK built on top of the REST API already installed for .NET, PHP, Java, Python and Ruby).
MongoDB is a document-oriented database. To run it in Azure, you need to install MongoDB as a web / worker or virtual machine, point to a cloud drive (thus the drive letter) or a mapped drive (for Windows / Linux Virtual Machines), it is not necessary to enable logging (which I would recommend), and possibly define an external endpoint for your use (or access it through a virtual network). By the way, the cloud disk / attached disk is actually stored in Azure Blob, which gives you the same durability and geo-replication as Azure Tables.
When comparing the two, remember that table storage is storage as a service: you just go to the well-known REST endpoint. With MongoDB, you are responsible for maintaining the database (for example, whenever MongoDB Inc (previously 10gen) pops a new version of MongoDB, you need to upgrade your server accordingly).
As for the alpha version of MongoDB Inc, which jtoberon points to: if you look carefully at it, you will see a few key points:
- Customization is done for a standalone mongodb instance without replica sets or skulls. Regarding replica sets, you still get several advantages using the standalone version because of how the Blob repository works.
- To ensure high availability, you can run multiple instances. In this case, only one instance maintains the database, and the other is the “warm standby”, which starts the mongod process as soon as another instance fails (to restart maintenance, hardware failure, etc.).
While the 10gen Windows Azure shell is still considered alpha, mongod.exe is not. You can run mongod exe in the same way that you run any other Windows exe file. This is just the control code around the launch, and what the alpa implementation demonstrates.
EDIT 2011-12-8: This is no longer in alpha state. You can download the latest MongoDB + Windows Azure project here , which provides replica set support.
For performance, I think you will need to benchmark. Having said that, consider the following:
- When accessing a table storage or MongoDB, say a web role, you still access the Windows Azure storage system.
- MongoDB uses a lot of memory for its own cache. For this reason, many high-scale MongoDB systems are deployed for larger instance sizes. You will not have the same memory size to access the table storage.
EDIT April 7, 2015 If you want to use the underlying database as a service, Azure now offers DocumentDB.