You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
RelStorage is using LLBTree internally to store some OIDs and transaction IDs. Those are defined as unsigned 64-bit integers, but LLBTree stores signed data. For very large or rapidly changing databases, eventually we'll need to store a value larger than 2^63-1, and then we'll get a ValueError.
So to avoid falling back to a regular dict, I need a BTree type that is either an unsigned 64-bit integer, or something larger (as in #100). I'd prefer unsigned integers because saving memory was one of the primary reasons for using LLBTree in the first place.
The text was updated successfully, but these errors were encountered:
I think it would be fairly reasonable to add 64-bit unsigned long support, adding all or some of the variants UUBTree, ULBTree, UOBTree; I wouldn't imagine other combinations would actually be that useful.
Adding the L variants wasn't too painful, as best I recall (keeping in mind it was some time ago); it should be pretty clear how to do it if you can find the change(s) that introduced those.
RelStorage is using
LLBTree
internally to store some OIDs and transaction IDs. Those are defined as unsigned 64-bit integers, but LLBTree stores signed data. For very large or rapidly changing databases, eventually we'll need to store a value larger than 2^63-1, and then we'll get a ValueError.So to avoid falling back to a regular dict, I need a BTree type that is either an unsigned 64-bit integer, or something larger (as in #100). I'd prefer unsigned integers because saving memory was one of the primary reasons for using LLBTree in the first place.
The text was updated successfully, but these errors were encountered: