☜ | OMI - Complex OperationsDraft MDC Standard | ☞ |
4.3.4 describes a complex lock, in which a client requests an atomic lock involving nrefs on different servers. The agent makes single lock requests to the servers and, if some of them fail, unlocks those that succeeded and then tries the whole procedure again.
This method avoids deadlock between conflicting complex locks, but it can generate much network traffic as agents repeat their requests, and (given just the wrong timings) a condition known as live-lock. Therefore, the agent should introduce a delay before retrying the lock. If the operation continues to fail, the length of the delay should be increased. While this "backing off" does not guarantee avoidance of live-lock, it greatly reduces the probability. The initial delay time, increase in delay and maximum delay are left to the implementer.
OMI includes requests to unlock all nrefs held by 1 client, and to unlock all nrefs held by all clients on a node. These requests facilitate the argumentless LOCK.
Copyright © Standard Documents; 1977-2024 MUMPS Development Committee;
Copyright © Examples: 1995-2024 Ed de Moel;
Copyright © Annotations: 2003-2008 Jacquard Systems Research
Copyright © Annotations: 2008-2024 Ed de Moel.
Some specifications are "approved for inclusion in a future standard". Note that the MUMPS Development Committee cannot guarantee that such future standards will indeed be published.
This page most recently updated on 14-Nov-2023, 21:51:15.
For comments, contact Ed de Moel (demoel@jacquardsystems.com)