Workshop: CM-Handle States & Locking

Main Takeaways:

  1. Anchor Lock & session will NOT be used during any CM Handle State transitions. But implementation will remain in place
  2. 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)
  3. When model-sync fails the Cm Hale with go inst state LOCKED, reason: MISBEHAVING, details '#attempt, lastAttemptTime'
    1. 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
  4. Data (cached and passthrough) can only be accessed when a CM Handle is in state 'READY'
  5. Read access to cached data (NFP-Operational) depends on the Sync-state and the type of access


    NFP-Operational Access Type
    Sync StateGet (full xpath)Query (cpsPath)
    Synchronized
    Unsynchronized

    Attempt, on fail forward to 'Passthrough'

    Attempt
    Non-RequestedXforward to 'Passthrough'