docs.surrealdb.com icon indicating copy to clipboard operation
docs.surrealdb.com copied to clipboard

Documentation: How to start surrealdb with the SpeeDB engine

Open admtech opened this issue 2 years ago • 5 comments

Description

Thanks to SpeeDB storage engine implementation surrealdb/surrealdb#2076, surrealdb can also be started with Speed. However, there is no documentation for this.

If you start the current version 1.0 with surreal start --user root speedb://database.db the user gets the following back:

ERROR surreal::cli: There was a problem with the database: There was a problem with the underlying datastore: Cannot connect to the speedb storage engine as it is not enabled in this build of SurrealDB

So how do you start or enabled surrealdb with the speedb engine? Especially in cloud environments, Speedb is many times better than RocksDB, which is mainly designed for SSDs and high IO. Cloud environments usually have network storage.

Do I need to recompile surrealdb or copy the binary from speedb somewhere. It would be great if you could describe this in more detail somewhere. Thank you

admtech avatar Nov 03 '23 11:11 admtech

There is nothing wrong with the way you are trying to start it @admtech. As stated in the error message, it's not enabled in that binary. This means that the relevant feature (storage-speedb) wasn't enabled when building it.

rushmorem avatar Nov 03 '23 13:11 rushmorem

hey @admtech!

Yeah, for now you will need to compile Surreal yourself with speedb support.

You will need to run something like cargo build --release --feature storage-speedb, and make sure you have the speedb library installed in your system.

sgirones avatar Nov 03 '23 13:11 sgirones

Any way just to have this as a binary somewhere instead of having to build it?

jasonjurotich avatar Dec 12 '23 22:12 jasonjurotich

Can we just get a cargo installable client please? That was we could cargo install --features storage-speedb and be done with it :D

damccull avatar Apr 03 '24 07:04 damccull

Why not make speedb the default file-based storage engine considering the fact that it is an improvement over RocksDB?

nkosi23 avatar Apr 24 '24 06:04 nkosi23

We have decided to remove SpeeDB as a storage engine from SurrealDB to streamline and enhance our core functionality and performance. SurrealDB 2.0 will focus on a select group of core storage engines, including Memory, SurrealKV, RocksDB, TiKV, and FoundationDB, each offering unique capabilities.

The upcoming enhancements to RocksDB and the introduction of SurrealKV as a built-in datastore with exclusive features further reduce the need for SpeeDB. Additionally, SpeeDB, now part of Redis, lacks regular updates and isn't a primary focus as an open-source key-value store. Consequently, we have removed SpeeDB to prioritize these improvements and better serve our users.

You can read more on the following PR: https://github.com/surrealdb/surrealdb/pull/4171

dimitrianoudi avatar Jun 27 '24 13:06 dimitrianoudi

Ok, thanks for the explanation. Makes sense. I'll have to migrate one of my dbs, but luckily I don't have a bunch on speedb atm. Probably make it easier to build my app now too lol.

damccull avatar Jun 27 '24 19:06 damccull