Te tukunga o te DBMS libmdbx 0.10.4 me te libfpta 0.3.9 kua whakauruhia ki te mahi teitei.

I tukuna nga whare pukapuka libmdbx 0.10.4 (MDBX) me te whakatinanatanga o te papaaarangi uara matua kua whakauruhia ki te mahi nui, me te whare pukapuka libfpta 0.3.9 (FPTA) e hono ana, e whakatinana ana i te whakaaturanga ripanga o nga raraunga me nga tohu tohu tuarua me te hiato. kei runga ake o MDBX. Ka tohatohahia nga whare pukapuka e rua i raro i nga raihana kua whakaaetia e OSI. Ka tautokohia nga punaha whakahaere me nga hoahoanga o naianei, me te Russian Elbrus 2000.

I nga wa o mua, ko te libmdbx he mahi hou o te LMDB DBMS, he pai ake i tona tupuna i roto i te pono, te huinga waahanga me te mahi. Ka whakatauritea ki te LMDB, he nui te aro o libmdbx ki te kounga o te waehere, te pumau o te API, te whakamatautau, me nga arowhai aunoa. Ka tukuna he taputapu hei tirotiro i te tika o te hanganga papaa raraunga me etahi kaha whakaora.

Ma te hangarau-hangarau, ka tuku a libmdbx i te ACID, te huringa huringa kaha, me nga panui kore-aukati me te tauine raina puta noa i nga papa CPU. Ka tautokohia te whakakoi-aunoa, te whakahaere rahinga raraunga aunoa, me te whakatau tata patai awhe. Mai i te tau 2016, kua putea nga kaupapa e Positive Technologies, mai i te tau 2017 kua whakamahia ki roto i ana hua.

Kei te tuku a libmdbx he C++ API, me nga here reo e tautokohia ana e te hunga hihiri mo Rust, Haskell, Python, NodeJS, Ruby, Go, me Nim. Mo te libfpta, ko te whakaahuatanga API anake e waatea ana ki te whanui i te ahua o te konae pane pane C/C++.

Ko nga mea hou, nga whakapainga me nga whakatikatika i taapiri mai i nga korero o mua i te 9 o Mei:

  • Whakahohehia nga hangahanga ka taea te whakaputa.
  • I whakatikahia he pepeha na te mea, i nga ahuatanga tino onge, ka puta he kopikopiko/whakatio i te wa o te mahi tauwhitinga. I tautuhia te raru e nga tohunga hangarau Positive Tecnologies i te wa o te whakamatautau o roto o a raatau ake hua.
  • Kua pai ake nga whakamatautau, kua whakawhänuihia nga ahuatanga whakamatautau ki te tirotiro i nga ahuatanga kore-isomorphic katoa o te rakau wharangi me nga ihirangi GC i roto i te paataka raraunga.
  • I roto i te C ++ API, he taapiri "noexcept" kua whakatikahia, kua taapirihia etahi atu taapiri mo te tikanga "pehu :: erase ()", ko te whakatinanatanga o nga kaitarai kua tohungia te whakamahi "std:: string" ki te whakarite i te tika. (e tika ana mo CLANG libstdc++).
  • He hokinga i roto i te wharangi paru e pakaru ana i te hātepe (te whakakore i nga wharangi raraunga kua whakarerekehia) i kitea e te hapa ohorere MDBX_PROBLEM i te wa e whakarereketia ana nga raraunga i roto i nga whakawhitinga nui kua whakakorehia.
  • I mahia he whakamatautau i te waahanga me te taapiri i etahi o nga arowhai hei whakarite i te pumau ki te tupono ka pa te kino ki te putunga korero.
  • Kua whakatika nga whakatupato iti UndefinedBehaviorSanitizer me nga take Coverity Scan.
  • Kua whakatikahia te tirotiro i te haki o roto "P_DIRTY" kua tawhito, kua kore e whakamahia i roto i nga wharangi kohanga i roto i nga whakaahua raraunga i hangaia e nga putanga tawhito o te whare pukapuka.
  • I roto i nga tuhinga CMake, kua pai ake te rapu mo nga waahanga whakahiato e hiahiatia ana mo te LTO (honohono-waa arotautanga).
  • Kua piki ake te maha o nga kaipanui tukutahi ki te 32767.
  • He pai ake te mahi i te wa e whakamahi ana i te Valgrind me te AddressSanitizer.
  • I runga i te Matapihi, kua whakakorehia te whakamahi recursive o te SRW-raka i te wa e mahi ana i roto i te aratau MDBX_NOTLS (kaore i te whakamahi i te miro rokiroki rohe), kua whakatauhia te whakatipuranga bootid mena kua rereke te wa o te punaha, kua pai ake te kitenga WSL1 me te WSL2, me te kaha ki te whakatuwherahia he papaa raraunga i runga Mahere 9 kua whakauruhia ma te DrvFS kua taapirihia.
  • Hui katoa, neke atu i te 160 nga huringa i mahia ki nga konae 57, ~5000 nga rarangi i tapirihia, ~2500 i mukua.

Kei te tino mihi au ki te roopu kaupapa Erigon (Ethereum rauwiringa kaiao) mo o raatau awhina ki te whakamatautau i nga ahuatanga tino whakamahi. He mea nui i roto i nga marama e rima mai i te tukunga o te libmdbx v0.10.0, me te nui o te 1-2 TB i roto i ia whakaurunga Erigon (i whakamahia i runga i te 7% o nga pona Ethereum), e toru noa nga purongo o te pirau papaa raraunga i tae mai, katoa i puta mai na nga take o waho, ehara i nga hapa rorohiko: i roto i nga take e rua ko te hapa o te RAM, i te tuatoru he hapa ki te tautuhi i nga raraunga i roto i te whirihoranga motuhake o te punaha rokiroki ma te whakamahi i te BTRFS.

Source: opennet.ru

Tāpiri i te kōrero