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

[Epic] Dashboards Metadata Storage Decoupling #1441

Open
boktorbb opened this issue Apr 11, 2022 · 8 comments · Fixed by #4696, #3954 or #4149
Open

[Epic] Dashboards Metadata Storage Decoupling #1441

boktorbb opened this issue Apr 11, 2022 · 8 comments · Fixed by #4696, #3954 or #4149
Assignees
Labels
breaking enhancement New feature or request

Comments

@boktorbb
Copy link
Contributor

boktorbb commented Apr 11, 2022

Currently, Dashboards stores its metadata configuration inside OpenSearch index called .opensearch_dashboards. This approach is by design for Dashboards and is biased towards a product decision by the upstream which works out of the box for customers but it introduces challenges while operating at scale and providing high availability for Dashboards.

Dashboards depends on OpenSearch cluster’s availability and other cluster parameters such as cluster health, state, and versions because this metadata, which saves OSD configuration, and visualization metadata, is stored in the index.

The goal is to decouple this metadata from the .opensearch_dashboards index and OpenSearch entirely. This is a precursor for allowing multiple data sources to be used for Dashboards.

@boktorbb boktorbb added enhancement New feature or request breaking labels Apr 11, 2022
@boktorbb boktorbb self-assigned this Apr 11, 2022
@ananzh
Copy link
Member

ananzh commented Apr 12, 2022

Could you specify a bit 1) what are the Metadata 2) what they are used for 3) why we need to decouple? Thanks

@boktorbb
Copy link
Contributor Author

Could you specify a bit 1) what are the Metadata 2) what they are used for 3) why we need to decouple? Thanks

Sure. I've updated the description of the issue for more context.

@seraphjiang
Copy link
Member

Add one few requests, be able to allow admin who setup OSD to pick up whichever storage they want.

Save meta to opensearch is still a option

Provide tool/feature to migrate meta data from one storage to another.

A few thinking but nice to have, not only decouple the storage but also make it a separate meta service outside of dahsboards implementation

@boktorbb
Copy link
Contributor Author

boktorbb commented Apr 12, 2022

Add one few requests, be able to allow admin who setup OSD to pick up whichever storage they want.

Save meta to opensearch is still a option

Provide tool/feature to migrate meta data from one storage to another.

A few thinking but nice to have, not only decouple the storage but also make it a separate meta service outside of dahsboards implementation

Absolutely! Multiple storage options including OpenSearch is something we hope to work on.

@kavilla
Copy link
Member

kavilla commented Jun 7, 2022

[Groom]:

Please feel free to update any questions. And then figure out some scope and timelines.

@boktorbb
Copy link
Contributor Author

boktorbb commented Jun 8, 2022

The current high level plan is to work on some PoCs corresponding to milestones in the project:

  1. The first major hurdle is supporting rolling upgrades in Dashboards. This is a problem that needs to be solved regardless of metadata storage approach. There should be a plan in place for how we might approach this by either the end of June or first weeks of July. A PoC should follow.
  2. There is a tight coupling of the data plugin and saved objects api to OpenSearch logic. We need to refactor the code so that OpenSearch can be slotted as a possible data source plugin. Currently, I'm working on a PoC that uses sqlite as different data source from OpenSearch
  3. Create a new api/interface for current plugins/clients to make use of the new saved objects or refactor the current saved objects api. There are outstanding technical challenges that need to be discussed because of the extensive use of saved objects throughout the code by plugins and other components
  4. We eventually want to have multiple data sources and have the ability to "plug-in" a new data source with minimal effort required on the core.

@AMoo-Miki
Copy link
Collaborator

Metadata storage decoupling shouldn't be just about being able to use something other than OpenSearch. We need a simple replicating standalone key-value store to completely separate OSD from OS.

@hdhalter
Copy link

hdhalter commented Sep 1, 2023

Does this need documentation?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment