I have a small network of weak nodes, each with about 2 cores and 4 GB of RAM to spare.
Each node needs a local copy of the database, as I expect ~30K reads / sec / node (it’s okay if reads are stale).
There will be relatively few writes, and the database will probably be about 10 GB.
Is this a reasonable use-case for TiDB?
(The docs recommend much larger machines, but for a 10 GB database perhaps it’s okay?)
It depends on your workload, it is hard to say if these machines can satisfy ~30K QPS. If you don’t have much resources to run a big TiDB Cluster, I recommend you to use TiDB Cloud Serverless TiDB Cloud
1 Like
These numbers don’t make a lot of sense to me, because they’re not paired with expected usage (e.g. QPS, storage, etc).
(Surely it doesn’t take 8 cores and 16 GB just to start a TiDB process and let it idle.)
I’m trying to understand what the baseload is (cost of idling), and how that scales as you scale QPS and storage usage.
If it helps, I can get 10K QPS out of MongoDB on the same machines with the intended workload.
I’m hoping TiDB will be faster because it can use explicit schemas to optimize queries.
Also, being new and with key parts in Rust probably counts for something.
Alas, I’m on a budget and probably can’t afford to use TiDB Cloud.
Plus, I’m pretty sure I need a local replica on each worker machine so I can avoid high network costs (very read-heavy workload).
BTW, TiDB Serverless is free at beginning and pay as you go when you exceed the quota.
Whatever, if you want to deploy the small cluster youself, please use TiUP to do that. I think it deserve a try to see if tidb can meets your requirements.