Workshop: CM-Handle States & Locking
Main Takeaways:
- Anchor Lock & session will NOT be used during any CM Handle State transitions. But implementation will remain in place
- Hazelcast (map) with Time-To-Live will be used to implement semaphore to prevent multiple instances working on same CM Handle (Module Sync & Data Sync)
- When model-sync fails the Cm Hale with go inst state LOCKED, reason: MISBEHAVING, details '#attempt, lastAttemptTime'
- The retry-watchdog can use the lock details to count attempts and implement a simple back-off algorithm i.e double the time for 'retry' on each attempt
- Data (cached and passthrough) can only be accessed when a CM Handle is in state 'READY'
Read access to cached data (NFP-Operational) depends on the Sync-state and the type of access
NFP-Operational Access Type Sync State Get (full xpath) Query (cpsPath) Synchronized √ √ Unsynchronized Attempt, on fail forward to 'Passthrough'
Attempt Non-Requested X forward to 'Passthrough'