Details
-
Improvement
-
Resolution: Unresolved
-
Major
-
None
-
5.1
-
None
-
Unknown
-
Description
Problem
When several XWiki instances share a remote Solr server (solr.type=remote), every member that starts runs the Solr index synchronization (solr.synchronizeAtStartup, enabled by default). Each synchronization compares the whole database with the whole shared index, so members starting at the same time index the same differences several times and race on the removal of invalid entries, and a rolling restart repeats the full comparison once per member. The only workaround today is to disable solr.synchronizeAtStartup on all members but one, which means that nothing synchronizes the index while that member is down.
Proposal
With a remote Solr server, the startup synchronization runs only on the cluster singleton node (XWIKI-25253), and a member that becomes the singleton node (for example because the previous one stopped or crashed) runs one catch-up synchronization of all the wikis.
- With the embedded Solr server (one index per member) nothing changes: each member keeps synchronizing its own index.
- solr.synchronizeAtStartup=false keeps disabling the synchronization on the member where it is set.
- In WIKI mode (solr.synchronizeAtStartupMode=WIKI), the singleton node synchronizes every wiki at startup instead of waiting for each wiki to be loaded, because a member that serves no request (a member dedicated to background work, for example) may never load the subwikis.
Attachments
Issue Links
- depends on
-
XWIKI-25253 Allow knowing which cluster member must run the tasks executed only once in the cluster
-
- Open
-