Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[Remote State] Create a common interface for reader/writer in PersistedClusterStateService and RemoteClusterStateService #9634

Open
soosinha opened this issue Aug 30, 2023 · 1 comment
Labels
Cluster Manager enhancement Enhancement or improvement to existing feature or request

Comments

@soosinha
Copy link
Member

Is your feature request related to a problem? Please describe.
PersistedClusterStateService contains method to read and write cluster state to Lucene. RemoteClusterStateService contains method to read and write cluster state to remote blob store. We should refactor these to have a common read/write interface so that it will be easier to switch from local store to remote store in the future.

@soosinha soosinha added enhancement Enhancement or improvement to existing feature or request untriaged labels Aug 30, 2023
@msfroh
Copy link
Collaborator

msfroh commented Aug 30, 2023

I was discussing something along these lines with @owaiskazi19 a couple of days ago.

Specifically, we were talking about storing config in indexes (like many of our plugins do) versus storing config in cluster state (as search + ingest pipelines do).

In my opinion, we could do better than treating this a cluster state problem and instead think of it as a "config store" problem, with a config store interface. Cluster state is one such config store (managed by cluster managers and replicated to all nodes). An index (either managed by the data nodes or in a remote store) could be another config store. Those would be two implementations that would make the most sense to ship with the OpenSearch min distribution. (At that point, plugins that move their config to the new interface could offer users the choice of storing config in an index or cluster state.)

Other config store implementations could be provided via plugins: Apache Cassandra, Zookeeper, DynamoDB, files on an NFS-mount, etc. All could provide trade-offs in terms of update propagation latency, setup / maintenance cost, scalability, etc.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Cluster Manager enhancement Enhancement or improvement to existing feature or request
Projects
Status: 🆕 New
Development

No branches or pull requests

4 participants