Integration with non-redis backend

How severe does this issue affect your experience of using Ray?

  • Low: It annoys or frustrates me for a moment.

Newbie here. I see in various places that a later version of Ray will no longer support Redis as its metadata store by default. Has this been implemented with the current latest version, or is it still pending? Ideally would like to be able to integrate with pre-existing key-value stores that are already being used in our environment (ex. memcached, Hazelcast, Geode, pre-existing Redis etc). I assume this is already documented somewhere; just need to be pointed to the right docs. Thanks in advance!

Hi, any ideas on this? Does Ray support integration with external key-value stores?

We’re working on docs explaining the status of external memory stores, and providing clearer guidance on setting up an external Redis.

A quick summary:
By default, Ray uses its own implementation for an in-memory store (essentially just a hash map).
There is support for an external Redis.
There is no support for other memory stores /yet/, but I believe there is an interface which would allow one to implement such support.

I’m going to shift the label of this question to “Ray Core” so that it gets better attention from the relevant folks.

Thanks! A few follow-up questions:

  • Interface

About the interface you mention - is this a Ray native interface? Would like to learn more about this approach.

  • Ray Object Store
    Is the Ray object store robust enough to suffice as an ML key-value store (for typical ML use cases such as a simple feature store, param server, inference scoring cache etc)? Or would the recommendation be to use a separate key value store for those use cases? I’ve played with using Actors to store state in the Ray object store, but I’m wondering about best practices & don’t know how this would scale.

Great to know that there is now support for external Redis - will look into how to integrate it. Some non-Redis key-value stores provide Redis adapters that might work here too (I would imagine), but will experiment and see.

Hi there - just wanted to circle back on this. Could anyone advise?

Hi @lany123 Object store is just a distributed memory, and you’ll lose data when the cluster is shutdown. It’s not a DB.

We do have interface here but it’s not designed well and we might refactor this part later.

Besides the config api is not designed well, like how to pass password.

So if you want to integrate a backend like mysql, you probably need to implement it based on the store client api and just use os env to pass the config.