Skip to content
Snippets Groups Projects
Commit 4918ed96 authored by Eric Cano's avatar Eric Cano
Browse files

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).
parent e63b7631
No related branches found
No related tags found
No related merge requests found
Loading
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment