Support KeyDB #126
Labels
area: orchestrator
Issues related to the Ochestrator API, launch, and runtime
area: third-party
Issues related to Issues related to dependencies and third-part and third-party package integrations
type: feature
Issues that include feature request or feature idea
Description
KeyDB is a multi-threaded fork of Redis that we've provably seen to have better overall QPS and latency compared to vanilla Redis. With the introduction of configurable builds in #122 we should easily be able to support KeyDB.
Justification
Users looking to get maximum performance in terms of throughput should use and benefit from using KeyDB as the orchestrator backend. Since KeyDB is fully compatible with RedisAI, all the SmartRedis commands should work.
Implementation Strategy
Users should be able to switch between redis and keydb in the cli build of the dependency chain. They should also be able to specify this in the versioner (
smartsim/_core/_install
).There are three places that need to be added to to support keydb directly.
Versioner
Versioner lists out the versions for each of the third-party dependencies. Here users should be able to use env vars to change the build to a KeyDB branch.
This shouldn't be changed but we should be sure this route works.
builder.py
The
RedisBuilder
classbuild_from_git
method needs to be changed to be able to move the binaries for KeyDB instead of Redis below. this should use glob for anything ending inserver
orcli
build.py
So in addition to the env var option, the CLI should have an option to build KeyDB in the
build.py
module which governs thesmart build
commandThe change should add a
--keydb
flag as followsOpen Design Questions
orchestrator
class?The text was updated successfully, but these errors were encountered: