mdbx: rework spilling, page-lists, commit & abort for nested transactions, etc (squashed).

Change-Id: I09e4744586342aeae4efcfb71f41a3248ee47758
This commit is contained in:
Leonid Yuriev 2021-01-19 02:50:20 +03:00
parent 7bae2a7cd2
commit f28da7c9e3
2 changed files with 1035 additions and 528 deletions

1558
src/core.c

File diff suppressed because it is too large Load Diff

View File

@ -820,11 +820,6 @@ struct MDBX_txn {
MDBX_page *loose_pages;
/* Number of loose pages (tw.loose_pages) */
unsigned loose_count;
/* Number of retired to parent pages (tw.retired2parent_pages) */
unsigned retired2parent_count;
/* The list of parent's txn dirty pages that retired (became unused)
* in this transaction, linked through `mp_next`. */
MDBX_page *retired2parent_pages;
/* The sorted list of dirty pages we temporarily wrote to disk
* because the dirty list was full. page numbers in here are
* shifted left by 1, deleted slots have the LSB set. */