Hoʻokuʻu ʻia o DBMS libmdbx 0.11.7. E neʻe i ka hoʻomohala ʻana i GitFlic ma hope o ka laka ʻana ma GitHub

Ua hoʻokuʻu ʻia ka hale waihona puke libmdbx 0.11.7 (MDBX) me ka hoʻokō ʻana i kahi waihona waiwai kī nui i hoʻopili ʻia. Hāʻawi ʻia ka code libmdbx ma lalo o ka OpenLDAP Public License. Kākoʻo ʻia nā ʻōnaehana hana a me nā hale hana o kēia manawa, a me ka Russian Elbrus 2000.

ʻIke ʻia ka hoʻokuʻu ʻana no ka neʻe ʻana o ka papahana i ka lawelawe GitFlic ma hope o ka hoʻopau ʻana o ka hoʻokele GitHub i ka libmdbx a me ka lehulehu o nā papahana ʻē aʻe ma ʻApelila 15, 2022 me ka ʻole o ka ʻōlelo aʻo ʻana a i ʻole ka wehewehe ʻana, ʻoiai ke kāohi nei i ke komo ʻana i nā mea hoʻomohala e pili ana i nā hui i hāʻule. ma lalo o nā hoʻopaʻi US. Mai ka manaʻo o ka mea hoʻohana, ua huli koke nā ʻaoʻao āpau, nā waihona a me nā ʻōpala o ka papahana i kahi ʻaoʻao "404", me ka ʻole o ke kamaʻilio ʻana a me ka ʻike ʻana i nā kumu.

ʻO ka mea pōʻino, aneane pau nā pilikia i nalowale, kahi i nui ai nā nīnau me nā pane kikoʻī, a me nā kūkākūkā he nui. ʻO ka nalowale o kēia ʻike ʻo ia wale nō ka pōʻino pahuhopu i hoʻokō ʻia e ka hoʻokele GitHub i ka papahana. Loaʻa nā kope o nā kūkākūkā ma ka waihona archive.org.

ʻO ka lilo ʻana o nā palapala CI i kūkulu ʻia a me nā ʻōnaehana (loaʻa no nā papahana OpenSource no ka manuahi) ua koi iā mākou e hana i ka hoʻoponopono, hoʻohui a me ka hoʻopau ʻana i kahi ʻaiʻē ʻenehana liʻiliʻi. I kēia manawa ua hoʻihoʻi hou ʻia ʻo CI i ka nui like, koe wale nā ​​​​kūkulu a me nā holo hoʻāʻo no nā ʻano like ʻole BSD a me Solaris. ʻO ka haʻi ʻana, ma hope o nā hana a GitHub, ʻaʻohe wehewehe a i ʻole nā ​​​​hoʻolaha i loaʻa, ma waho o ka hoʻomanaʻo ʻana i ka pono o ka uku a me nā hoʻāʻo e kākau i ke kālā.

Mai ka lono hope loa e pili ana i ka hoʻokuʻu ʻia ʻana o libmdbx v0.11.3, ma kahi o ka hoʻihoʻi ʻana mai nā hana GitHub, pono e ʻike ʻia nā mea hou aʻe a me nā hoʻoponopono:

  • Hoʻohui ʻia kahi hana no ka hopena incoherence i ʻike ʻia i ka ʻaoʻao i hui pū ʻia a me ka cache buffer ma ka kernel Linux. Ma nā ʻōnaehana kahi i hoʻohui maoli ʻia ai ka ʻaoʻao a me ka buffer caches, ʻaʻohe mea kūpono no ka kernel e hoʻopau i ka hoʻomanaʻo ma nā kope ʻelua o ka ʻikepili i ka wā e kākau ai i kahi faila i hoʻopaʻa ʻia. No laila, ʻike ʻia ka ʻikepili i kākau ʻia ma ka palapala hoʻomanaʻo ma mua o ka pau ʻana o ke kelepona ʻōnaehana write() inā ʻaʻole i kākau ʻia ka ʻikepili i ka disk.

    Ma ka huina, ʻaʻole kūpono nā ʻano hana ʻē aʻe, no ka mea me ka hoʻopaneʻe ʻana o ka hui ʻana, pono ʻoe e hopu i nā laka no nā papa inoa ʻaoʻao, kope ʻikepili, a hoʻoponopono paha i ka PTE. No laila, ua paʻa ka lula pili ʻole i ʻōlelo ʻia mai ka makahiki 1989, i ka wā i ʻike ʻia ai ka cache buffer unified ma SRV4. No laila, ʻo ka loaʻa ʻana o nā hemahema ʻē aʻe i nā hiʻohiʻona hana libmdbx hana pono i ka hana nui. ʻO ka mea mua, ma ka hana hou ʻana i ka pilikia, a laila ma ka hōʻoia ʻana i nā kuhiakau a me ka nānā ʻana i nā hoʻomaikaʻi.

    I kēia manawa hiki iā mākou ke ʻōlelo me ka hilinaʻi ua ʻike ʻia ka pilikia, hoʻokaʻawale ʻia a hoʻopau pono ʻia, ʻoiai ka paʻakikī a me ka kikoʻī o ke ʻano pāʻani. Hoʻohui ʻia, ua hōʻoia ʻia ka hana o ka mīkini bypass e kekahi o nā mea hoʻomohala o Erigon (Ethereum), i kāna hihia, ma ke kūkulu ʻana i ka debug, ua hoʻomaka ka pale e like me ka regression ma muli o kahi hōʻoia hōʻoia hou.

    Pono e hoʻomaopopo ʻia i loko o ka pōʻaiapili o ka hoʻohana nui ʻana o libmdbx i nā hana hana, ʻoi aku ka nui o ka mea nui e hōʻoia i ka hana hilinaʻi, a ʻaʻole e ʻike "he bug a i ʻole kahi hiʻohiʻona" a inā hiki ke hilinaʻi ʻia kēlā ʻano pilina. , ʻoiai ʻaʻole ʻimi i nā kumu o ka incoherence i loko o ka Linux kernel. No laila, eia mākou e kamaʻilio nei e pili ana i ka hoʻoponopono ʻana i kahi pilikia e pili ana i nā mea hoʻohana.

  • Hoʻoponopono i ka hoʻihoʻi ʻana o ka hewa EXDEV (Cross-device link) i ka wā e kope ana i kahi waihona me ka hoʻopaʻa ʻole ʻana i kahi ʻōnaehana faila, ma o ka API a me ka hoʻohana ʻana i ka pono mdbx_copy.
  • Ua hoʻokō ʻo Kris Zyp i ke kākoʻo no libmdbx ma Deno. Ua hoʻopili ʻo Kai Wetlesen i nā RPM no Fedora. Ua hoʻokō ʻo David Bouyssie i nā mea paʻa no Scala.
  • Hoʻoponopono paʻa i ka waiwai i hoʻonohonoho ʻia e ke koho MDBX_opt_rp_augment_limit i ka wā e hoʻoili ai i nā kālepa nui i nā waihona nui. Ma mua, ma muli o kahi pahu, hiki ke hana i nā hana pono ʻole, i kekahi manawa i pili i ka hana i nā hoʻokō Ethereum (Erigon / Akula / Silkworm) a me nā papahana Binance Chain.
  • Ua hoʻoponopono ʻia ka nui o nā pōpoki, me nā mea i loko o ka C++ API. Hoʻoponopono i nā pilikia kūkulu hale i nā hoʻonohonoho ʻokoʻa a exotic. Loaʻa ka papa inoa piha o nā hoʻomaikaʻi koʻikoʻi ma ka ChangeLog.
  • He 185 mau hoʻololi i hana ʻia i 89 faila, ≈3300 laina i hoʻohui ʻia, ≈4100 i holoi ʻia. Wehe ʻia ma muli o ka hoʻomaʻemaʻe ʻana i nā faila tech pono ʻole e pili ana me GitHub a me nā lawelawe hilinaʻi.

ʻO ka mōʻaukala, ʻo libmdbx kahi hoʻolālā hohonu o ka LMDB DBMS a ʻoi aku i kona progenitor ma ke ʻano o ka hilinaʻi, ka hoʻonohonoho hiʻohiʻona a me ka hana. Hoʻohālikelike ʻia me LMDB, hoʻokau nui ʻo libmdbx i ka maikaʻi code, kūpaʻa API, hoʻāʻo, a me nā loiloi automated. Hāʻawi ʻia kahi mea pono no ka nānā ʻana i ka pono o ka waihona waihona me kekahi mau koho hoʻihoʻi.

ʻO ka ʻenehana, hāʻawi ʻo libmdbx i ka ACID, ka hoʻololi ʻana i ka serialization, a me ka heluhelu ʻole ʻana me ka scaling linear ma waena o nā cores CPU. Kākoʻo ʻia ka autocompactification, ka hoʻokele ʻana i ka nui o ka waihona ʻikepili, a me ka helu ʻana i nā nīnau. Mai ka 2016, ua hoʻolako kālā ʻia ka papahana e Positive Technologies a ua hoʻohana ʻia i kāna huahana mai 2017.

Hāʻawi ʻo libmdbx i kahi API C++ i hoʻomohala ʻia, a me nā paʻa i kākoʻo ʻia e ka hoihoi iā Rust, Haskell, Python, NodeJS, Ruby, Go, Nim, Deno, Scala.

Source: opennet.ru

Pākuʻi i ka manaʻo hoʻopuka