Mokhethoa oa bobeli oa tokollo bakeng sa libmdbx v1.0 kamora lilemo tse hlano tsa nts'etsopele.

laebrari libmdbx ke setloholo se hlophisitsoeng bocha sa LMDB - polokelo ea lintlha tsa bohlokoa tse sebetsang hantle haholo, tse kentsoeng ka kopanelo.
Phetolelo ea hajoale ea v0.5 ke tokollo ea tekheniki, e tšoaeang ho phethoa ha lintlafatso life kapa life le ho fetela mokhahlelong oa tlhahlobo ea ho qetela ea sechaba le botsitso, ka ho thehoa ha tokollo ea pele e felletseng ea laeborari.

LMDB ke boleng bo tsebahalang ba transactional embedded key-value DBMS e thehiloeng ho sefate B+ ntle le ho rema lifate ka potlako, e lumellang sehlopha sa mekhoa e mengata ea mekhoa e mengata hore e sebetse ka tlhōlisano le ka mokhoa o tsotehang ka ho fetisisa ka polokelo ea boitsebiso e arolelanoang sebakeng sa heno (eseng marang-rang). Ka lehlakoreng le leng, MDBX e potlakile ebile e tšepahala ho feta LMDB, ha libmdbx e boloka likarolo tsohle tsa bohlokoa tsa moholo-holo oa eona, joalo ka ACID le ho bala ho sa thibeleng ka ho lekanya mela ho li-cores tsa CPU, hape ho eketsa tse 'maloa tse ncha.

Tlhaloso ea liphapang le ntlafatso ea libmdbx mabapi le LMDB e lokeloa ke sengoloa se arohaneng (se reriloeng ho phatlalatsoa ho Habré and Medium). Mona ho loketse ho bolela tse bohlokoa ka ho fetisisa le tse hlokomelehang:

  • Ha e le hantle, ho lebisoa tlhokomelo e eketsehileng ho boleng ba khoutu, liteko le ho hlahloba ka mokhoa o itekanetseng.
  • Taolo e kholo nakong ea ts'ebetso, ho tloha ho li-parameter ho ea ho tlhahlobo ea kahare ea meaho ea database.
  • Boikemisetso bo ikemetseng le taolo ea boholo ba database.
  • Foromo e le 'ngoe ea database bakeng sa likopano tsa 32-bit le 64-bit.
  • Khakanyo ea boholo ba lisampole ho ea ka mefuta (khakanyo ea lipotso tse fapaneng).
  • Ts'ehetso ea linotlolo tse kholo ka makhetlo a mabeli ho feta li-pancakes le boholo ba leqephe la database le khethiloeng ke mosebelisi.

Mokhethoa oa tokollo ea libmdbx ke phello ea qeto (sheba ka tlase) ea ho arola merero ea MDBX le MithrilDB ka Phato 2019. Ka nako e tšoanang, libmdbx e ile ea etsa qeto ea ho felisa sekoloto se seholo sa botekgeniki (se utloahalang) le ho tsitsisa laebrari. Ebile, ho entsoe makhetlo a 2-3 ho feta moo ho neng ho hakanngoa le ho reriloe qalong:

  • Ts'ehetso bakeng sa Mac OS le sethala sa boemo ba bobeli se kentsoe tšebetsong: FreeBSD, Solaris, DragonFly BSD, OpenBSD, NetBSD. Tšehetso ea AIX le HP-UX e ka eketsoa ha ho hlokahala.
  • Khoutu e ile ea hloekisoa ho sebelisoa Undefined Behavior Sanitizer le Address Sanitizer, litemoso tsohle ha u haha ​​ka -Wpedantic, litemoso tsohle tsa Coverity Static Analyzer, joalo-joalo li ile tsa felisoa.
  • Nchafatso Litlhaloso tsa API.
  • Khokahano ea khoutu ea mohloli molemong oa ho kengoa habonolo.
  • CEtsa tšehetso.
  • Ts'ehetso bakeng sa litšebelisano tse entsoeng sehlaheng.
  • Ho sebelisa bootid ho fumana hore na OS e se e qalile hape (setopo se litšila sa database).
  • Palo ea ho qetela ea maqephe a ntlafalitsoeng / a khale le tlhaiso-leseling e atolositsoeng ea transaction.
  • Kgetho MDBX_ACCEDE bakeng sa ho hokela polokelongtshedimosetso e seng e butswe ka mokgwa o dumellanang.
  • Sebelisa OFD thibela ha e fumaneha.
  • Backup e chesang ka phala.
  • Algorithm e ikhethileng ea ho hlopha ka hare (ho fihla ho makhetlo a 2-3 ka potlako ho feta qsort() le ho fihla ho 30% ka potlako ho feta std::sort()).
  • Boholo ba bolelele ba senotlolo bo ekelitsoe.
  • Taolo ea othomathike ea ho bala pele (leano la ho boloka lifaele tsa database mohopolong).
  • Boikemisetso bo matla le bo potlakileng ho feta ba boiketsetso.
  • Leano le nepahetseng haholoanyane la ho kopanya maqephe a lifate tsa B+.
  • Taolo ea litsamaiso tsa lifaele tseo e seng tsa lehae (NFS, Samba, joalo-joalo) ho thibela tšenyo ea database haeba e sebelisoa hampe.
  • Sehlopha sa liteko se atolositsoe.

Ntlafatso ea mofuta oa "e latelang" oa libmdbx e tla tsoelapele joalo ka projeke e fapaneng MithrilDB, athe vector ea nts'etsopele ea mofuta oa "hajoale" oa MDBX e reretsoe ho homisa sete ea likarolo le ho e tsitsisa. Qeto ena e entsoe ka mabaka a mararo:

  • Ha e lumellane ho hang: MithrilDB e hloka mofuta o fapaneng (o sa lumellaneng) oa faele ea database le API e fapaneng (e sa lumellaneng) ho kenya tšebetsong likarolo tsohle tse reriloeng.
  • Khoutu e ncha ea mohloli: Khoutu ea mohloli oa MithrilDB e entsoe ka laesense e ikemetseng ho tsoa ho LMDB, mme projeke ka boeona e reriloe ho phatlalatsoa tlasa laesense e fapaneng (e amohetsoeng ke KAPA HAEBA laesense Apache 2.0, eseng OpenLDAP Motheo).
  • Karohano e qoba pherekano e ka bang teng, e fana ka bonnete bo eketsehileng, 'me e netefatsa hore merero e na le tsela e ikemetseng ea ho ea pele.

MithrilDB, joalo ka MDBX, e boetse e thehiloe ho sefate B+ hape e tla ba le ts'ebetso e phahameng haholo, ha e ntse e tlosa mefokolo e mengata ea mantlha ea MDBX le LMDB. Haholo-holo, bothata ba "ho bala nako e telele", bo iponahatsang e le "ho ruruha" ha database ka lebaka la hore ts'ebetso ea lithōle e thibetsoe ke ho bala nako e telele, e tla felisoa. Likarolo tse ncha tsa MithrilDB li kenyelletsa:

  • ts'ehetso ea ho beha database mecheng ea litaba tse fapaneng: HDD, SSD le memori e sa fetoheng.
  • maqheka a nepahetseng bakeng sa "boleng" le "boleng bo tlase", bakeng sa "hot", "mofuthu" le "bata" data.
  • ho sebelisa sefate sa Merkle ho lekola botšepehi ba database.
  • tšebeliso ea boikhethelo ea WAL le ts'ebetso e phahameng haholo maemong a ngolang haholo le tiisetso ea botšepehi ba data.
  • Ho lokisoa ka botsoa ha data ho li-disk.

Source: linux.org.ru

Eketsa ka tlhaloso