bzr too slow

Denys Duchier duchier at ps.uni-sb.de
Wed Jan 11 08:35:43 GMT 2006


Robert Collins <robertc at robertcollins.net> writes:

> -        if self._hashcache.needs_write:
> -            self._hashcache.write()
> -        return self.branch.unlock()
> +        result = self.branch.unlock()
> +        if self.branch._lock is None:
> +            if self._hashcache.needs_write:
> +                self._hashcache.write()
> +        return result
>
> Which is completely trivial and does not depend on the transaction layer
> at all

It may be trivial, but it is wrong: you are performing the write outside the
protection of the lock.

> - transactions are a higher level consideration than this I think.

In my view, transactions have 2 purposes:

  - they guarantee an integrity of view (coherence with outside stateful data)
  - they bundle actions modifying such outside stateful data and execute them on
    commit

My proposal merely extends slightly the latter: there is stateful data that it
is useful to write back whether we choose to commit or not.

Cheers,

--Denys






More information about the bazaar mailing list