Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How is MegaStore different from BigTable?

It's been noted that Google App Engine is moving its datastore implementation from BigTable to MegaStore. What's the difference between the two?

like image 972
jblocksom Avatar asked Oct 27 '09 02:10

jblocksom


People also ask

What is the difference between Datastore and Bigtable?

BigTable is optimized for high volumes of data and analytics while Datastore is optimized to serve high-value transactional data to applications.

What is the difference between Bigtable and firestore?

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".

What is Bigtable not good for?

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.

Is Bigtable key value store?

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.


3 Answers

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.

like image 192
Alex Martelli Avatar answered Oct 14 '22 14:10

Alex Martelli


Now more details of Megastore have emerged, including James Hamilton's summary which links to the CIDR 2011 paper.

like image 2
Paul Avatar answered Oct 14 '22 13:10

Paul


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.

like image 2
ryan Avatar answered Oct 14 '22 14:10

ryan