Te tukunga o te DBMS libmdbx 0.11.3

I tukuna te whare pukapuka libmdbx 0.11.3 (MDBX) me te whakatinanatanga o te papaaarangi uara-uara-uara-nui. Kua raihanatia te waehere libmdbx i raro i te Raihana Tūmatanui OpenLDAP. Kei te tautokohia nga punaha whakahaere katoa me nga hoahoanga o naianei, me te Russian Elbrus 2000. I te mutunga o te 2021, ka whakamahia te libmdbx hei papamuri rokiroki i roto i nga kaihokohoko Ethereum tere e rua - Erigon me te "Shark" hou, e ai ki nga korero e waatea ana. nga korero, ko te kaihoko Ethereum tino mahi.

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 whakarereketanga kaha o te raupapatanga, me nga panui kore-aukati me te tauine raina puta noa i nga matua CPU. Ka tautokohia te whakakoi-aunoa, te whakahaere rahinga raraunga aunoa, me te whakatau tata patai awhe. Mai i te tau 2016, kua putea te kaupapa e Positive Technologies, kua whakamahia ki roto i ana hua mai i te 2017.

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.

Ko nga mahi hou, nga whakapainga me nga whakatikatika kua taapirihia mai i nga korero o mua i te Oketopa 11:

  • Kua rite te C++ API mo te whakamahi.
  • Ko te whakahou i nga raraunga GC i te wa e mahi ana i nga whakawhitinga nui kua tino tere ake, he mea tino nui ki te whakamahi i te libmdbx i roto i te rauropi Ethereum.
  • Ko te hainatanga o roto o te whakatakotoranga raraunga kua whakarereketia hei tautoko i te whakahou aunoa, e tino marama ana ki nga kaiwhakamahi. Ma tenei ka taea e koe te whakakore i nga korero teka-pai e pa ana ki te pirau patengi raraunga ka whakamahia nga putanga tawhito o te whare pukapuka ki te panui i nga whakawhitinga kua tuhia e nga putanga o naianei.
  • Nga mahi taapiri mdbx_env_get_syncbytes(), mdbx_env_get_syncperiod() me mdbx_env_get_syncbytes(). He tautoko taapiri mo te mahi MDBX_SET_UPPERBOUND.
  • Ko nga whakatupato katoa i te wa e hanga ana me nga kaitoi tautoko katoa i roto i nga momo C++ 11/14/17/20 kua whakakorehia. Ko te hototahitanga ki nga kaikoipi tuku iho ka whakapumautia: clang mai i te 3.9, gcc timata mai i te 4.8, tae atu ki te huihuinga ma te whakamahi cdevtoolset-9 mo CentOS/RHEL 7.
  • Kua whakatikahia te tupono o te papā wharangi meta i muri i te huri a ringa ki tetahi wharangi meta motuhake ma te whakamahi i te whaipainga mdbx_chk.
  • Kua whakatikahia te hapa MDBX_PROBLEM ohorere i te whakahoki mai i te tuhirua i nga wharangi meta tuku iho.
  • Kua whakatikahia te whakahokinga MDBX_NOTFOUND mena he tukinga koretake i te wa e tukatuka ana i te tono MDBX_GET_BOTH.
  • Kua whakatikahia he hapa whakahiato i runga i te Linux i te kore o nga konae pane me nga whakaahuatanga o nga hononga me te kernel.
  • I whakatika i te papā i waenga i te haki o roto MDBX_SHRINK_ALLOWED me te kōwhiringa MDBX_ACCEDE.
  • He maha nga arowhai whakapae koretake kua whakakorehia.
  • Kua whakatikahia te hokinga ohorere o MDBX_RESULT_TRUE mai i te mahi mdbx_env_set_option().
  • Hui katoa, neke atu i te 90 nga huringa i mahia ki nga konae 25, ~1300 nga rarangi i tapirihia, ~600 i mukua.

Source: opennet.ru

Tāpiri i te kōrero