Леонид Юрьев (Leonid Yuriev)
18e557c6e8
mdbx: rename internal functions, types and macros (to be closer to MithrilDB).
2022-08-11 12:33:56 +03:00
Леонид Юрьев (Leonid Yuriev)
1ec5687d36
mdbx: fix build for ARM/ARM64 by MSVC.
2022-04-22 17:18:58 +03:00
Леонид Юрьев (Leonid Yuriev)
6f37c8e57f
mdbx: resolve all warnings from MinGW.
2022-03-30 18:13:08 +03:00
Leonid Yuriev
c588af6aca
mdbx: update Copyright year.
...
Change-Id: Ib3e4c0ac94882c4b2a1e167dd98e6e26dbdf48a4
2022-01-17 11:06:14 +03:00
Leonid Yuriev
d7c06b1337
mdbx: partial fix for recursive SRW-lock with MDBX_NOTLS
on Windows.
...
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
2021-06-10 13:42:30 +03:00
Leonid Yuriev
e75033b1f4
mdbx: drop some unused stuff.
...
Change-Id: I136dcf891757d5c1a35a8082ee90e8cf07c016c6
2021-05-08 18:40:14 +03:00
Leonid Yuriev
ecd3c06932
mdbx-windows: remove MDBX_CONFIG_MANUAL_TLS_CALLBACK
build option and add MDBX_MANUAL_MODULE_HANDLER
macro.
...
Briefly:
- Now constructor/destructor of "Thread Local Storage" handled automatically when possible.
- Otherwise the MDBX_CONFIG_MANUAL_TLS_CALLBACK macro defined to 1 to indicate that mdbx_module_handle() should be called manually.
- Corresponding build option MDBX_CONFIG_MANUAL_TLS_CALLBACK was removed.
Related to https://github.com/erthink/libmdbx/issues/155
Change-Id: Ic4e6a34b44f874676f0ab212ff473460e3d80559
2021-05-08 18:39:18 +03:00
Leonid Yuriev
5ae120af80
mdbx-windows: more crutches for MinGW.
...
More for https://github.com/erthink/libmdbx/issues/155
Change-Id: I7de6122ff160372b2dcfd2a0a26e332cb52d0560
2021-05-08 18:38:44 +03:00
Leonid Yuriev
6b6165cdeb
mdbx: rename internal defines/macros to distinguish it from build options.
...
Change-Id: I42fe240e6ddd5d34c8fec38633849ebdcce0e116
2021-04-30 01:59:48 +03:00
Leonid Yuriev
d27e48ae1b
mdbx-windows: rename MDBX_AVOID_CRT
build option to MDBX_DISABLE_MSVC_CRT
.
...
Change-Id: I124c9d86d4a596718bd9671a7c1b538b84c2dd0f
2021-04-30 01:59:48 +03:00
Leonid Yuriev
e57e42d0f8
mdbx: use single pointer to lck-less stub.
...
Change-Id: I80542423386bd54cac574d1678af2620f147c769
2021-04-28 23:38:26 +03:00
Leonid Yuriev
4583f4bc8c
mdbx-windows: minor fix assertion inside mdbx_suspend_threads_before_remap()
.
...
Change-Id: I2026f8400aea3d7c0763556be3925206d8485684
2021-04-26 02:06:28 +03:00
Leonid Yuriev
9f0ff865e8
mdbx: use C11 atomics if available instead of legacy memory barriers.
...
This done better support architectures with a weak/relaxed memory consistency model (ARM, AARCH64, PPC, MIPS, RISC-V, etc).
Change-Id: Iee831c8dc564f1d027ff84b0d6daa559325d5a9b
2021-01-30 02:28:12 +03:00
Leonid Yuriev
251eda6fb8
mdbx: HNY!
...
Change-Id: I86c7028001b349e3d06b837dc8e2f7e60fb3b1a2
2021-01-26 07:27:13 +03:00
Leonid Yuriev
2dab009e76
mdbx-windows: handling EXCEPTION_POSSIBLE_DEADLOCK
.
...
Change-Id: If42c7833e9c4e02fef25634e69c0bd2e926686c1
2020-11-29 05:49:15 +03:00
Leonid Yuriev
0627d902dd
mdbx: add mdbx_env_delete()
.
...
Resolves https://github.com/erthink/libmdbx/issues/119
Related to https://github.com/Kerollmops/heed/issues/58
Change-Id: Iec5bf5978e45bb6843f3ed8dd06ea4d34f2895cb
2020-10-10 00:58:53 +03:00
Leonid Yuriev
9b64b95bbc
mdbx-windows: fix mdbx_RegGetValue() for Windows 2000/XP.
...
Change-Id: I436a254300fcba8dbf75ea7568c2bf0c963fe060
2020-10-08 01:50:18 +03:00
Josh Soref
448728f584
mdbx: a lot of spelling (squashed).
...
Many Thanks to Josh Soref for these fixes.
https://github.com/jsoref
Resolves https://github.com/erthink/libmdbx/pull/118 .
Change-Id: I4e09347da5c9d7a77cdd918a3b15284371440076
2020-09-25 01:01:25 +03:00
Leonid Yuriev
a2bdbc97dc
mdbx: truncate clk-file when DB closed in sync-state.
...
Change-Id: I2e2438606118e3aa3fa9d60811fea99994403d32
2020-05-23 01:34:52 +03:00
Leonid Yuriev
86a4085bf9
mdbx-windows: minor cleanup lck_downgrade().
...
Change-Id: I7f36baefe3e3d76083171ae0c0f97d21ad1e877a
2020-05-23 01:34:52 +03:00
Leonid Yuriev
673570ec2a
mdbx: auto-choose pagesize for a large databases.
...
Change-Id: I3f8279ba077a8c31c70504d32fb619b6601cc5c4
2020-04-23 17:15:55 +03:00
Leonid Yuriev
971f924c44
mdbx-build: rearrange source files, rework CMakeLists.txt and refine GNUMakefile (squashed).
...
Change-Id: Id73d346695011dab2f670bb9e6293a1e5a1835ca
2020-04-17 00:37:57 +03:00
Leonid Yuriev
f81374a9ce
mdbx-build: amalgamation.
...
Change-Id: Ic32de6ee119df2bc12136b882f4f7cabaa1314a9
2019-09-03 02:30:55 +03:00
Leonid Yuriev
113b29e68d
mdbx: add LCK-tracking to resolve double-open issue with POSIX-filelocks.
...
Change-Id: I29377000e4dde3c43527302b55d0daec58b709f5
2019-08-31 00:55:15 +03:00
Leonid Yuriev
51e7159f36
mdbx: dynamically discarding unused tail pages of DB file.
...
Change-Id: I1a0eee50cd27de26521e65c9f7ea51a527a0424e
2019-08-30 00:01:38 +03:00
Leonid Yuriev
9ddfa4f9c8
mdbx-windows: use PrefetchVirtualMemory().
2019-08-28 02:35:34 +03:00
Leonid Yuriev
137d652d77
mdbx: refine attribute-based macros.
2019-08-25 04:37:15 +03:00
Leonid Yuriev
6f8238e1e9
mdbx: LCK-format version 3.
...
The LCK file is re-created at every opportunity when the process that
opens the database is the only one that works with it. Thus the change
of the format of the file LCK creates only minimal compatibility
problems.
Applications using different versions of _libmdbx_ will be able to work
with one database alternately, but not at the same time. This appears to
be an acceptable inconvenience in exchange for new features.
Change-Id: I9414b3fffd53d5519c8172c57345b1eaf6e51c77
2019-08-23 03:38:11 +03:00
Leo Yuriev
9cc9116df3
mdbx: 2019 HNY.
...
Change-Id: Iec6b7affedef0ea89fad917eb17af7e8201a7482
2019-02-03 12:28:01 +03:00
Leonid Yuriev
624968b74c
mdbx-windows: use SetFileInformationByHandle() when available.
...
Change-Id: I27d9d4271d4328947ad68cdf30af61a31978b4f9
2018-12-28 13:53:57 +03:00
Leonid Yuriev
718f997502
mdbx-windows: workaround for Windows10 bugs.
...
This resolves https://github.com/leo-yuriev/libmdbx/issues/47
2018-10-21 20:27:49 +03:00
Leonid Yuriev
ae83982811
mdbx-windows: setup DllMain() as entry and don't linking with CRT.
...
17 of 17 for https://github.com/leo-yuriev/libmdbx/issues/43
Change-Id: Ie3b37633ab081ca4ba2dc485e67de96df032a3df
2018-10-14 15:03:52 +03:00
Leonid Yuriev
ace3d1bfa3
mdbx: add mdbx_malloc/mdbx_free, etc.
...
1 of 17 for https://github.com/leo-yuriev/libmdbx/issues/43
Change-Id: Ia5204be9f943fefde42e6a46e652c1be6ab6a96b
2018-10-14 14:53:40 +03:00
Leonid Yuriev
777d1db5c9
mdbx-windows: add MDBX_BUILD_DLL and DllMain().
...
Change-Id: I715f5ea84fe77923eecbc617c4e994e3e5d44605
2018-10-08 02:19:58 +03:00
Leo Yuriev
5a1f388db5
mdbx: drop unused mdbx_lck_upgrade().
2018-08-01 18:16:40 +03:00
Leo Yuriev
21858201e0
mdbx: fix nasty suspend_and_append() bug.
...
Change-Id: I043adcff2e6c040426a51b5d4b15bac849e6dd9f
2018-07-24 00:18:47 +03:00
Leo Yuriev
dfea68270a
mdbx: fix assertion inside mdbx_suspend_threads_before_remap().
...
Change-Id: If01fc5f655922c55b3955f2b00c93b80328c5232
2018-07-19 08:48:50 +03:00
Leo Yuriev
9b39b959de
mdbx: cleanup formating (cosmetic).
...
Change-Id: I4a502fa8e43b9556318628bef05447567e5a98be
2018-06-21 17:28:42 +03:00
Leo Yuriev
0dfa9cd09a
mdbx: add MDBX_EXCLUSIVE instead of mdbx_env_open_ex().
...
Change-Id: I3c817d58d971385bcd07643df14beaf7122c7836
2018-06-20 13:52:02 +03:00
Leo Yuriev
09ad941a05
mdbx: Windows XP compatibility.
...
Change-Id: Iafe3a83110610071e42a168ef9fc5f8d3131854f
2018-06-20 13:47:14 +03:00
Leonid Yuriev
fc41cd64d1
mdbx: add MDBX_CONFIG_MANUAL_TLS_CALLBACK.
...
Change-Id: I3ed60348f532cc9206f9ec0e7c1d3428b4f037a2
2018-06-20 13:47:14 +03:00
Leo Yuriev
9f2bf6a377
mdbx: provide SRWL stub for Windows XP/2000.
...
Change-Id: I438373a4952298efc88ca4c1a92c88e173b82f98
2018-06-20 13:47:14 +03:00
Leo Yuriev
9db090087e
mdbx: reformat by clang-format 6.0 (cosmetic).
2018-06-18 21:29:12 +03:00
Leo Yuriev
d0ddc8569b
mdbx-windows: fix lck_reader_alive_check().
...
Change-Id: Icbc54d9b3003f70bba573a3807c5161380339460
2018-05-04 02:17:21 +03:00
Leo Yuriev
d127c28e83
mdbx-windows: fix srw-release if rdt-lock failed (minor/paranoia).
2018-04-12 00:56:58 +03:00
Leo Yuriev
571b50622e
mdbx: restore workaround for glibc's bug #21031 .
...
Workaround for https://sourceware.org/bugzilla/show_bug.cgi?id=21031
Change-Id: I6cf9e037cc2fc298096b78ec96773f19478ed5c0
2018-04-03 17:44:18 +03:00
Leo Yuriev
a93fafceff
mdbx: strip utf8-bom for Elbrus (minor).
...
Change-Id: I9030abe267c4abfa2c5c2deb439c0b8025b83047
2018-03-07 12:09:43 +03:00
Leo Yuriev
72557af2b5
mdbx: HNY!
...
Change-Id: I2a91b986964d96bb3e5f848e3c17408bd7745866
2018-02-04 13:10:54 +03:00
Leo Yuriev
5cfec7a832
mdbx: workaround for Windows LockFileEx/WriteFile bug.
...
This resolves https://github.com/leo-yuriev/libmdbx/issues/25
2018-01-31 15:26:44 +03:00
Leo Yuriev
18432ebfab
mdbx-windows: minor refine LCK_BODY_LEN.
...
Change-Id: Id02434a12ba66f15b2aa624819c068f6e6fce0d3
2018-01-10 01:02:23 +03:00