On topic: While the comparison seems terrible for Timestream, as a customer who does not want to manage my databases I would love a similar GCP option, if the product had better tradeoffs. It's also interesting that Timescale attributes this AWS product to their own licensing. They had some much discussed [0] developments on that front, and if it did in fact force AWS to build their own implementation, that seems lik…
I'm not a database expert in any way, but I've had to evaluate database options for both existing and new applications, and my "methodology" is as follows:
- Understand the workload
Is the database workload read-intensive, write-intensive, or both? Does the application require strong consistency? Does it require replication? What kind of replication? Can writes be batched, or are processed ad-hoc? What kind of read operations will you do, and what is the desired response times for those operations (ex. is 2s tolerable? 500ms? 20ms?)
- Scouting
Select a set of available options to benchmark using whatever criteria you may see fit, but following the previous step constraints.
- Benchmark
Create a somewhat simple model that fits your workload and models your real case, using the language you'll be using to build your application; Create benchmark code for the most critical/complex operations; Run it at least 5 times on similar hardware of what you expect production to be (this is important; eg. storage (both memory and disk) latency varies wildly between "my laptop" and a cloud provider) and record the results; Be sure to keep an eye on memory consumption, cpu and disk usage when running the benchmarks;
- Decide :)
Usual criteria:
* Price;
* Features (of course);
* Easiness of deploy or cloud provider availablity;
* Documentation quality;
* Driver quality for your application language (it may happen you already excluded a candidate on the previous step due to this);
* Query language familiarity;
* Performance;
* Adoption (translated to: can I expect a new developer to have the basic skills on this tech?);