gentics / gentics/mesh

Clustered Mesh Search Status

Open
#1,187 0 comments 0 reactions 0 assignees View on GitHub
bug f/clustering f/elasticsearch
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

Open the contributing 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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.