ఐదు సంవత్సరాల అభివృద్ధి తర్వాత libmdbx v1.0 కోసం రెండవ విడుదల అభ్యర్థి.

గ్రంధాలయం libmdbx LMDB యొక్క గణనీయంగా పునఃరూపకల్పన చేయబడిన వారసుడు - అత్యంత అధిక-పనితీరు గల, కాంపాక్ట్ ఎంబెడెడ్ కీ-విలువ డేటాబేస్.
ప్రస్తుత వెర్షన్ v0.5 అనేది సాంకేతిక విడుదల, ఏదైనా మెరుగుదలలు పూర్తయినట్లు మరియు పబ్లిక్ ఫైనల్ టెస్టింగ్ మరియు స్టెబిలైజేషన్ దశకు మారడం, లైబ్రరీ యొక్క మొదటి పూర్తి విడుదల తర్వాత ఏర్పడటం.

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

LMDBకి సంబంధించి libmdbx యొక్క తేడాలు మరియు మెరుగుదలల వివరణ ప్రత్యేక కథనానికి అర్హమైనది (హబ్రే మరియు మీడియంలో ప్రచురించబడాలని ప్రణాళిక చేయబడింది). ఇక్కడ చాలా ముఖ్యమైన మరియు గుర్తించదగిన వాటిని పేర్కొనడం సముచితం:

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

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

  • Mac OS మరియు రెండవ-స్థాయి ప్లాట్‌ఫారమ్‌లకు మద్దతు అమలు చేయబడింది: 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 లైసెన్స్ అపాచీ 2.0కానీ కాదు OpenLDAP ఫౌండేషన్).
  • విభజన సంభావ్య గందరగోళాన్ని నివారిస్తుంది, మరింత నిశ్చయతను అందిస్తుంది మరియు ప్రాజెక్ట్‌లు స్వతంత్ర మార్గాన్ని కలిగి ఉన్నాయని నిర్ధారిస్తుంది.

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

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

మూలం: linux.org.ru

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