|
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] [OSSTEST PATCH 1/2] Executive DB: Eliminate SQL locking for read-only transactions
Ian Campbell writes ("Re: [OSSTEST PATCH 1/2] Executive DB: Eliminate SQL
locking for read-only transactions"):
> On Fri, 2015-12-11 at 16:23 +0000, Ian Jackson wrote:
> > We retain the db_retry framing because (a) although the retry loop is
> > not necessary in these cases, the transaction framing is (b) it will
> > make it slightly easier to reverse this decision in the future if we
> > ever decide to do so (c) it is less code churn.
> >
> > Signed-off-by: Ian Jackson <Ian.Jackson@xxxxxxxxxxxxx>
>
> Acked-by: Ian Campbell <ian.campbell@xxxxxxxxxx>
>
> (I haven't actually checked that everywhere you have changed is actually
> r/o
Justifying that claim, from the diffstat:
Comment only:
Osstest/Executive.pm | 6 ++++--
These two I have checked, but their function is indeed RO:
cr-ensure-disk-space | 2 +-
ms-planner | 3 ++-
(Note that `ms-planner' just manipulates data-plan.pl et al; it is
left to the clients to actually obtain resources in the DB.)
These are clearly RO:
sg-report-flight | 2 +-
sg-report-host-history | 8 ++++----
sg-report-job-history | 2 +-
> nor whether you have found every r/o operation).
I may have missed some, but the obvious potential remaining
long-running lockholder would be cs-bisection-step. I have looked at
cs-bisection step and:
- It does not seem to take any lock, or even begin a transaction, for
its primary archaeology function. I think this is fine because if
some test results or whatever show up later it ought not to break
the algorithm.
- The flight construction _is_ within a lock, in populateflight, but
it basically just clones a template and merges in information from
the archaeologist part.
- There is the check in `checkrepetition' - the flail test. This is
not a trivial transaction and it would be better if it didn't take
the lock. It is only not read-only because it ends, in the error
case, with an UPDATE to set the flight broken. This could be in a
separate transaction given that no-one else is supposed to be
messing about with the flight that cs-bisection-step is
constructing. But this is not a trivial change.
Ian.
_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxx
http://lists.xen.org/xen-devel
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |