A SynchronizationPattern?.
A ChangeNumber is used as a VersionNumber to reduce the amount of time a lock is held in LockBasedSynchronization or to reduce the lock so much that it becomes LockFreeSynchronization.
Every time the data is changed, the ChangeNumber is incremented.
See also SequenceNumber