surrealdb/surrealkv

Minimum & Recommended Settings

itsezc opened this issue · 1 comments

itsezc commented

Here's a list of minimum / recommend settings from current Surreal backends:

Typical deployments of TiKV include a number of components:

3+ TiKV nodes
3+ Placement Driver (PD) nodes
1 Monitoring node
1 or more client application or query layer
System requirements

The minimum specifications for testing or developing TiKV or PD are:

2+ core
8+ GB RAM
An SSD

Production Specifications

The suggested PD specifications for production are:

3+ nodes
4+ cores
8+ GB RAM, with no swap space.
200+ GB Optane, NVMe, or SSD drive
10 Gigabit ethernet (2x preferred)
A Linux Operating System (PD is most widely tested on CentOS 7).
The suggested TiKV specifications for production are:

3+ nodes
16+ cores
32+ GB RAM, with no swap space.
200+ GB Optane, NVMe, or SSD drive (Under 1.5 TB capacity is ideal in our tests)
10 Gigabit ethernet (2x preferred)
A Linux Operating System (TiKV is most widely tested on CentOS 7).

FoundationDB:

FoundationDB minimum specs for production are:

RHEL or CentOS 6 or 7
Ubuntu 12.04 or later
4 GB of RAM per CPU process
Storage as required (more on that below)


All things considered what would the minimum and recommended requirements for SurrealKV look like, even if its just approximate, I believe the requirements above are pretty outrageous considering alternatives such as Postgres and MySQL can run on far less resources out of the box.

Hi @itsezc

As mentioned in the previous discussion, the scope of this repository revolves around embedded SurrealKV only.

We will keep you updated on design discussions regarding distributed SurrealKV on Discord. We have a specific channel for discussions around surrealkv (and distributed surrealkv).

It's worth noting that Postgres and MySQL are not distributed databases out of the box. The specifications you provided are for running a distributed SurrealDB setup. If you wish to make a comparison with Postgres or MySQL, running SurrealDB using RocksDB would be more suitable.

In systems like TiKV and FDB, the three-node minimum requirement ensures a majority for consensus and fault tolerance. If concerns about node size (memory and disk) arise, we can discuss them further on Discord in the context of distributed SurrealKV.