2021-06-10 02:57:32 +03:00
|
|
|
N | MASK | ENV | TXN | DB | PUT | DBI | NODE | PAGE | MRESIZE |
|
|
|
|
--|---------|-----------|--------------|----------|-----------|------------|---------|----------|---------|
|
2022-12-25 23:58:56 +03:00
|
|
|
0 |0000 0001|ALLOC_RSRV |TXN_FINISHED | | |DBI_DIRTY |F_BIGDATA|P_BRANCH | |
|
|
|
|
1 |0000 0002|ALLOC_UNIMP|TXN_ERROR |REVERSEKEY|F_SUBDATA |DBI_STALE |F_SUBDATA|P_LEAF | |
|
|
|
|
2 |0000 0004|ALLOC_COLSC|TXN_DIRTY |DUPSORT | |DBI_FRESH |F_DUPDATA|P_OVERFLOW| |
|
|
|
|
3 |0000 0008|ALLOC_SSCAN|TXN_SPILLS |INTEGERKEY| |DBI_CREAT | |P_META | |
|
|
|
|
4 |0000 0010|ALLOC_FIFO |TXN_HAS_CHILD |DUPFIXED |NOOVERWRITE|DBI_VALID | |P_BAD | |
|
mdbx: переработка инициализации, проверки и импорта dbi-хендлов в транзакциях.
Ранее инициализация в транзакциях структур данных, связанных с
dbi-хендлами и subDb, выполнялась непосредственно при запуске
транзакций. Что в сценариях с большим кол-вом dbi-дексприторов (например
libfpta) порождало заметные накладные расходы, которые расли линейно от
общего кол-ва открытых subDb, а не от реально используемых в транзакции.
При использовании одной-двух сотен хендлов, при старте каждой транзакции
могли копироваться и/или обнуляться десятки килобайт. Теперь этот
недостаток устранен.
Изменена схема инициализации, валидации и импорта хендлов открытых после
старта транзакции:
1) Инициализация теперь выполняется отложенна, а при старте транзации
обнуляется только массив с однобайтовыми статустами dbi-хендлов.
При этом доступнва опция сборки `MDBX_ENABLE_DBI_SPARSE`, при активации
которой используется битовая карты, что снижает объем инициализации
при старте транзакции в 8 раз (CHAR_BIT).
2) Переработана валидация dbi-хендлов на входах API, с уменьшением кол-ва
проверок и ветвлений до теоретического минимума.
3) Переработ импорт dbi-хендов открытых после старта транзакци, теперь
при этом не захватывается мьютекс.
2023-11-05 22:10:29 +03:00
|
|
|
5 |0000 0020| |TXN_DRAINED_GC|INTEGERDUP|NODUPDATA | | |P_LEAF2 | |
|
|
|
|
6 |0000 0040| | |REVERSEDUP|CURRENT |DBI_OLDEN | |P_SUBP | |
|
|
|
|
7 |0000 0080| | | |ALLDUPS |DBI_LINDO | | | |
|
2021-06-10 02:57:32 +03:00
|
|
|
8 |0000 0100| _MAY_MOVE | | | | | | | <= |
|
|
|
|
9 |0000 0200| _MAY_UNMAP| | | | | | | <= |
|
|
|
|
10|0000 0400| | | | | | | | |
|
|
|
|
11|0000 0800| | | | | | | | |
|
|
|
|
12|0000 1000| | | | | | | | |
|
2022-06-30 21:38:32 +03:00
|
|
|
13|0000 2000|VALIDATION | | | | | |P_SPILLED | |
|
2021-06-10 02:57:32 +03:00
|
|
|
14|0000 4000|NOSUBDIR | | | | | |P_LOOSE | |
|
2022-12-16 23:02:59 +03:00
|
|
|
15|0000 8000| | |DB_VALID | | | |P_FROZEN | |
|
2021-06-10 02:57:32 +03:00
|
|
|
16|0001 0000|SAFE_NOSYNC|TXN_NOSYNC | |RESERVE | |RESERVE | | |
|
|
|
|
17|0002 0000|RDONLY |TXN_RDONLY | |APPEND | |APPEND | | <= |
|
|
|
|
18|0004 0000|NOMETASYNC |TXN_NOMETASYNC|CREATE |APPENDDUP | | | | |
|
|
|
|
19|0008 0000|WRITEMAP |<= | |MULTIPLE | | | | <= |
|
|
|
|
20|0010 0000|UTTERLY | | | | | | | <= |
|
2024-04-02 00:22:09 +03:00
|
|
|
21|0020 0000|NOSTICKYTHR|<= | | | | | | |
|
2021-06-10 02:57:32 +03:00
|
|
|
22|0040 0000|EXCLUSIVE | | | | | | | |
|
|
|
|
23|0080 0000|NORDAHEAD | | | | | | | |
|
|
|
|
24|0100 0000|NOMEMINIT |TXN_PREPARE | | | | | | |
|
|
|
|
25|0200 0000|COALESCE | | | | | | | |
|
|
|
|
26|0400 0000|LIFORECLAIM| | | | | | | |
|
|
|
|
27|0800 0000|PAGEPERTURB| | | | | | | |
|
|
|
|
28|1000 0000|ENV_TXKEY |TXN_TRY | | | | | | |
|
|
|
|
29|2000 0000|ENV_ACTIVE | | | | | | | |
|
|
|
|
30|4000 0000|ACCEDE |SHRINK_ALLOWED|DB_ACCEDE | | | | | |
|
|
|
|
31|8000 0000|FATAL_ERROR| | | | | | | |
|