mdbx-doc: дополнение раздела "Containers" в README.

This commit is contained in:
Леонид Юрьев (Leonid Yuriev) 2025-04-28 14:38:38 +03:00
parent 3338551860
commit 0a96b2ad97
2 changed files with 10 additions and 4 deletions

View File

@ -555,9 +555,9 @@ Of course, in addition to this, your toolchain must ensure the reproducibility o
For more information please refer to [reproducible-builds.org](https://reproducible-builds.org/). For more information please refer to [reproducible-builds.org](https://reproducible-builds.org/).
#### Containers #### Containers
There are no special traits nor quirks if you use libmdbx ONLY inside the single container. There are no special traits nor quirks if you use _libmdbx_ ONLY inside
But in a cross-container cases or with a host-container(s) mix the two major things MUST be the single container. But in a cross-container(s) or with a host-container(s)
guaranteed: interoperability cases the three major things MUST be guaranteed:
1. Coherence of memory mapping content and unified page cache inside OS 1. Coherence of memory mapping content and unified page cache inside OS
kernel for host and all container(s) operated with a DB. Basically this kernel for host and all container(s) operated with a DB. Basically this
@ -573,6 +573,12 @@ in the system memory.
including `ERROR_ACCESS_DENIED`, including `ERROR_ACCESS_DENIED`,
but not the `ERROR_INVALID_PARAMETER` as for an invalid/non-existent PID. but not the `ERROR_INVALID_PARAMETER` as for an invalid/non-existent PID.
3. The versions/builds of _libmdbx_ and `libc`/`pthreads` (`glibc`, `musl`, etc) must be be compatible.
- Basically, the `options:` string in the output of `mdbx_chk -V` must be the same for host and container(s).
See `MDBX_LOCKING`, `MDBX_USE_OFDLOCKS` and other build options for details.
- Avoid using different versions of `libc`, especially mixing different implementations, i.e. `glibc` with `musl`, etc.
Prefer to use the same LTS version, or switch to full virtualization/isolation if in doubt.
#### DSO/DLL unloading and destructors of Thread-Local-Storage objects #### DSO/DLL unloading and destructors of Thread-Local-Storage objects
When building _libmdbx_ as a shared library or use static _libmdbx_ as a When building _libmdbx_ as a shared library or use static _libmdbx_ as a
part of another dynamic library, it is advisable to make sure that your part of another dynamic library, it is advisable to make sure that your

View File

@ -49,7 +49,7 @@
* = F_WRLCK блокировка первого байта lck-файла, другие процессы ждут её * = F_WRLCK блокировка первого байта lck-файла, другие процессы ждут её
* снятия при получении F_RDLCK через F_SETLKW. * снятия при получении F_RDLCK через F_SETLKW.
* - блокировки dxb-файла могут меняться до снятие эксклюзивной блокировки * - блокировки dxb-файла могут меняться до снятие эксклюзивной блокировки
* lck-файла: * lck-файла:
* + для НЕ-эксклюзивного режима блокировка pid-байта в dxb-файле * + для НЕ-эксклюзивного режима блокировка pid-байта в dxb-файле
* посредством F_RDLCK или F_WRLCK, в зависимости от MDBX_RDONLY. * посредством F_RDLCK или F_WRLCK, в зависимости от MDBX_RDONLY.
* + для ЭКСКЛЮЗИВНОГО режима блокировка всего dxb-файла * + для ЭКСКЛЮЗИВНОГО режима блокировка всего dxb-файла