Sgaoileadh àrd-choileanadh freumhaichte DBMS libmdbx 0.10.4 agus libfpta 0.3.9

Chaidh na leabharlannan libmdbx 0.10.4 (MDBX) a leigeil ma sgaoil le bhith a’ cur an gnìomh stòr-dàta luach-iuchrach freumhaichte àrd-choileanadh, agus an leabharlann libfpta 0.3.9 (FPTA) co-cheangailte ris, a bhios a’ buileachadh riochdachadh clàr de dhàta le clàran-amais àrd-sgoile agus co-dhèanta. a bharrachd air MDBX. Tha an dà leabharlann air an sgaoileadh fo cheadan aontaichte OSI. Tha a h-uile siostam obrachaidh agus ailtireachd gnàthach a’ faighinn taic, a bharrachd air an Elbrus 2000 Ruiseanach.

Gu h-eachdraidheil, tha libmdbx na ath-obair domhainn den LMDB DBMS agus tha e nas fheàrr na a sinnsear ann an earbsachd, seata feart agus coileanadh. An coimeas ri LMDB, tha libmdbx a 'cur mòran cuideam air càileachd còd, seasmhachd API, deuchainn, agus sgrùdaidhean fèin-ghluasadach. Tha goireas ann airson sgrùdadh a dhèanamh air ionracas structar an stòr-dàta le cuid de chomasan ath-bheothachaidh.

A thaobh teicneòlas, tha libmdbx a’ tabhann ACID, sreathachadh atharrachaidh làidir, agus leughaidhean neo-bhacadh le sgèileadh sreathach thairis air coraichean CPU. Thathas a’ toirt taic do cho-chòrdadh fèin-ghluasadach, riaghladh meud stòr-dàta fèin-ghluasadach, agus tuairmse ceist raon. Bho 2016, tha pròiseactan air am maoineachadh le Positive Technologies agus bho 2017 air an cleachdadh anns na toraidhean aca.

Tha libmdbx a’ tabhann API C ++, a bharrachd air ceanglaichean cànain le taic dealasach airson Rust, Haskell, Python, NodeJS, Ruby, Go, agus Nim. Airson libfpta, chan eil ach an tuairisgeul API ri fhaighinn gu poblach ann an cruth faidhle cinn C/C ++.

Ùr-ghnàthachaidhean mòra, leasachaidhean agus ceartachaidhean air an cur ris bho na naidheachdan roimhe air 9 Cèitean:

  • A’ comasachadh toglaichean ath-ghinte.
  • Chàirich sinn bug air sgàth sin, ann an suidheachaidhean glè ainneamh, dh’ fhaodadh lùb / reothadh tachairt aig àm gealltanas malairt. Chaidh an duilgheadas a chomharrachadh le eòlaichean Positive Tecnologies fhad ‘s a bha iad a’ dèanamh deuchainn air na toraidhean aca fhèin.
  • Chaidh deuchainnean a leasachadh agus chaidh suidheachaidhean deuchainn a leudachadh gus sgrùdadh a dhèanamh air a h-uile staid neo-isomorphic ruigsinneach de chraobh na duilleige agus susbaint GC taobh a-staigh an stòr-dàta.
  • Anns an C ++ API, chaidh “noexcept” a bharrachd a shuidheachadh, chaidh cus luchdan a bharrachd a chuir ris airson an dòigh “cursor:: erase()”, chaidh buileachadh bufairean a shàbhaladh bho bhith a’ cleachdadh “std :: string” gus dèanamh cinnteach à co-thaobhadh (buntainneach airson CLANG libstdc++).
  • Chaidh cuir às do tharraing air ais anns an algairim dòrtadh duilleag salach (cuir a-mach roghnach de dhuilleagan stòr-dàta atharraichte) a chaidh fhoillseachadh le mearachd ainneamh ris nach robh dùil MDBX_PROBLEM nuair a chaidh dàta atharrachadh ann an gnothaichean mòra.
  • Chaidh deuchainn mean air mhean a dhèanamh le grunn sgrùdaidhean a bharrachd gus dèanamh cinnteach à seasmhachd ma thachras milleadh a dh’aona ghnothach air an stòr-dàta.
  • Rabhaidhean beaga stèidhichte cùisean UndefinedBehaviorSanitizer agus Coverity Scan.
  • Chàir sinn sgrùdadh air a’ bhratach a-staigh “P_DIRTY” a tha seann-fhasanta agus nach deach a chleachdadh tuilleadh ann an duilleagan neadachaidh taobh a-staigh ìomhaighean stòr-dàta a chaidh a chruthachadh le dreachan nas sine den leabharlann.
  • Ann an sgriobtaichean CMake, chaidh leasachadh a dhèanamh air an rannsachadh airson co-phàirtean cruinneachaidh a tha riatanach airson LTO (optimization time-link).
  • Chaidh an àireamh as motha de luchd-leughaidh aig an aon àm àrdachadh gu 32767.
  • Coileanadh nas fheàrr nuair a bhios tu a’ cleachdadh Valgrind agus AddressSanitizer.
  • Air Windows, chaidh cuir às do chleachdadh ath-chuairteach de ghlas SRW nuair a bhios tu ag obair ann am modh MDBX_NOTLS (gun a bhith a’ cleachdadh stòradh ionadail snàithlean) air a chuir às, chaidh gineadh bootid a shuidheachadh ma tha ùine an t-siostaim air atharrachadh, chaidh lorg WSL1 agus WSL2 a leasachadh, agus an comas fosgail stòr-dàta air Plana 9 air a chuir suas tro DrvFS air a chur ris.
  • Uile gu lèir, chaidh còrr is 160 atharrachadh a dhèanamh air 57 faidhle, chaidh ~5000 loidhne a chur ris, chaidh ~2500 a sguabadh às.

Bu mhath leam gu sònraichte taing a thoirt do sgioba pròiseact Erigon (eag-shiostam Ethereum) airson an taic ann a bhith a’ dèanamh deuchainn ann an suidheachaidhean fìor fheum. Tha e cudromach, anns na còig mìosan bho chaidh libmdbx v0.10.0 a leigeil ma sgaoil, le leabhar stòr-dàta de 1-2 TB anns gach stàladh Erigon (air a chleachdadh air 7% de nodan Ethereum), nach d’ fhuaireadh ach trì aithisgean de thruailleadh stòr-dàta, uile thachair sin air sgàth adhbharan bhon taobh a-muigh, agus chan e mearachdan bathar-bog: ann an dà chùis b’ e fàilligidhean RAM an adhbhar, anns an treas fear mearachd ann a bhith ag ath-shuidheachadh dàta ann an rèiteachadh sònraichte den fho-shiostam stòraidh a’ cleachdadh BTRFS.

Source: fosgailtenet.ru

Cuir beachd ann