-
Notifications
You must be signed in to change notification settings - Fork 189
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
refactor(katana-db): convert StorageChangeSet
into a normal table
#1774
Conversation
This stack of pull requests is managed by Graphite. Learn more about stacking. |
StorageChangeSet
table a normal non-dupsort tableStorageChangeSet
table a normal non-dupsort table
StorageChangeSet
table a normal non-dupsort tableStorageChangeSet
table a normal non-dupsort table
StorageChangeSet
table a normal non-dupsort tableStorageChangeSet
into a normal table
Codecov ReportAttention: Patch coverage is
Additional details and impacted files@@ Coverage Diff @@
## main #1774 +/- ##
==========================================
- Coverage 67.42% 67.19% -0.24%
==========================================
Files 305 305
Lines 33523 33607 +84
==========================================
- Hits 22603 22582 -21
- Misses 10920 11025 +105 ☔ View full report in Codecov by Sentry. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
So normal tables should not be limited at all, right? Or is there any other boundary we need to be aware of in testing?
Basically yes. In this context, value size of a normal table will have a much higher upper bound than that of a dupsort table.
These are the limitations set by mdbx for key/value size: Key size: minimum 0, maximum ≈½ pagesize (2022 bytes for default 4K pagesize, 32742 bytes for 64K pagesize). but for DUPSORT, iiuc the data item in a DUPSORT is just another key in the underlying BTree map and thus must follow the key size constraint. but because subkey of a dusport table is |
Resolves #1762
Convert
StorageChangeSet
into a normal table instead of dupsort.This change is so to allow the block list of the
StorageChangeSet
to grow without being bounded by the value size of aDUPSORT
table.The max size for a DUPSORT table value is equal to the max size of the table key. So, when the list cardinality increases too much, the resulting subkey size will become larger than the max size. This will result in a
MDBX_BAD_VALSIZE
error.