[ZODB-Dev] [RFC] Allow serial to be returned as late as tpc_finish.
Vincent Pelletier
vincent at nexedi.com
Tue Dec 14 11:55:09 EST 2010
Some comments on previous mail.
Le mardi 14 décembre 2010 16:40:18, Vincent Pelletier a écrit :
> This makes possible for storage to allocate serial inside tpc_finish,
> removing the requirement to serialise 2PC's second phase phase (tpc_vote
> to tpc_finish/tpc_abort).
The diff chunk for Connection.py contains the real payload of this patch, the
rest fixes all unit tests (note: tests should not fail on existing storage if
they are left unchanged, but they fail with NEO - which now needs this patch).
Some notes, on which I would like some feedback.
Connection.py:
I duplicate a part of _handle_serial, because:
- some cases tested in _handle_serial don't apply to this case
- I think calling the same method inside a loop is not so efficient
but otherwise it's not a problem to reuse existing code.
interfaces.py:
Is there something else I should update ? (some documentation,...)
On tests in general:
In some cases, when tpc_finish returns non-None value, some checks gets
disabled (ex: "eq(len(set(oids)), 2)"). I think this is legitimate, as
tpc_finish returns only a serial so ZODB-level must keep track of which
objects it must invalidate.
Regards,
--
Vincent Pelletier
More information about the ZODB-Dev
mailing list