അഞ്ച് വർഷത്തെ വികസനത്തിന് ശേഷം രണ്ടാമത്തെ libmdbx v1.0 റിലീസ് കാൻഡിഡേറ്റ്.

ലൈബ്രറി libmdbx എൽ‌എം‌ഡി‌ബിയുടെ ഗണ്യമായി പുനർ‌രൂപകൽപ്പന ചെയ്‌ത പിൻഗാമിയാണ് - വളരെ ഉയർന്ന പ്രകടനമുള്ള, ഒതുക്കമുള്ള ഉൾച്ചേർത്ത കീ-മൂല്യം ഡാറ്റാബേസ്.
നിലവിലെ പതിപ്പ് v0.5 ഒരു സാങ്കേതിക റിലീസാണ്, ഏതെങ്കിലും മെച്ചപ്പെടുത്തലുകളുടെ പൂർത്തീകരണത്തെയും പൊതു അന്തിമ പരിശോധനയുടെയും സ്ഥിരതയുടെയും ഘട്ടത്തിലേക്കുള്ള പരിവർത്തനത്തെയും അടയാളപ്പെടുത്തുന്നു, ലൈബ്രറിയുടെ ആദ്യ പൂർണ്ണ പതിപ്പിന്റെ തുടർന്നുള്ള രൂപീകരണത്തോടെ.

എൽ.എം.ഡി.ബി ഇത് അടിസ്ഥാനമാക്കിയുള്ള വളരെ അറിയപ്പെടുന്ന ഇടപാട് ഉൾച്ചേർത്ത കീ-മൂല്യം DBMS ആണ് മരം B+ ഇല്ലാതെ സജീവമായ ലോഗിംഗ്, ഇത് പ്രാദേശികമായി പങ്കിട്ട (നെറ്റ്‌വർക്ക് അല്ല) ഡാറ്റാബേസിനൊപ്പം മത്സരാധിഷ്ഠിതമായും വളരെ കാര്യക്ഷമമായും പ്രവർത്തിക്കാൻ മൾട്ടി-ത്രെഡഡ് പ്രോസസ്സുകളുടെ ഒരു കൂട്ടത്തെ അനുവദിക്കുന്നു. അതാകട്ടെ, MDBX എൽഎംഡിബിയേക്കാൾ വേഗമേറിയതും വിശ്വസനീയവുമാണ്, അതേസമയം libmdbx അതിന്റെ പൂർവ്വികരുടെ എല്ലാ പ്രധാന സവിശേഷതകളും നിലനിർത്തുന്നു. എസിഐഡി കൂടാതെ സിപിയു കോറുകളിലുടനീളം ലീനിയർ സ്കെയിലിംഗ് ഉപയോഗിച്ച് നോൺ-ബ്ലോക്കിംഗ് റീഡുകൾ, കൂടാതെ നിരവധി പുതിയവ ചേർക്കുന്നു.

LMDB-യുമായി താരതമ്യപ്പെടുത്തുമ്പോൾ libmdbx-ന്റെ വ്യത്യാസങ്ങളുടെയും മെച്ചപ്പെടുത്തലുകളുടെയും വിവരണം ഒരു പ്രത്യേക ലേഖനം അർഹിക്കുന്നു (ഹബ്രെയിലും മീഡിയത്തിലും പ്രസിദ്ധീകരിക്കാൻ പദ്ധതിയിട്ടിരിക്കുന്നു). ഇവിടെ ഏറ്റവും പ്രധാനപ്പെട്ടതും ശ്രദ്ധേയവുമായത് പരാമർശിക്കുന്നത് ഉചിതമാണ്:

  • അടിസ്ഥാനപരമായി, കോഡ് ഗുണനിലവാരം, പരിശോധന, യാന്ത്രിക പരിശോധനകൾ എന്നിവയിൽ കൂടുതൽ ശ്രദ്ധ ചെലുത്തുന്നു.
  • പ്രവർത്തന സമയത്ത്, പരാമീറ്ററുകൾ പരിശോധിക്കുന്നത് മുതൽ ഡാറ്റാബേസ് ഘടനകളുടെ ആന്തരിക ഓഡിറ്റ് വരെ ഗണ്യമായി കൂടുതൽ നിയന്ത്രണം.
  • ഓട്ടോ-കോംപാക്റ്റിഫിക്കേഷനും ഓട്ടോമാറ്റിക് ഡാറ്റാബേസ് സൈസ് മാനേജ്മെന്റും.
  • 32-ബിറ്റ്, 64-ബിറ്റ് അസംബ്ലികൾക്കുള്ള ഒരൊറ്റ ഡാറ്റാബേസ് ഫോർമാറ്റ്.
  • ശ്രേണികൾ പ്രകാരം സാമ്പിൾ വലുപ്പം കണക്കാക്കൽ (റേഞ്ച് ക്വറി എസ്റ്റിമേഷൻ).
  • പാൻകേക്കുകളേക്കാൾ ഇരട്ടി വലിപ്പമുള്ള കീകൾക്കുള്ള പിന്തുണയും ഉപയോക്താക്കൾക്ക് തിരഞ്ഞെടുക്കാവുന്ന ഡാറ്റാബേസ് പേജ് വലുപ്പവും.

2019 ഓഗസ്റ്റിൽ MDBX, MithrilDB പ്രോജക്ടുകൾ വേർപെടുത്താനുള്ള തീരുമാനത്തിന്റെ (ചുവടെ കാണുക) ഫലമാണ് libmdbx റിലീസ് കാൻഡിഡേറ്റ്. അതേ സമയം, (യുക്തിസഹമായ) പരമാവധി സാങ്കേതിക കടം ഇല്ലാതാക്കാനും ലൈബ്രറി സ്ഥിരപ്പെടുത്താനും libmdbx തീരുമാനിച്ചു. വാസ്തവത്തിൽ, ആദ്യം കണക്കാക്കിയതും ആസൂത്രണം ചെയ്തതുമായതിനേക്കാൾ 2-3 മടങ്ങ് കൂടുതൽ നിയുക്ത ദിശയിൽ ചെയ്തു:

  • Mac OS, സെക്കൻഡ്-ടയർ പ്ലാറ്റ്‌ഫോമുകൾക്കുള്ള പിന്തുണ നടപ്പിലാക്കി: FreeBSD, Solaris, DragonFly BSD, OpenBSD, NetBSD. AIX, HP-UX പിന്തുണ ആവശ്യാനുസരണം ചേർക്കാവുന്നതാണ്.
  • നിർവചിക്കാത്ത ബിഹേവിയർ സാനിറ്റൈസറും അഡ്രസ് സാനിറ്റൈസറും ഉപയോഗിച്ച് കോഡ് സാനിറ്റൈസ് ചെയ്തു, -Wpedantic ഉപയോഗിച്ച് നിർമ്മിക്കുമ്പോൾ എല്ലാ മുന്നറിയിപ്പുകളും, എല്ലാ കവറിറ്റി സ്റ്റാറ്റിക് അനലൈസർ മുന്നറിയിപ്പുകളും മറ്റും ഒഴിവാക്കി.
  • അപ്ഡേറ്റ് ചെയ്യുക API വിവരണങ്ങൾ.
  • ഉൾച്ചേർക്കുന്നതിനുള്ള എളുപ്പത്തിനായി സോഴ്സ് കോഡിന്റെ സംയോജനം.
  • പിന്തുണയ്‌ക്കുക.
  • നെസ്റ്റഡ് ഇടപാടുകൾക്കുള്ള പിന്തുണ.
  • OS റീബൂട്ട് ചെയ്തിട്ടുണ്ടോ എന്ന് നിർണ്ണയിക്കാൻ bootid ഉപയോഗിക്കുന്നു (ഡേർട്ടി ഡാറ്റാബേസ് സ്റ്റോപ്പ്).
  • പുതുക്കിയ/പഴയ പേജുകളുടെയും വിപുലീകൃത ഇടപാട് വിവരങ്ങളുടെയും അവസാനം മുതൽ അവസാനം വരെ എണ്ണൽ.
  • അനുയോജ്യമായ മോഡിൽ ഇതിനകം തുറന്ന ഒരു ഡാറ്റാബേസിലേക്ക് കണക്റ്റുചെയ്യുന്നതിനുള്ള ഓപ്ഷൻ MDBX_ACCEDE.
  • ഉപയോഗിക്കുക OFD തടയൽ ലഭ്യമാകുമ്പോൾ.
  • പൈപ്പിലെ ചൂടുള്ള ബാക്കപ്പ്.
  • സ്പെഷ്യലൈസ്ഡ് ഒപ്റ്റിമൈസ്ഡ് ഇന്റേണൽ സോർട്ടിംഗ് അൽഗോരിതം (qsort() നേക്കാൾ 2-3 മടങ്ങ് വേഗതയും std::sort() എന്നതിനേക്കാൾ 30% വരെ വേഗതയും).
  • പരമാവധി കീ ദൈർഘ്യം വർദ്ധിപ്പിച്ചു.
  • മുന്നോട്ടുള്ള വായനയുടെ യാന്ത്രിക നിയന്ത്രണം (മെമ്മറിയിൽ ഡാറ്റാബേസ് ഫയൽ കാഷിംഗ് തന്ത്രം).
  • കൂടുതൽ ആക്രമണാത്മകവും വേഗതയേറിയതുമായ യാന്ത്രിക കോംപാക്റ്റിഫിക്കേഷൻ.
  • B+ ട്രീ പേജുകൾ ലയിപ്പിക്കുന്നതിനുള്ള കൂടുതൽ അനുയോജ്യമായ തന്ത്രം.
  • തെറ്റായി ഉപയോഗിച്ചാൽ ഡാറ്റാബേസ് കേടുപാടുകൾ തടയാൻ നോൺ-ലോക്കൽ ഫയൽ സിസ്റ്റങ്ങളുടെ (NFS, Samba, മുതലായവ) നിയന്ത്രണം.
  • ടെസ്റ്റുകളുടെ സെറ്റ് വിപുലീകരിച്ചു.

libmdbx-ന്റെ "അടുത്ത" പതിപ്പിന്റെ വികസനം ഒരു പ്രത്യേക പദ്ധതിയായി തുടരും മിത്രിൽഡിബി, അതേസമയം MDBX-ന്റെ "നിലവിലെ" പതിപ്പിന്റെ വികസന വെക്റ്റർ ഫീച്ചർ സെറ്റ് മരവിപ്പിക്കാനും അത് സ്ഥിരപ്പെടുത്താനും ലക്ഷ്യമിടുന്നു. മൂന്ന് കാരണങ്ങളാലാണ് ഈ തീരുമാനം എടുത്തത്:

  • പൂർണ്ണമായും പൊരുത്തമില്ലാത്തത്: MithrilDB-യ്ക്ക് ആസൂത്രിതമായ എല്ലാ സവിശേഷതകളും നടപ്പിലാക്കുന്നതിന് വ്യത്യസ്തമായ (അനുയോജ്യമല്ലാത്ത) ഡാറ്റാബേസ് ഫയൽ ഫോർമാറ്റും മറ്റൊരു (പൊരുത്തമില്ലാത്ത) API-യും ആവശ്യമാണ്.
  • പുതിയ സോഴ്‌സ് കോഡ്: MithrilDB സോഴ്‌സ് കോഡ് LMDB-ൽ നിന്ന് സ്വതന്ത്രമായി ലൈസൻസ് ചെയ്‌തിരിക്കുന്നു, കൂടാതെ പ്രോജക്റ്റ് തന്നെ മറ്റൊരു ലൈസൻസിന് കീഴിൽ പ്രസിദ്ധീകരിക്കാൻ പദ്ധതിയിട്ടിരിക്കുന്നു (അംഗീകരിച്ചത് അല്ലെങ്കിൽ IF ലൈസൻസ് അപ്പാച്ചെ 2.0പക്ഷേ ഇല്ല OpenLDAP ഫൗണ്ടേഷൻ).
  • വേർപിരിയൽ സാധ്യമായ ആശയക്കുഴപ്പം ഒഴിവാക്കുകയും കൂടുതൽ ഉറപ്പ് നൽകുകയും പ്രോജക്റ്റുകൾക്ക് ഒരു സ്വതന്ത്ര പാതയുണ്ടെന്ന് ഉറപ്പാക്കുകയും ചെയ്യുന്നു.

MDBX പോലെ MithrilDB-യും അടിസ്ഥാനമാക്കിയുള്ളതാണ് മരം B+ കൂടാതെ MDBX, LMDB എന്നിവയുടെ അടിസ്ഥാനപരമായ അനേകം പോരായ്മകൾ ഇല്ലാതാക്കിക്കൊണ്ട് വളരെ ഉയർന്ന പ്രകടനവും ഫീച്ചർ ചെയ്യും. പ്രത്യേകിച്ചും, "ദീർഘമായ വായന" എന്ന പ്രശ്നം, ദൈർഘ്യമേറിയ വായനാ ഇടപാടുകൾ വഴി മാലിന്യ സംസ്കരണം തടഞ്ഞു എന്ന വസ്തുത കാരണം ഡാറ്റാബേസിന്റെ "വീക്കം" ആയി സ്വയം പ്രത്യക്ഷപ്പെടുന്നു. പുതിയ MithrilDB സവിശേഷതകൾ ഉൾപ്പെടുന്നു:

  • നിരവധി വൈവിധ്യമാർന്ന മീഡിയകളിൽ ഡാറ്റാബേസ് സ്ഥാപിക്കുന്നതിനുള്ള പിന്തുണ: HDD, SSD, അസ്ഥിരമല്ലാത്ത മെമ്മറി.
  • "മൂല്യമുള്ളത്", "കുറഞ്ഞ മൂല്യം", "ചൂടുള്ള", "ഊഷ്മളമായ", "തണുത്ത" ഡാറ്റ എന്നിവയ്ക്കുള്ള ഒപ്റ്റിമൽ തന്ത്രങ്ങൾ.
  • ഡാറ്റാബേസ് സമഗ്രത നിരീക്ഷിക്കാൻ മെർക്കൽ ട്രീ ഉപയോഗിക്കുന്നു.
  • WAL-ന്റെ ഓപ്‌ഷണൽ ഉപയോഗവും എഴുത്ത്-തീവ്രതയുള്ള സാഹചര്യങ്ങളിലും ഡാറ്റാ ഇന്റഗ്രിറ്റി ഗ്യാരന്റികളിലും ഗണ്യമായ ഉയർന്ന പ്രകടനവും.
  • ഡിസ്കുകളിലെ ഡാറ്റയുടെ അലസമായ ക്യാച്ച്-അപ്പ് ഫിക്സേഷൻ.

അവലംബം: linux.org.ru

ഒരു അഭിപ്രായം ചേർക്കുക