Release of high-performance embedded DBMS LIBMDBX 0.11.7

LIBMDBX Library release was released (MDBX) with the implementation of a high-performance compact embedded key-value class database. LIBMDBX code extends under the OpenLDAP Public License license. All topical operating systems and architecture are supported, as well as Russian Elbrus 2000.

Release is notable to migrate a project to the GitFlic service after April 15, 2022, the GitHub administration without any warnings and explanations of the reasons deleted libmdbx along with a mass of other projects, while simultaneously blocking access to many developers associated with the companies that fell under US sanctions . From the point of view of users, all pages, repository and the form of the project suddenly turned into a page “404”, without the possibility of any communications and clarify the reasons.

Unfortunately, almost all Issues are lost, in which there were many questions with detailed answers, as well as a lot of discussion. The loss of this information is the only objective damage that the GitHub administration managed to put the project. Partially copies of discussions in Archive.org archive remains available.

Loss of rebuilt CI-scenarios and infrastructure (available for OpenSource projects for free) made revisions, unification and elimination of small technicians. Now the CI is restored almost in the same amount, with the exception of assembly and run-tests for all BSD and Solaris options. What is characteristic, after the action from the side of GitHub did not receive any explanations or notifications, not counting the reminder of the need for payment and attempts to write off the money.

From the moment of the last news on the release of LIBMDBX V0.11.3, in addition to recovery after the GitHub dance, it is worth noting the following improvements and corrections:

  • added bypass the detected effect / defect defect in the combined cache of pages and buffers in the Linux kernel.
    In systems where cache pages and buffers is really united, the kernel does not make sense to spend memory for two copies of data when writing to the file already displayed in memory. Therefore, the recorded data becomes visible via the display in memory until the system call is called Write (), even if the data is not yet recorded on the disk.

    Total other behavior is not rational, because with a deferred merger, you still have to capture locks for lists of pages, copy data Or adjust PTE. Therefore, the inslace coherence rule was operated since 1989, when Unified Buffer Cache appeared in SRV4.
    Therefore, the detection of strange failures in loaded scenarios of LIBMDBX demanded a lot of work. First on the playback of the problem, then to verify the hypotheses and verification of refinement.

/Media reports.