Scaoileadh ardfheidhmíochta leabaithe DBMS libmdbx 0.10.4 agus libfpta 0.3.9

Scaoileadh na leabharlanna libmdbx 0.10.4 (MDBX) le cur i bhfeidhm bunachar sonraí eochair-luach leabaithe dlúth ardfheidhmíochta, agus an leabharlann gaolmhar libfpta 0.3.9 (FPTA), a chuireann i bhfeidhm léiriú táblach ar shonraí le hinnéacsanna tánaisteacha agus ilchodacha. ar bharr MDBX. Dáiltear an dá leabharlann faoi cheadúnais atá ceadaithe ag an OSI. Tacaítear le gach córas oibriúcháin agus ailtireacht reatha, chomh maith le Elbrus 2000 na Rúise.

Go stairiúil, is athoibriú domhain é libmdbx ar an LMDB DBMS agus tá sé níos fearr ná a sinsear maidir le hiontaofacht, tacar gnéithe agus feidhmíocht. I gcomparáid le LMDB, cuireann libmdbx go leor béime ar chaighdeán cód, cobhsaíocht API, tástáil, agus seiceálacha uathoibrithe. Soláthraítear fóntais chun sláine struchtúr an bhunachair shonraí a sheiceáil le roinnt cumas aisghabhála.

Ó thaobh na teicneolaíochta de, cuireann libmdbx ACID, sraithiú láidir athraithe ar fáil, agus léann neamhbhloic le scálaithe líneach thar chroíleacáin LAP. Tacaítear le comhdhlúthú uathoibríoch, le bainistíocht uathoibríoch ar mhéid an bhunachair shonraí, agus le meastachán raon fiosrúcháin. Ó 2016, tá tionscadail maoinithe ag Positive Technologies agus ó 2017 i leith tá siad in úsáid ina tháirgí.

Cuireann libmdbx API C ++ ar fáil, chomh maith le ceangail teanga a fhaigheann tacaíocht díograiseach do Rust, Haskell, Python, NodeJS, Ruby, Go, agus Nim. Maidir le libfpta, níl ach an cur síos API ar fáil go poiblí i bhfoirm comhad ceanntásca C/C++.

Mór-nuálaíochtaí, feabhsuithe agus ceartúcháin a cuireadh leis ón nuacht roimhe an 9 Bealtaine:

  • Cumasaítear foirgnimh atáirgthe.
  • Ceartaíodh fabht a bhféadfadh lúb/reo a bheith ann le linn gealltanas idirbhirt i gcúinsí fíor-annamh. D'aithin speisialtóirí Teicneolaíochtaí Dearfacha an fhadhb le linn tástáil inmheánach a dhéanamh ar a gcuid táirgí féin.
  • Feabhsaíodh na tástálacha agus leathnaíodh cásanna tástála chun gach staid neamh-iseamorfach insroichte de chrann an leathanaigh agus inneachar GC sa bhunachar sonraí a sheiceáil.
  • In C++ API, socraíodh “noexcept” breise, cuireadh ró-ualaí breise leis an modh “cúrsóir::erase()”, cuireadh cosc ​​ar chur i bhfeidhm maoláin le húsáid “std::string” chun ailíniú a chinntiú (ábhartha do CLANG libstdc++).
  • Cuireadh deireadh le cúlchéimniú san algartam doirteadh leathanach salach (díshealbhú roghnach ar leathanaigh bhunachar sonraí athraithe) a léirigh earráid annamh gan choinne MDBX_PROBLEM nuair a bhí sonraí á n-athrú in idirbhearta ollmhóra.
  • Rinneadh tástáil chéimnithe agus cuireadh roinnt seiceálacha leis chun cobhsaíocht a chinntiú i gcás damáiste d'aon ghnó don bhunachar sonraí.
  • Mionrabhaidh sheasta Eisítear Saincheisteanna Iompraíochta Neamhshainithe agus Scan Clúdaigh.
  • Seiceáil seasta an bhratach inmheánach “P_DIRTY” atá as dáta agus nach n-úsáidtear a thuilleadh i leathanaigh neadaithe taobh istigh d'íomhánna bunachar sonraí cruthaithe ag leaganacha níos sine den leabharlann.
  • I scripteanna CMake, tá feabhas curtha ar an gcuardach do chomhpháirteanna tiomsaitheora a theastaíonn le haghaidh LTO (uasmhéadú ar am naisc).
  • Méadaíodh uaslíon na léitheoirí comhuaineacha go 32767.
  • Feidhmíocht fheabhsaithe nuair a úsáidtear Valgrind agus AddressSanitizer.
  • Ar Windows, cuireadh deireadh le húsáid athfhillteach SRW-lock nuair a bhíonn sé ag obair i mód MDBX_NOTLS (gan úsáid a bhaint as stóráil áitiúil snáithe), socraíodh giniúint bootid má tá am an chórais athraithe, feabhsaíodh braite WSL1 agus WSL2, agus tá an cumas ann. bunachar sonraí a oscailt ar Phlean 9 suite trí DrvFS curtha leis.
  • San iomlán, rinneadh níos mó ná 160 athrú ar 57 comhad, cuireadh ~5000 líne leis, scriosadh ~2500.

Ba mhaith liom buíochas ar leith a ghabháil le foireann tionscadail Erigon (éiceachóras Ethereum) as an gcúnamh a thug siad le tástáil i gcásanna úsáide foircneacha. Tá sé suntasach, i gcúig mhí ó scaoileadh libmdbx v0.10.0, le toirt bunachar sonraí de 1-2 TB i ngach suiteáil Erigon (a úsáidtear ar 7% de nóid Ethereum), ní bhfuarthas ach trí thuarascáil ar éilliú bunachar sonraí, gach ceann de a tharla de bharr cúiseanna seachtracha, agus ní earráidí bogearraí: in dhá chás ba é an chúis le teipeanna RAM, sa tríú cás earráid maidir le sonraí a athshocrú i gcumraíocht shonrach den fhochóras stórála ag baint úsáide as BTRFS.

Foinse: oscailtenet.ru

Add a comment