It's been noted that Google App Engine is moving its datastore implementation from BigTable to MegaStore. What's the difference between the two?
BigTable is optimized for high volumes of data and analytics while Datastore is optimized to serve high-value transactional data to applications.
Cloud Bigtable has been battle-tested at Google for more than 10 years—it's the database driving major applications such as Google Analytics and Gmail. On the other hand, Cloud Firestore is detailed as "NoSQL database built for global apps".
Bigtable is not a relational database. It does not support SQL queries, joins, or multi-row transactions. If you need full SQL support for an online transaction processing (OLTP) system, consider Cloud Spanner or Cloud SQL.
The following general concepts apply to Bigtable schema design: Bigtable is a key/value store, not a relational store. It does not support joins, and transactions are supported only within a single row. Each table has only one index, the row key.
As this article explains, "Megastore is a transactional indexed record manager built by Google on top of BigTable".
What Megastore adds on top of BigTable, again according to the URL I gave (of course I cannot discuss anything that Google hasn't yet made public!), is stuff that might not be easy to see from an App Engine app's viewpoint, depending on what App Engine may have already added on its own on top of BigTable. E.g., Megastore adds entity groups for transactional behavior... but App Engine has had those for a while. Do you really care how App Engine internally implements, or will implement in the future, identical APIs...?
Megastore supports schemas... but who's to know whether they'll be made available to App Engine apps (so that puts with the wrong combination of types will raise exceptions instead of silently succeeding), which so far have always been schemaless except for whatever you, yourself, or Google's open-source app-level code, implemented at application level.
Now more details of Megastore have emerged, including James Hamilton's summary which links to the CIDR 2011 paper.
the existing answers have described the differences between bigtable and megastore pretty well. i'll just add one thing: app engine isn't moving from bigtable to megastore. it's been on megastore since the beginning. (ok, well, at least since very very early in development, years before it launched publicly.)
for example, see this sept 2009 app engine blog post about megastore replication.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With