On 11/29/2011 12:13 PM, Michael Kublin wrote:
Hi All,
We are introducing a new short term locking mechanism at engine.
The motivation is races which are occurring between different flows, the main problem is
:
we did not update status of some entity and other flow was started , which is a main
cause for different collisions and situation which
can not be fixed in appropriate way by engine or vdsm.
The current status is a workaround which is trying to reduce a race : in many places in
the code, there is additional query to DB in order to check the appropriate status of
entity.
The proposed solution is internal locking mechanism - which will lock an appropriate
entity until its status will not be updated in DB, after that
an internal short term lock will be released.
The design for locking mechanism can be found here:
http://www.ovirt.org/wiki/Features/DetailedLockMechanism
The page still has many remains of the template.
The patch which is introduce an implementation for mechanism can be
found here:
http://gerrit.ovirt.org/#change,403
(Using of new mechanism all around a code and integration with bll will be sent in the
future, including cleaning of workaround)
Regards Michael
_______________________________________________
Engine-devel mailing list
Engine-devel(a)ovirt.org
http://lists.ovirt.org/mailman/listinfo/engine-devel
There's an implicit assumption that there's only going to be a single
active backend working against the database?
Y.