mirror of
https://github.com/isar/libmdbx.git
synced 2025-05-12 04:17:45 +08:00
mdbx-doc: дополнение раздела "Containers" в README.
This commit is contained in:
parent
3338551860
commit
0a96b2ad97
12
README.md
12
README.md
@ -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
|
||||||
|
@ -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-файла
|
||||||
|
Loading…
x
Reference in New Issue
Block a user