[ https://issues.apache.org/jira/browse/UNOMI-908?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Jerome Blanchard updated UNOMI-908: ----------------------------------- Summary: Introduce Distributed Cache to avoid intensive polling (was: Introduce Distributed Cache library to avoid intensive polling) > Introduce Distributed Cache to avoid intensive polling > ------------------------------------------------------ > > 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 > Priority: Major > > h3. Context > 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 of > relying on 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 to > avoid intensive polling, 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)