Rilis DBMS tertanam berkinerja tinggi libmdbx 0.11.3

Бостоялся выпуск Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ libmdbx 0.11.3 (MDBX) с Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠ΅ΠΉ Π²Ρ‹ΡΠΎΠΊΠΎΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠΉ ΠΊΠΎΠΌΠΏΠ°ΠΊΡ‚Π½ΠΎΠΉ встраиваСмой Π±Π°Π·Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ… класса ΠΊΠ»ΡŽΡ‡-Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅. Код libmdbx распространяСтся ΠΏΠΎΠ΄ Π»ΠΈΡ†Π΅Π½Π·ΠΈΠ΅ΠΉ OpenLDAP Public License. ΠŸΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°ΡŽΡ‚ΡΡ всС Π°ΠΊΡ‚ΡƒΠ°Π»ΡŒΠ½Ρ‹Π΅ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½Ρ‹Π΅ систСмы ΠΈ Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Ρ‹, Π° Ρ‚Π°ΠΊΠΆΠ΅ российский Π­Π»ΡŒΠ±Ρ€ΡƒΡ 2000. На ΠΊΠΎΠ½Π΅Ρ† уходящСго 2021 Π³ΠΎΠ΄Π° libmdbx ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ ΠΊΠ°ΠΊ бэкСнд хранСния Π² Π΄Π²ΡƒΡ… самых быстрых ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π°Ρ… Ethereum β€” Erigon ΠΈ Π½ΠΎΠ²ΠΎΠΉ «АкулС», которая ΠΏΠΎ доступной ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ являСтся самым Π²Ρ‹ΡΠΎΠΊΠΎΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΌ ΠΊΠ»ΠΈΠ΅Π½Ρ‚ΠΎΠΌ Ethereum.

Secara historis, libmdbx adalah pengerjaan ulang mendalam dari DBMS LMDB dan lebih unggul dari pendahulunya dalam hal keandalan, rangkaian fitur, dan kinerja. Dibandingkan dengan LMDB, libmdbx lebih menekankan pada kualitas kode, stabilitas API, pengujian, dan pemeriksaan otomatis. Utilitas untuk memeriksa integritas struktur database dengan beberapa kemampuan pemulihan disediakan.

ВСхнологичСски libmdbx ΠΏΡ€Π΅Π΄Π»Π°Π³Π°Π΅Ρ‚ ACID, ΡΡ‚Ρ€ΠΎΠ³ΡƒΡŽ ΡΠ΅Ρ€ΠΈΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΡŽ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ ΠΈ Π½Π΅Π±Π»ΠΎΠΊΠΈΡ€ΡƒΡŽΡ‰Π΅Π΅ Ρ‡Ρ‚Π΅Π½ΠΈΠ΅ с Π»ΠΈΠ½Π΅ΠΉΠ½Ρ‹ΠΌ ΠΌΠ°ΡΡˆΡ‚Π°Π±ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ ΠΏΠΎ ядрам ЦПУ. ΠŸΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ΡΡ автокомпактификация, автоматичСскоС ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ Ρ€Π°Π·ΠΌΠ΅Ρ€ΠΎΠΌ Π‘Π”, ΠΎΡ†Π΅Π½ΠΊΠ° ΠΎΠ±ΡŠΡ‘ΠΌΠ° Π²Ρ‹Π±ΠΎΡ€ΠΎΠΊ ΠΏΠΎ Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½Π°ΠΌ (range query estimation). Π‘ 2016 Π³ΠΎΠ΄Π° ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ финансируСтся ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠ΅ΠΉ Positive Technologies ΠΈ c 2017 Π³ΠΎΠ΄Π° ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ Π² Π΅Ρ‘ ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ‚Π°Ρ….

Для libmdbx прСдлагаСтся C++ API, Π° Ρ‚Π°ΠΊΠΆΠ΅ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅ΠΌΡ‹Π΅ энтузиастами привязки ΠΊ языкам Rust, Haskell, Python, NodeJS, Ruby, Go, Nim.

ΠžΡΠ½ΠΎΠ²Π½Ρ‹Π΅ Π½ΠΎΠ²ΡˆΠ΅ΡΡ‚Π²Π°, Π΄ΠΎΡ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΈ исправлСния, Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Π½Ρ‹Π΅ послС ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰Π΅ΠΉ новости ΠΎΡ‚ 11 октября:

  • C++ API считаСтся Π³ΠΎΡ‚ΠΎΠ²Ρ‹ΠΌ ΠΊ ΠΏΡ€ΠΈΠΌΠ΅Π½Π΅Π½ΠΈΡŽ.
  • БущСствСнно ускорСнно ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ Π΄Π°Π½Π½Ρ‹Ρ… GC ΠΏΡ€ΠΈ фиксации ΠΎΠ³Ρ€ΠΎΠΌΠ½Ρ‹Ρ… Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΉ, Ρ‡Ρ‚ΠΎ особСнно Π°ΠΊΡ‚ΡƒΠ°Π»ΡŒΠ½ΠΎ ΠΏΡ€ΠΈ использовании libmdbx Π² экосистСмС Ethereum.
  • ИзмСнСна внутрСнняя сигнатура Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π° Π‘Π” с ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠΎΠΉ автоматичСского обновлСния, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ ΠΏΠΎΠ»Π½ΠΎΡΡ‚ΡŒΡŽ ΠΏΡ€ΠΎΠ·Ρ€Π°Ρ‡Π½ΠΎ для ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ. Π­Ρ‚ΠΎ позволяСт ΠΈΡΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ Π»ΠΎΠΆΠ½ΠΎ-ΠΏΠΎΠ»ΠΎΠΆΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ сообщСния ΠΎ ΠΏΠΎΠ²Ρ€Π΅ΠΆΠ΄Π΅Π½ΠΈΠΈ Π‘Π”, ΠΊΠΎΠ³Π΄Π° ΡƒΡΡ‚Π°Ρ€Π΅Π²ΡˆΠΈΠ΅ вСрсии Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ‚ΡΡ для чтСния Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΉ зафиксированных Π°ΠΊΡ‚ΡƒΠ°Π»ΡŒΠ½Ρ‹ΠΌΠΈ вСрсиями.
  • Π”ΠΎΠ±Π°Π²Π»Π΅Π½Ρ‹ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ mdbx_env_get_syncbytes(), mdbx_env_get_syncperiod() ΠΈ mdbx_env_get_syncbytes(). Π”ΠΎΠ±Π°Π²Π»Π΅Π½Π° ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ MDBX_SET_UPPERBOUND.
  • УстранСны всС прСдупрСТдСния ΠΏΡ€ΠΈ сборкС всСми ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅ΠΌΡ‹ΠΌΠΈ компиляторами Π² Ρ€Π΅ΠΆΠΈΠΌΠ°Ρ… Π‘++ 11/14/17/20. ΠžΠ±Π΅ΡΠΏΠ΅Ρ‡Π΅Π½Π° ΡΠΎΠ²ΠΌΠ΅ΡΡ‚ΠΈΠΌΠΎΡΡ‚ΡŒ с ΡƒΡΡ‚Π°Ρ€Π΅Π²ΡˆΠΈΠΌΠΈ компиляторами: clang начиная с 3.9, gcc начиная с 4.8, Π²ΠΊΠ»ΡŽΡ‡Π°Ρ сборку посрСдством сdevtoolset-9 для CentOS/RHEL 7.
  • УстранСна Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ ΠΊΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚Π° ΠΌΠ΅Ρ‚Π°-страниц послС Ρ€ΡƒΡ‡Π½ΠΎΠ³ΠΎ ΠΏΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ Π½Π° ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½ΡƒΡŽ ΠΌΠ΅Ρ‚Π°-страницу с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΡƒΡ‚ΠΈΠ»ΠΈΡ‚Ρ‹ mdbx_chk.
  • Π˜ΡΠΏΡ€Π°Π²Π»Π΅Π½ Π²ΠΎΠ·Π²Ρ€Π°Ρ‚ Π½Π΅ΠΎΠΆΠΈΠ΄Π°Π½Π½ΠΎΠΉ ошибки MDBX_PROBLEM ΠΏΡ€ΠΈ пСрСзаписи ΡƒΡΡ‚Π°Ρ€Π΅Π²ΡˆΠΈΡ… ΠΌΠ΅Ρ‚Π°-страниц.
  • Π˜ΡΠΏΡ€Π°Π²Π»Π΅Π½ Π²ΠΎΠ·Π²Ρ€Π°Ρ‚ MDBX_NOTFOUND Π² случаС Π½Π΅Ρ‚ΠΎΡ‡Π½ΠΎΠ³ΠΎ совпадСния ΠΏΡ€ΠΈ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ΅ запроса MDBX_GET_BOTH.
  • УстранСна ошибка компиляции Π½Π° Linux ΠΏΡ€ΠΈ отсутствии Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΡ‡Π½Ρ‹Ρ… Ρ„Π°ΠΉΠ»ΠΎΠ² с описаниями интСрфСйсов с ядром.
  • Π˜ΡΠΏΡ€Π°Π²Π»Π΅Π½Π° коллизия ΠΌΠ΅ΠΆΠ΄Ρƒ Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½ΠΈΠΌ Ρ„Π»Π°Π³ΠΎΠΌ MDBX_SHRINK_ALLOWED ΠΈ ΠΎΠΏΡ†ΠΈΠ΅ΠΉ MDBX_ACCEDE.
  • УстранСно нСсколько ΠΈΠ·Π»ΠΈΡˆΠ½ΠΈΡ… assert-ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΎΠΊ.
  • Π˜ΡΠΏΡ€Π°Π²Π»Π΅Π½Π° Π½Π΅ΠΎΠΆΠΈΠ΄Π°Π½Π½Ρ‹ΠΉ Π²ΠΎΠ·Π²Ρ€Π°Ρ‚ MDBX_RESULT_TRUE ΠΈΠ· Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ mdbx_env_set_option().
  • Secara total, lebih dari 90 perubahan dilakukan pada 25 file, ~1300 baris ditambahkan, ~600 dihapus.

Sumber: opennet.ru

Tambah komentar