In the projects I was involved, ZODB3 3.11.a3 (not ZODB 4) has hurt more
than it has helped.
In particular, the banishing of standard comparison from BTrees has made
existing data break on an instance where ZODB3 was accidentally upgraded
from 3.10.5 to 3.11a3 by pip 1.4 (i.e. a BTree containing
TimeStamps are used mainly to convert between high-level
date-time representations and 8-byte binary transaction IDs.
Historically, a TimeStamp's repr was used to retrieve the binary
representation. repr was used because, under the hood, slots
are much faster to access than methods.
In ZODB 3.3,