mirror of
https://github.com/isar/libmdbx.git
synced 2025-11-21 03:48:55 +08:00
Here are some changes to avoid recursive acquisition of SRW-lock, which is still in use: - Read transactions don't acquire the shared SRW-lock with `MDBX_NOTLS. - Memory-mapping of DB is always kept while DB opened, therefore following limitations are: - DB file can't be shrinked while it used, including auto-shrink due to auto-compactification with corresponding geometry settings. - The upper limit of DB size can't be changed while DB is used. - The DB can grow within the upper size limit defined while opening by a first process, but this does not work under Wine since there is no `NtExtendSection()` function. Partially fix https://github.com/erthink/libmdbx/issues/203
3.6 KiB
3.6 KiB
| N | MASK | ENV | TXN | DB | PUT | DBI | NODE | PAGE | MRESIZE |
|---|---|---|---|---|---|---|---|---|---|
| 0 | 0000 0001 | ALLOC_CACHE | TXN_FINISHED | DBI_DIRTY | F_BIGDATA | P_BRANCH | |||
| 1 | 0000 0002 | ALLOC_GC | TXN_ERROR | REVERSEKEY | F_SUBDATA | DBI_STALE | F_SUBDATA | P_LEAF | |
| 2 | 0000 0004 | ALLOC_NEW | TXN_DIRTY | DUPSORT | DBI_FRESH | F_DUPDATA | P_OVERFLOW | ||
| 3 | 0000 0008 | ALLOC_SLOT | TXN_SPILLS | INTEGERKEY | DBI_CREAT | P_META | |||
| 4 | 0000 0010 | TXN_HAS_CHILD | DUPFIXED | NOOVERWRITE | DBI_VALID | P_BAD | |||
| 5 | 0000 0020 | INTEGERDUP | NODUPDATA | DBI_USRVALID | P_LEAF2 | ||||
| 6 | 0000 0040 | REVERSEDUP | CURRENT | DBI_DUPDATA | P_SUBP | ||||
| 7 | 0000 0080 | ALLDUPS | DBI_AUDITED | ||||||
| 8 | 0000 0100 | _MAY_MOVE | <= | ||||||
| 9 | 0000 0200 | _MAY_UNMAP | <= | ||||||
| 10 | 0000 0400 | ||||||||
| 11 | 0000 0800 | ||||||||
| 12 | 0000 1000 | ||||||||
| 13 | 0000 2000 | P_SPILLED | |||||||
| 14 | 0000 4000 | NOSUBDIR | P_LOOSE | ||||||
| 15 | 0000 8000 | DB_VALID | NOSPILL | P_FROZEN | |||||
| 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 | <= | ||||||
| 21 | 0020 0000 | NOTLS | <= | ||||||
| 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 |