ఐదు సంవత్సరాల అభివృద్ధి తర్వాత, రెండవ libmdbx 1.0 విడుదల అభ్యర్థి ప్రచురించబడింది

అందుబాటులో లైబ్రరీ విడుదలల కోసం రెండవ అభ్యర్థిని పరీక్షించడం కోసం libmdbx అధిక-పనితీరు, కాంపాక్ట్ ఎంబెడెడ్ కీ-విలువ డేటాబేస్ అమలుతో. ప్రస్తుత వెర్షన్ (0.5) అనేది సాంకేతిక విడుదల, ఏదైనా మెరుగుదలలు పూర్తయినట్లు మరియు పబ్లిక్ ఫైనల్ టెస్టింగ్ మరియు స్టెబిలైజేషన్ దశకు మారడాన్ని సూచిస్తుంది, లైబ్రరీ యొక్క మొదటి పూర్తి విడుదల తర్వాత ఏర్పడుతుంది. libmdbx కోడ్ ద్వారా పంపిణీ చేయబడింది OpenLDAP పబ్లిక్ లైసెన్స్ క్రింద లైసెన్స్ పొందింది.

MDBX లైబ్రరీ నుండి గణనీయంగా సవరించబడిన ఫోర్క్ LMDB — ఆధారంగా "కీ-విలువ" తరగతి యొక్క లావాదేవీ ఎంబెడెడ్ DBMS చెట్టు B+ లేకుండా ప్రోయాక్టివ్ లాగింగ్, ఇది స్థానికంగా భాగస్వామ్యం చేయబడిన (నెట్‌వర్క్ కాదు) డేటాబేస్‌తో పోటీగా మరియు సమర్ధవంతంగా పనిచేయడానికి బహుళ-థ్రెడ్ ప్రక్రియలను అనుమతిస్తుంది. ప్రతిగా, MDBX LMDB కంటే వేగవంతమైనది మరియు నమ్మదగినది మరియు అదే సమయంలో దాని పూర్వీకుల యొక్క అన్ని ముఖ్య లక్షణాలను కలిగి ఉంటుంది, ACID మరియు CPU కోర్ల అంతటా లీనియర్ స్కేలింగ్‌తో నాన్-బ్లాకింగ్ రీడ్‌లు.

MDBX మరియు LMDB మధ్య అత్యంత ముఖ్యమైన తేడాలు:

  • ప్రాథమికంగా, కోడ్ నాణ్యత, పరీక్ష మరియు స్వయంచాలక తనిఖీలకు ఎక్కువ శ్రద్ధ చెల్లించబడుతుంది.
  • పారామితులను తనిఖీ చేయడం నుండి డేటాబేస్ నిర్మాణాల అంతర్గత ఆడిట్ వరకు ఆపరేషన్ సమయంలో గణనీయంగా ఎక్కువ నియంత్రణ.
  • ఆటో-కాంపాక్టిఫికేషన్ మరియు ఆటోమేటిక్ డేటాబేస్ సైజ్ మేనేజ్‌మెంట్.
  • 32-బిట్ మరియు 64-బిట్ అసెంబ్లీల కోసం ఒకే డేటాబేస్ ఫార్మాట్.
  • పరిధుల వారీగా నమూనా వాల్యూమ్‌ల అంచనా (పరిధి ప్రశ్న అంచనా).
  • పాన్‌కేక్‌ల కంటే రెండు రెట్లు పెద్ద కీలు మరియు వినియోగదారు-ఎంచుకోదగిన డేటాబేస్ పేజీ పరిమాణం కోసం మద్దతు.

MDBX మరియు MithrilDB ప్రాజెక్ట్‌లను వేరు చేయడానికి ఆగస్టు 2019లో తీసుకున్న నిర్ణయం ఫలితంగా libmdbx విడుదల క్యాండిడేట్ ఏర్పడింది. అదే సమయంలో, libmdbx (హేతుబద్ధమైన) గరిష్ట సాంకేతిక రుణాన్ని తొలగించాలని మరియు లైబ్రరీని స్థిరీకరించాలని నిర్ణయించింది. వాస్తవానికి, ముందుగా అంచనా వేయబడిన మరియు ప్రణాళిక చేయబడిన దానికంటే 2-3 రెట్లు ఎక్కువ నిర్దేశించిన దిశలో జరిగింది:

  • MacOS మరియు రెండవ-స్థాయి ప్లాట్‌ఫారమ్‌లకు మద్దతు అమలు చేయబడింది: FreeBSD, Solaris, DragonFly BSD, OpenBSD, NetBSD. AIX మరియు HP-UX మద్దతు అవసరమైన విధంగా జోడించబడుతుంది.
  • అన్‌డిఫైన్డ్ బిహేవియర్ శానిటైజర్ మరియు అడ్రస్ శానిటైజర్‌ని ఉపయోగించి కోడ్ శానిటైజ్ చేయబడింది, “-Wpedantic”తో నిర్మించేటప్పుడు అన్ని హెచ్చరికలు, అన్ని కవరిటీ స్టాటిక్ ఎనలైజర్ హెచ్చరికలు మొదలైనవి తొలగించబడ్డాయి.
  • నవీకరించు API వివరణలు.
  • పొందుపరిచే సౌలభ్యం కోసం సోర్స్ కోడ్ యొక్క విలీనం (సమ్మేళనం).
  • CMకే మద్దతు.
  • సమూహ లావాదేవీలకు మద్దతు.
  • OS రీబూట్ అయిందో లేదో తెలుసుకోవడానికి bootidని ఉపయోగించడం (డర్టీ డేటాబేస్ స్టాప్).
  • నవీకరించబడిన/పాత పేజీలు మరియు విస్తరించిన లావాదేవీల సమాచారం యొక్క ఎండ్-టు-ఎండ్ లెక్కింపు.
  • అనుకూల మోడ్‌లో ఇప్పటికే తెరిచిన డేటాబేస్‌కు కనెక్ట్ చేయడానికి MDBX_ACCEDE ఎంపిక.
  • ఉపయోగం OFD నిరోధించడం అందుబాటులో ఉన్నప్పుడు.
  • పైపులో హాట్ బ్యాకప్.
  • ప్రత్యేకమైన ఆప్టిమైజ్ చేయబడిన అంతర్గత క్రమబద్ధీకరణ అల్గోరిథం (“qsort()” కంటే 2-3 రెట్లు వేగంగా మరియు “std::sort()” కంటే 30% వరకు వేగంగా).
  • గరిష్ట కీ పొడవు పెంచబడింది.
  • ముందుకు చదవడం యొక్క స్వయంచాలక నియంత్రణ (మెమొరీలో డేటాబేస్ ఫైల్ కాషింగ్ వ్యూహం).
  • మరింత దూకుడు మరియు వేగవంతమైన ఆటో-కాంపాక్టిఫికేషన్.
  • B+ ట్రీ పేజీలను విలీనం చేయడానికి మరింత అనుకూలమైన వ్యూహం.
  • తప్పుగా ఉపయోగించినట్లయితే డేటాబేస్ దెబ్బతినకుండా నిరోధించడానికి స్థానికేతర ఫైల్ సిస్టమ్స్ (NFS, Samba, మొదలైనవి) నియంత్రణ.
  • పరీక్షల సెట్ విస్తరించబడింది.

libmdbx యొక్క "తదుపరి" సంస్కరణ అభివృద్ధి ప్రత్యేక ప్రాజెక్ట్‌గా కొనసాగుతుంది మిత్రిల్డిబి, MDBX యొక్క “ప్రస్తుత” సంస్కరణ యొక్క డెవలప్‌మెంట్ వెక్టర్ ఫీచర్ సెట్‌ను స్తంభింపజేయడం మరియు దానిని స్థిరీకరించడం లక్ష్యంగా పెట్టుకుంది. ఈ నిర్ణయం మూడు కారణాల వల్ల తీసుకోబడింది:

  • పూర్తిగా అననుకూలమైనది: ప్రణాళికాబద్ధమైన అన్ని లక్షణాలను అమలు చేయడానికి MithrilDBకి వేరే (అనుకూలమైన) డేటాబేస్ ఫైల్ ఫార్మాట్ మరియు వేరే (అనుకూలమైన) API అవసరం.
  • కొత్త సోర్స్ కోడ్: MithrilDB సోర్స్ కోడ్ LMDB నుండి స్వతంత్రంగా లైసెన్స్ చేయబడింది మరియు ప్రాజెక్ట్ వేరే లైసెన్సు క్రింద ప్రచురించబడటానికి ప్రణాళిక చేయబడింది (ఆమోదించినది లేదా IF Apache 2.0 లైసెన్స్, కాదు OpenLDAP పబ్లిక్ లైసెన్స్).
  • విభజన సంభావ్య గందరగోళాన్ని నివారిస్తుంది, మరింత నిశ్చయతను పరిచయం చేస్తుంది మరియు ప్రాజెక్ట్‌ల కోసం స్వతంత్ర మార్గాన్ని నిర్ధారిస్తుంది.

MDBX వంటి MithrilDB కూడా ఆధారపడి ఉంటుంది చెట్టు B+ మరియు MDBX మరియు LMDB యొక్క అనేక ప్రాథమిక ప్రతికూలతలను తొలగిస్తూ, చాలా అధిక పనితీరును కూడా కలిగి ఉంటుంది. ప్రత్యేకించి, సుదీర్ఘ పఠన లావాదేవీల ద్వారా చెత్త ప్రాసెసింగ్ నిరోధించబడినందున డేటాబేస్ యొక్క "వాపు"గా వ్యక్తమయ్యే "లాంగ్ రీడ్" సమస్య తొలగించబడుతుంది. కొత్త MithrilDB లక్షణాలు:

  • డేటాబేస్ను అనేక వైవిధ్య మాధ్యమాలలో ఉంచడానికి మద్దతు: HDD, SSD మరియు అస్థిర మెమరీ.
  • "విలువైన" మరియు "తక్కువ-విలువ" కోసం, "హాట్", "వెచ్చని" మరియు "చల్లని" డేటా కోసం సరైన వ్యూహాలు.
  • డేటాబేస్ సమగ్రతను పర్యవేక్షించడానికి మెర్కిల్ ట్రీని ఉపయోగించడం.
  • WAL యొక్క ఐచ్ఛిక ఉపయోగం మరియు డేటా సమగ్రత హామీలతో వ్రాత-ఇంటెన్సివ్ దృశ్యాలలో గణనీయంగా మెరుగైన పనితీరు.
  • లేజీ క్యాచ్-అప్ డిస్క్‌లకు డేటాను కమిట్ చేయడం.

మూలం: opennet.ru

ఒక వ్యాఖ్యను జోడించండి