It uses Paxos as the consensus algorithm, along with internal systems like the TrueTime API to enable us synchronously replicate across multiple data centers.
1,102 karma · joined November 15, 2010
I do database stuff. Cloud@Neo4j. Ex-Google databases (Datastore, Firestore, Bigtable, App Engine Search)
https://twitter.com/daniswrong https://stackoverflow.com/users/153407/dan-mcgrath
It uses Paxos as the consensus algorithm, along with internal systems like the TrueTime API to enable us synchronously replicate across multiple data centers.
The biggest difference is the integration with Firebase, so you have access to Mobile (iOS/Android) and Web SDKs along with a native offline mode. This comes along with the real-time synchronization feature that makes serverless app development a breeze.
Cloud Datastore is great for large scale server-side development where you manage your own connection to your app, such as running your own website on App Engine or via Compute/Container Engine.
* I've reviewed ~400 databases over the last month and it's surprising (?) how many of them are all the best of every use case and are the [fastest|first|only|best]
You can use it with in-memory (no persistence, .MEMORY), IndexDB (local persistence, .INDEX_DB), or Firebase Realtime Database (cloud persistence, .FIREBASE).
As an example, if I get food out in the kitchen while it is watching in the mirror, it comes running to check it out. Non food things - just keeps on watching.
I think the big vs small comparison is flawed. I've seen some atrocious code produced by small/medium sized outfits. My fondest memory including auditing code from a 3 person outfit who's code quite literally setup an RPC on the server that executed any string it was sent, verbatim, against a database that handled money.
You'll probably find there are a lot of distributed database geeks at Google, me included, so we all get attracted to exciting posts on new distributed systems.
Reads: >1.1M entities/second Write: >380K entities/second Delete: >190K/second Storage: 100TB
And that's if you don't use any of the nearly free optimizations like Projection queries & keys-only queries, which any large scale customer does.
That's not pre-provisioned usage, it's actual pay-as-you-go usage - so if you have no traffic, you have no costs (except for what's already stored). It's been that way for 8 years too.
[1]: https://cloud.google.com/products/calculator/#id=e21b61d5-4a...
(PM for Cloud Datastore - if you'll looking at 1M+ QPS workloads feel free to message me)
I happy to hear you gave it a shot and I've heard several times about it being used successfully from Lambda (hopefully people can look at GCP's Cloud Functions now, but I'm biased). Sorry to hear it didn't work out.
Search is something we're looking at, and we have a high quality bar on reliability and scalability aspects as a service that handles 10's of trillions of requests per month.
I'll also pass on your feedback about the JavaScript SDK to its team.
In this case Megastore provides the underly multi-region/datacenter K-V replication services.
All the database features like secondary & composite indexes, query language, multi-tenancy support, PAYG model, etc, etc, are built in the Cloud Datastore layer.
We also have multi-document transactions, self-joins, active-active multi-region replication by default, secondary indexes, composite indexes, a SQL-like query language, PAYG model with no capacity planning, etc, so I think it's a bit disingenuous to say it's "similar to datastore, but with full-blown database features".
Otherwise, congrats on your launch!
If this doesn't clearly show how crazy this growth was compared to what anyone was expecting, I'm not sure we're operating in the same plane.
Given no app had ever done this in history over the first few weeks, yet alone on launch day with no marketing, I doubt it.