Jerome Blanchard created UNOMI-908:
--------------------------------------
Summary: Replace ClusterNode Persistence with Infinispan
Distributed CacheContext
Key: UNOMI-908
URL: https://issues.apache.org/jira/browse/UNOMI-908
Project: Apache Unomi
Issue Type: Improvement
Components: unomi(-core)
Affects Versions: unomi-3.0.0
Reporter: Jerome Blanchard
Currently, the ClusterService implementation in Unomi stores each ClusterNode
as a document in Elasticsearch. A scheduled job updates a heartbeat timestamp
every 10 seconds.
h3. Problem
This approach is resource-intensive and not well-suited for the use case for a
usage with ElasticCloud, where operational costs are directly impacted by the
number of indexes. The ClusterNode implementation creates an additional index,
unnecessarily increasing costs.
h3. Proposal
Replace the current persistence-based storage of ClusterNode objects with an
InMemory cache (also supporting distributed cache for clustered instances).
Infinispan could be a good candidate as it is available as a Karaf feature and
can be easily integrated. This change will:
Reduce operational costs by removing the need for a dedicated Elasticsearch
index for cluster nodes.
Improve performance and scalability for cluster node management.
Align with other planned features, such as a distributed entity cache, which
will also leverage the Infinispan Karaf feature.
h3. Tasks
Refactor ClusterServiceImpl to use distributed cache for storing and updating
ClusterNode information.
Remove Elasticsearch-based persistence logic for ClusterNode.
Ensure heartbeat updates are managed via distributed cache ; if not, rely on
the distributed cache underlying cluster management to manage ClusterNode
entities (JGroup for Infinispan)
Update documentation to reflect the new architecture.
Validate compatibility with existing and planned features using Infinispan.
h3. Definition of Done
ClusterNode information is available and updated without Elasticsearch.
No additional Elasticsearch index is created for cluster nodes.
Heartbeat mechanism works reliably.
All relevant documentation is updated.
Integration tests confirm correct cluster node management and heartbeat updates.
No regression in cluster management functionality.
--
This message was sent by Atlassian Jira
(v8.20.10#820010)