అధిక-పనితీరు పొందుపరిచిన DBMS libmdbx విడుదల 0.11.3

అధిక-పనితీరు గల కాంపాక్ట్ ఎంబెడెడ్ కీ-విలువ డేటాబేస్ అమలుతో libmdbx 0.11.3 (MDBX) లైబ్రరీ విడుదల చేయబడింది. libmdbx కోడ్ OpenLDAP పబ్లిక్ లైసెన్స్ క్రింద లైసెన్స్ చేయబడింది. అన్ని ప్రస్తుత ఆపరేటింగ్ సిస్టమ్‌లు మరియు ఆర్కిటెక్చర్‌లకు అలాగే రష్యన్ ఎల్బ్రస్ 2000 మద్దతు ఉంది. 2021 చివరిలో, libmdbx రెండు వేగవంతమైన Ethereum క్లయింట్‌లలో నిల్వ బ్యాకెండ్‌గా ఉపయోగించబడుతుంది - Erigon మరియు కొత్త “షార్క్”, ఇది అందుబాటులో ఉన్న ప్రకారం సమాచారం, అత్యధిక పనితీరు కలిగిన Ethereum క్లయింట్.

చారిత్రాత్మకంగా, libmdbx అనేది LMDB DBMS యొక్క లోతైన పునర్నిర్మాణం మరియు విశ్వసనీయత, ఫీచర్ సెట్ మరియు పనితీరులో దాని పూర్వీకుల కంటే మెరుగైనది. LMDBతో పోలిస్తే, libmdbx కోడ్ నాణ్యత, API స్థిరత్వం, పరీక్ష మరియు స్వయంచాలక తనిఖీలపై చాలా ప్రాధాన్యతనిస్తుంది. కొన్ని రికవరీ సామర్థ్యాలతో డేటాబేస్ నిర్మాణం యొక్క సమగ్రతను తనిఖీ చేయడానికి ఒక యుటిలిటీ సరఫరా చేయబడింది.

సాంకేతికత వారీగా, libmdbx CPU కోర్ల అంతటా లీనియర్ స్కేలింగ్‌తో ACID, బలమైన మార్పు సీరియలైజేషన్ మరియు నాన్-బ్లాకింగ్ రీడ్‌లను అందిస్తుంది. ఆటో-కాంపాక్టిఫికేషన్, ఆటోమేటిక్ డేటాబేస్ సైజ్ మేనేజ్‌మెంట్ మరియు రేంజ్ క్వెరీ అంచనాకు మద్దతు ఉంది. 2016 నుండి, ప్రాజెక్ట్ పాజిటివ్ టెక్నాలజీస్ ద్వారా నిధులు పొందింది మరియు 2017 నుండి దాని ఉత్పత్తులలో ఉపయోగించబడుతోంది.

libmdbx రస్ట్, హాస్కెల్, పైథాన్, నోడ్జెఎస్, రూబీ, గో మరియు నిమ్ కోసం C++ API, అలాగే ఔత్సాహికుల-మద్దతు గల భాషా బైండింగ్‌లను అందిస్తుంది.

అక్టోబర్ 11న మునుపటి వార్తల నుండి ప్రధాన ఆవిష్కరణలు, మెరుగుదలలు మరియు దిద్దుబాట్లు జోడించబడ్డాయి:

  • C++ API ఉపయోగం కోసం సిద్ధంగా ఉన్నట్లు పరిగణించబడుతుంది.
  • భారీ లావాదేవీలు జరుపుతున్నప్పుడు GC డేటా యొక్క నవీకరణ గణనీయంగా వేగవంతం చేయబడింది, ఇది Ethereum పర్యావరణ వ్యవస్థలో libmdbxని ఉపయోగిస్తున్నప్పుడు చాలా ముఖ్యమైనది.
  • డేటాబేస్ ఫార్మాట్ యొక్క అంతర్గత సంతకం స్వయంచాలక నవీకరణకు మద్దతుగా మార్చబడింది, ఇది వినియోగదారులకు పూర్తిగా పారదర్శకంగా ఉంటుంది. ప్రస్తుత సంస్కరణల ద్వారా రికార్డ్ చేయబడిన లావాదేవీలను చదవడానికి లైబ్రరీ యొక్క పాత వెర్షన్‌లను ఉపయోగించినప్పుడు డేటాబేస్ అవినీతి గురించి తప్పుడు-సానుకూల సందేశాలను తొలగించడానికి ఇది మిమ్మల్ని అనుమతిస్తుంది.
  • mdbx_env_get_syncbytes(), mdbx_env_get_syncperiod() మరియు mdbx_env_get_syncbytes() ఫంక్షన్‌లు జోడించబడ్డాయి. MDBX_SET_UPPERBOUND ఆపరేషన్‌కు మద్దతు జోడించబడింది.
  • C++ 11/14/17/20 మోడ్‌లలో అన్ని మద్దతు ఉన్న కంపైలర్‌లతో నిర్మించేటప్పుడు అన్ని హెచ్చరికలు తొలగించబడ్డాయి. లెగసీ కంపైలర్‌లతో అనుకూలత నిర్ధారించబడింది: CentOS/RHEL 3.9 కోసం cdevtoolset-4.8ని ఉపయోగించే అసెంబ్లీతో సహా 9 నుండి క్లాంగ్, 7 నుండి gcc ప్రారంభమవుతుంది.
  • mdbx_chk యుటిలిటీని ఉపయోగించి నిర్దిష్ట మెటా పేజీకి మాన్యువల్‌గా మారిన తర్వాత మెటా పేజీ వైరుధ్యం యొక్క అవకాశం పరిష్కరించబడింది.
  • లెగసీ మెటా పేజీలను ఓవర్‌రైట్ చేస్తున్నప్పుడు ఊహించని MDBX_PROBLEM లోపం పరిష్కరించబడింది.
  • MDBX_GET_BOTH అభ్యర్థనను ప్రాసెస్ చేస్తున్నప్పుడు సరిగ్గా సరిపోలిన సందర్భంలో MDBX_NOTFOUND తిరిగి ఇవ్వబడుతుంది.
  • కెర్నల్‌తో ఇంటర్‌ఫేస్‌ల వివరణలతో హెడర్ ఫైల్‌లు లేనప్పుడు Linuxలో కంపైలేషన్ లోపం పరిష్కరించబడింది.
  • MDBX_SHRINK_ALLOWED అంతర్గత ఫ్లాగ్ మరియు MDBX_ACCEDE ఎంపిక మధ్య వైరుధ్యం పరిష్కరించబడింది.
  • అనేక అనవసరమైన నిర్థారణ తనిఖీలు తొలగించబడ్డాయి.
  • mdbx_env_set_option() ఫంక్షన్ నుండి MDBX_RESULT_TRUE యొక్క ఊహించని రాబడి స్థిరపడింది.
  • మొత్తంగా, 90 ఫైల్‌లకు 25 కంటే ఎక్కువ మార్పులు చేయబడ్డాయి, ~ 1300 పంక్తులు జోడించబడ్డాయి, ~ 600 తొలగించబడ్డాయి.

మూలం: opennet.ru

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