Clustered Mesh Search Status
- Dominant language
- Java
- Stars
- 593
- Forks
- 123
- Avg merge
- 2d 18h
- Merged PRs (30d)
- 4
Description
## Gentics Mesh Version, operating system, or hardware.
- v1.6.x
## Problem
When Mesh is clustered, usually some random instance responds (Depends on load-balancer and other stuff of course.).
This is however quite troublesome for some endpoints, where only one instance is currently working on it and is the only one keeping track of the status.
Such an Endpoint would be the `/admin/search/sync` and/or `/search/status`.
When you start an ES Sync, only one instance is starting this operation (Which is fine).
However, when attempting to check the status of it, other instances usually respond to this request which do not know of this process and respond with an "empty" (Everything is 0) response which isn't the actual status.
Checking the logs I can clearly see some progress being made.
## Reproducer
* Create a Cluster of min. 2 instances (Currently using 3+1)
* Add some content
* Clear the search `/admin/search/clear`
* Sync the search `/admin/search/sync`
* Check the sync status `/search/status`
Contributor guide
Research direction
Start with the /admin/search/sync and /search/status entry points and reproduce the issue using at least two clustered instances. Trace how sync status is stored and returned across instances, then verify that /search/status reports the active sync rather than an empty response from a different node. The issue has a merged pull request, so check that history first.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- java
- Domain
- api, backend, distributed-systems, search
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 25/100