You are right. I was under impression that BigTable is distributed hashtable (as MemcacheDB), but it's not.
I revisited Google IO talk on App Engine Datastore where they explicitly say it [1]. They call it sharded sorted array.
Here "sorted" is the key difference: it means you can do efficient prefix and range scans of contiguous areas in one sweep without extra disk seeks.
This wouldn't be the case for MemcacheDB even if you created some clever key naming scheme, as locality there is defined by their hash function.
That of course, being in addition to many other features that GAE Datastore has and MemcacheDB doesn't have.
I mentioned similarity based on how fundamental is the "key->value" aspect of both MemcacheDB and GAE Datastore, as opposed to traditional relational databases accessed via SQL.
I revisited Google IO talk on App Engine Datastore where they explicitly say it [1]. They call it sharded sorted array.
Here "sorted" is the key difference: it means you can do efficient prefix and range scans of contiguous areas in one sweep without extra disk seeks.
This wouldn't be the case for MemcacheDB even if you created some clever key naming scheme, as locality there is defined by their hash function.
That of course, being in addition to many other features that GAE Datastore has and MemcacheDB doesn't have.
I mentioned similarity based on how fundamental is the "key->value" aspect of both MemcacheDB and GAE Datastore, as opposed to traditional relational databases accessed via SQL.
[1] http://sites.google.com/site/io/under-the-covers-of-the-goog...