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

Metacat API Load-related Issues Triggered by Reindexing (k8s) #1911

Open
artntek opened this issue May 1, 2024 · 1 comment
Open

Metacat API Load-related Issues Triggered by Reindexing (k8s) #1911

artntek opened this issue May 1, 2024 · 1 comment
Milestone

Comments

@artntek
Copy link
Contributor

artntek commented May 1, 2024

When a "reindex all" command is issued to Metacat in k8s, and there are too many index workers deployed, they all overwhelm the single metacat instance with requests, which leads to errors including database connection pool exhaustion and other (unexplained) issues.

We need to reproduce and look at some of these overload mechanisms, then make changes to ensure metacat can tolerate the load from reindexing.

@artntek artntek added this to the 3.1.0 milestone May 1, 2024
@mbjones
Copy link
Member

mbjones commented May 1, 2024

Good observation. A lot of this overload is from the many /meta and /object API calls (and associated access control checks) needed to handle indexing. This is a well-known problem for us, and the point of our hashstore storage refactor is that dataone-indexer workers can get the files they need for indexing without making any API calls. In our new design, a call to reindex all will generate a lot of rabbitmq tasks that contain the job info needed for each indexing job, and the indexing workers can do their thing in parallel without hitting metacat with rest calls. I suspect when we get here, then our limiting bottlenecks will shift to 1) I/O limits from Ceph, and 2) solr write limits (although in theory we can shard this and provide horizontal scaling in solr too).

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants