-
- Downloads
Revisited locking in BackendRados.
The locks in Rados have timeouts. They are needed in case a locker process dies without releasing its lock. As we have some contention in heavily loaded situations, it can happen that a process is till accessing objects while the lock is expired. To lessen the likeliness of this situation, the timeout has been increased from 10s to 60s. The backoff was ajusted using the MultithreadLockingInterface unit test, with printouts allowing to visually see the effect of the backoff strategy. The printouts are committed, but they are commented out. The same unit test was fized as it used to create an empty object, which is not supported anymore in order to be able to detect locking of non-existing objects (lock creates the object, but we detect non-existence as it is empty and re-delete it. This mechanism of empty object locking detection is also added to the async update of object as it was missing there (and the backoff has been added there too).
Loading
Please register or sign in to comment