Piştî pêşkeftina pênc salan, berendamê berdana libmdbx 1.0 ya duyemîn hate weşandin

Berdeste ji bo ceribandina berendamê duyemîn ji bo weşanên pirtûkxaneyê libmdbx bi pêkanîna databasek nirx-kîlîtê ya bi performansa bilind, tevlihev. Guhertoya heyî (0.5) serbestberdanek teknîkî ye, bidawîbûna her çêtirkirinan û derbasbûna qonaxa ceribandina dawîn û stabîlkirina giştî, bi damezrandina paşîn a yekem serbestberdana tevahî ya pirtûkxaneyê nîşan dide. koda libmdbx belav kirin ji hêla di bin lîsansa Giştî ya OpenLDAP de lîsanskirî ye.

Pirtûkxaneya MDBX forkek girîng a nûvekirî ye LMDB - DBMS-ya binavkirî ya danûstendinê ya çîna "kilît-nirx" li ser bingeha dara B+ bêyî têketina proaktîf, ku destûrê dide pêvajoyên pir-mijarî ku bi databasek herêmî ya hevpar (ne torê) bi pêşbazî û bi bandor bixebitin. Di encamê de, MDBX ji LMDB zûtir û pêbawertir e, û di heman demê de hemî taybetmendiyên sereke yên bav û kalê xwe digire, wek mînak TIRŞ û xwendinên ne-astengkirî bi pîvana xêzikî li seranserê navikên CPU-yê têne xwendin.

Cûdahiyên herî girîng ên di navbera MDBX û LMDB de:

  • Di bingeh de, bêtir bala xwe didin kalîteya kodê, ceribandin û kontrolên otomatîk.
  • Di dema xebatê de, ji kontrolkirina parametreyan bigire heya kontrolkirina hundurîn a strukturên databasê, bi girîngî bêtir kontrol kirin.
  • Kompêkirina otomatîk û rêveberiya mezinahiya databasa otomatîk.
  • Formatek databasa yekane ji bo civînên 32-bit û 64-bit.
  • Texmînkirina cildên nimûneyê li gorî rêzan (texmîna pirsiyariya rêzê).
  • Piştgiriya bişkojkên du caran ji pancakes mezintir û mezinahiya rûpela databasa ku ji hêla bikarhêner ve tê hilbijartin.

Namzedê berdana libmdbx encama biryarek e ku di Tebaxa 2019-an de hatî dayîn ku projeyên MDBX û MithrilDB ji hev veqetîne. Di heman demê de, libmdbx biryar da ku deynê teknîkî ya herî zêde (aqilmend) ji holê rake û pirtûkxaneyê aram bike. Di rastiyê de, 2-3 carî bêtir di rêça destnîşankirî de ji ya ku di destpêkê de hate texmîn kirin û plansaz kirin hatî çêkirin:

  • Piştgiriya ji bo macOS û platformên pileya duyemîn hatine bicîh kirin: FreeBSD, Solaris, DragonFly BSD, OpenBSD, NetBSD. Piştgiriya AIX û HP-UX dikare li gorî hewcedariyê were zêdekirin.
  • Kod bi karanîna Paqijkera Behavior a Nenaskirî û Paqijkera Navnîşanê hate paqij kirin, hemî hişyarî dema ku bi "-Wpedantic" ve hatî çêkirin, hemî hişyariyên Analyzera Statîk a Coverity, hwd hatin rakirin.
  • Nûvekirin Danasîna API.
  • Ji bo hêsankirina tevhevkirinê (hevkirina) koda çavkaniyê.
  • Piştgiriya CMake.
  • Piştgiriya ji bo danûstandinên hêlînê.
  • Bikaranîna bootid-ê ji bo destnîşankirina ka OS-ê ji nû ve hatî destpêkirin (rawestandina databasa qirêj).
  • Hejmartina dawiya-bi-dawî ya rûpelên nûvekirî / kevn û agahdariya danûstendinê ya dirêjkirî.
  • Vebijarka MDBX_ACCEDE ji bo girêdana bi databasek jixwe vekirî ya di moda lihevhatî de.
  • Bikar bînin astengkirina OFD dema ku heye.
  • Piştgiriya germ di boriyê de.
  • Algorîtmaya birêkûpêkkirina navxweyî ya xweşbînkirî ya pispor (heta 2-3 carî ji "qsort()" û heya% 30 ji "std:: sort()" zûtir zûtir).
  • Dirêjahiya keya herî zêde hatiye zêdekirin.
  • Kontrolkirina otomatîkî ya xwendina pêşiyê (stratejiya vegirtina pelê ya databasê di bîranînê de).
  • Kompakkirina otomatîkî ya êrîşkar û zûtir.
  • Stratejiyek çêtirîn çêtirîn ji bo yekkirina rûpelên dara B+.
  • Kontrolkirina pergalên pelan ên ne-herêmî (NFS, Samba, hwd.) da ku pêşî li zirara databasê bigire heke xelet were bikar anîn.
  • Koma testan hate berfireh kirin.

Pêşveçûna guhertoya "paşê" ya libmdbx dê wekî projeyek cûda berdewam bike MithrilDB, di heman demê de ku vektora pêşkeftinê ya guhertoya "niha" ya MDBX bi armanca cemidandina koma taybetmendiyê û aramkirina wê ye. Ev biryar ji ber sê sedeman hatiye dayîn:

  • Bi tevahî nehevaheng: MithrilDB ji bo pêkanîna hemî taybetmendiyên plansazkirî pêdivî ye ku pelê pelê databasek cûda (nehevgirtî) û API-yek cihêreng (nehevgirtî) hewce dike.
  • Koda çavkaniyê ya nû: Koda çavkaniya MithrilDB ji LMDB serbixwe hatî destûr kirin, û proje bixwe tê plan kirin ku di bin lîsansek cûda de were weşandin (pejirandin ji hêla An jî ger Lîsansa Apache 2.0, ne Lîsansa Giştî ya OpenLDAP).
  • Veqetandin ji tevliheviya potansiyel dûr dikeve, bêtir piştrast dike û rêyek serbixwe ji projeyan re peyda dike.

MithrilDB, mîna MDBX, jî li ser bingehê ye dara B+ û dê di heman demê de gelek kêmasiyên bingehîn ên MDBX û LMDB ji holê rabike, performansa pir bilind jî diyar dike. Bi taybetî, pirsgirêka "xwendinên dirêj", ku xwe wekî "werimandina" databasê nîşan dide ji ber vê yekê ku pêvajoya çopê ji hêla danûstandinên xwendina dirêj ve tê asteng kirin, dê ji holê rabe. Taybetmendiyên nû yên MithrilDB ev in:

  • Piştgiriya ji bo danîna databasê li ser çend medyayên heterojen: HDD, SSD û bîra ne-volatile.
  • Ji bo daneyên "germ", "germ" û "sar" stratejiyên çêtirîn ji bo "nirx" û "kêm-nirx".
  • Bikaranîna dara Merkle-ê ji bo şopandina yekbûna databasê.
  • Bikaranîna vebijarkî ya WAL û performansa girîng di senaryoyên nivîsandinê-dijwar de bi garantiya yekparebûna daneyê re çêtir kirin.
  • Lazy girtina daneyan li ser dîskê.

Source: opennet.ru

Add a comment