Eine Ebene höher
Frage
Wie realisiere ich am besten einen Counter mit einem persistenten Objekt?
Antwort
Wenn man Counter in der ZODB ablegt, muss man daran denken, dass der Counter-Wert mit dem zugehörigen persistenten Objekt zusammen gelesen und geschrieben wird. Hochfrequent geänderte Counter legt man deshalb in ein selbstständiges
persistentes Objekt.
Wenn man reine Zählsemantik braucht, kann man "BTrees.Length.Length" verwenden. Es hat eine "applikations-spezifische" Konfliktauflösung, die Konflikte verhindert. "Length" ist wegen dieser Konfliktauflösung allerdings ungeeignet, eindeutige Ids zu liefern. Das bedeutet, dass es auf den genauen Einsatz ankommt, ob "Length" verwendbar ist.
(Antwort von Dieter Maurer)
persistentes Objekt.
Wenn man reine Zählsemantik braucht, kann man "BTrees.Length.Length" verwenden. Es hat eine "applikations-spezifische" Konfliktauflösung, die Konflikte verhindert. "Length" ist wegen dieser Konfliktauflösung allerdings ungeeignet, eindeutige Ids zu liefern. Das bedeutet, dass es auf den genauen Einsatz ankommt, ob "Length" verwendbar ist.
(Antwort von Dieter Maurer)