Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

#

Issue

Notes/Jira

Decision

1


2


3



4



  • First, create "get the list" functionality
  • After it the synchronization

Implementation Proposal

...

Distributed datastore solution for Module Sync Watchdog

#ClassesProposed Changes
1SynchronizationSemaphoresConfig
  1. Change moduleSyncSemaphore type to Map<String,
Long>
2SyncUtils
  1. Search for a free cm handle id (free if it is not in moduleSyncSemaphore or timed out), add it to the moduleSyncSemaphore with current timestamp and put it to the ModuleSyncWatchdog
  2. Remove timed out cm handle ids from moduleSyncSemaphore
  3. time out border must be configurable from application.yaml
  1. Boolean>[ value: is finished? (true/false)], use the "time to live" filter
  2. Set a higher value for the "time to live" filter , half hour?
2SyncUtils
  1. Return a list of "advised" cm handles 
3ModuleSyncWatchdog
  1. Iterate on the cm handle list
  2. Store in haselcast, that cm handle id which processing currently with value: false
  3. Set the boolean value true when finished
3ModuleSyncWatchdogRemove cm handle id from moduleSyncSemaphore after module synchronization

Test

  • update existing tests to handle the new situations
  • create manual tests for the distributed datastore

...