I muri i nga tau e rima o te whakawhanaketanga, kua whakaputaina te kaitono tuku tuarua libmdbx 1.0

Wātea mo te whakamatautau i te kaitono tuarua mo nga whakaputanga whare pukapuka libmdbx me te whakatinanatanga o te putunga uara-uara-uara-mahi-mahi teitei. Ko te putanga o naianei (0.5) he whakaputanga hangarau, e tohu ana i te otinga o nga whakapainga me te whakawhiti ki te waahanga o te whakamatautau whakamutunga me te whakapumautanga o te iwi, me te hanganga o muri o te tukunga katoa o te whare pukapuka. waehere libmdbx tohaina e kua raihanatia i raro i te OpenLDAP Public License.

Ko te whare pukapuka MDBX he marau kua tino whakahoutia mai i LMDB — DBMS whakaurunga tauwhitinga o te karaehe "matua-uara" i runga rakau B+ kaore te raakau totika, e tuku ana i nga tukanga miro-maha ki te mahi whakataetae me te whai hua me te putunga korero (ehara i te whatunga). Ka huri, he tere ake, he pono ake te MDBX i a LMDB, i taua wa ka mau tonu nga ahuatanga matua katoa o tona tupuna, penei ACID me nga panui kore-aukati me te tauine raina puta noa i nga matua CPU.

Ko nga rereketanga tino nui i waenga i te MDBX me te LMDB:

  • Ko te tikanga, ka nui ake te aro ki te kounga o te waehere, te whakamatautau me te arowhai aunoa.
  • He nui ake te mana whakahaere i te wa e mahi ana, mai i te tirotiro i nga tawhā tae atu ki te arotake o roto o nga hanganga putunga raraunga.
  • Whakakotahi-aunoa me te whakahaere rahinga raraunga aunoa.
  • He whakatakotoranga raraunga kotahi mo nga huihuinga 32-bit me 64-bit.
  • Te whakatau tata o nga tauira pukapuka ma nga awhe (whakatau tata uiui awhe).
  • Tautoko mo nga taviri e rua te rahi ake i te panekeke me te rahi o te wharangi papaa raraunga ka taea e te kaiwhakamahi te whiriwhiri.

Ko te kaitono tuku libmdbx te hua o te whakatau i mahia i te marama o Akuhata 2019 ki te wehe i nga kaupapa MDBX me MithrilDB. I te wa ano, ka whakatau a libmdbx ki te whakakore i te nama hangarau (whakaaro) teitei me te whakapumau i te whare pukapuka. Inaa, 2-3 nga wa nui atu i mahia i roto i te huarahi kua whakaritea i te mea i whakatauhia i te tuatahi me te whakamahere:

  • Kua whakatinanahia te tautoko mo te macOS me te taumata tuarua: FreeBSD, Solaris, DragonFly BSD, OpenBSD, NetBSD. Ka taea te taapiri AIX me te tautoko HP-UX ina hiahiatia.
  • I whakakorehia te waehere ma te whakamahi i te Undefined Behavior Sanitizer me te Address Sanitizer, nga whakatupato katoa i te wa e hanga ana me "-Wpedantic", i whakakorehia nga whakatupato katoa a Coverity Static Analyzer, me etahi atu.
  • Whakahou Whakaahuatanga API.
  • Te hanumi (whakakotahi) o te waehere puna kia ngawari te whakauru.
  • Tautoko CMake.
  • Tautoko mo nga whakawhitinga kohanga.
  • Ma te whakamahi i te bootid ki te whakatau mena kua whakaara ano te OS (ka mutu te patengi raraunga paru).
  • Tatau mutunga-ki-mutunga o nga wharangi kua whakahoutia/tawhito me nga korero whakawhitinga whakawhitinga.
  • Kōwhiringa MDBX_ACCEDE mō te tūhono ki tētahi pātengi raraunga kua tuwhera i roto i te aratau hototahi.
  • Whakamahia OFD aukati ina watea.
  • Purua wera i roto i te paipa.
  • He pai ake te arotau i te algorithm o roto (tae atu ki te 2-3 wa tere ake i te "qsort()" me te 30% tere atu i te "std:: sort()").
  • Kua piki ake te roanga o te matua.
  • Te whakahaere aunoa mo te panui i mua (rautaki keteroki konae raraunga kei roto i te mahara).
  • He kaha ake, he tere ake te whakakotahi-aunoa.
  • He rautaki pai ake mo te hanumi i nga wharangi rakau B+.
  • Te whakahaere i nga punaha konae-kore-rohe (NFS, Samba, me etahi atu) hei aukati i te pakaru o te paataka korero mena ka he te whakamahi.
  • Kua whakawhānuihia te huinga o nga whakamatautau.

Ko te whakawhanaketanga o te putanga "panuku" o libmdbx ka haere tonu hei kaupapa motuhake MithrilDB, i te mea ko te waahanga whanaketanga o te putanga "naianei" o MDBX e whai ana ki te whakatio i te huinga ahuatanga me te whakapumau. I whakatauhia tenei whakatau mo nga take e toru:

  • Tino hotokore: Me hiahia a MithrilDB i tetahi whakatakotoranga konae raraunga (hotokore) me tetahi API rereke (hotokore) hei whakatinana i nga ahuatanga kua whakamaheretia.
  • Waehere puna hou: Ko te waehere puna MithrilDB kua raihanatia motuhake mai i LMDB, a ko te kaupapa ake kua whakaritea kia whakaputaina i raro i tetahi raihana rereke (kua whakaaetia e OR KI TE KORE Raihana Apache 2.0, ehara OpenLDAP Public Raihana).
  • Ko te wehenga ka karo i te rangirua pea, ka whakamohio ake i te tino tuturu me te whakarite huarahi motuhake mo nga kaupapa.

Ko te MithrilDB, penei i te MDBX, kei runga ano rakau B+ a ka whakaatu hoki i nga mahi tino nui, i te whakakore i te maha o nga ngoikoretanga taketake o MDBX me LMDB. Ina koa, ko te raruraru o te "panui roa", e whakaatu ana i a ia ano he "pupuhi" o te putunga korero na te mea ka aukatihia te tukatuka paru e nga whakawhitinga panui roa, ka whakakorehia. Ko nga ahuatanga hou o MithrilDB kei roto:

  • Tautoko mo te whakatakoto i te papaaarangi ki runga i te maha o nga purongo rereke: HDD, SSD me te mahara kore-kore.
  • Nga rautaki tino pai mo te "wariu" me te "iti-uara", mo te raraunga "wera", "mahana" me te "makariri".
  • Te whakamahi i te rakau Merkle ki te aro turuki i te tapatahi o te putunga raraunga.
  • Ko te whakamahi i te WAL me te tino whakapai ake i nga mahi i roto i nga ahuatanga tuhi-kaha me nga taurangi pono o te raraunga.
  • He mangere ki te tuku raraunga ki nga kōpae.

Source: opennet.ru

Tāpiri i te kōrero