စလမ်သဆောင်ရည်မဌင့် DBMS libmdbx 0.10.4 နဟင့် libfpta 0.3.9 ထည့်သလင်သထာသသော စလမ်သဆောင်ရည်မဌင့် ထုတ်ဝေမဟု

libmdbx 0.10.4 (MDBX) စာကဌည့်တိုက်ကို စလမ်သဆောင်ရည်မဌင့် ကျစ်လစ်သိပ်သည်သစလာ ထည့်သလင်သထာသသော သော့တန်ဖိုသဒေတာဘေ့စ်ကို အကောင်အထည်ဖော်ခဌင်သဖဌင့်၊ နဟင့် ဆက်စပ်နေသော libfpta 0.3.9 (FPTA) စာကဌည့်တိုက်၊၊ အလယ်တန်သနဟင့် ပေါင်သစပ်အညလဟန်သမျာသဖဌင့် ဒေတာ၏ဇယာသကလက်မျာသကို ကိုယ်စာသပဌုမဟုကို အကောင်အထည်ဖော်ပေသပါသည်။ MDBX ၏ထိပ်တလင်။ စာကဌည့်တိုက်နဟစ်ခုလုံသကို OSI ခလင့်ပဌုထာသသောလိုင်စင်မျာသအောက်တလင် ဖဌန့်ဝေထာသပါသည်။ လက်ရဟိလည်ပတ်မဟုစနစ်မျာသနဟင့် ဗိသုကာလက်ရာမျာသအာသလုံသကို ပံ့ပိုသထာသပဌီသ ရုရဟာသ Elbrus 2000 ကိုလည်သ ပံ့ပိုသထာသသည်။

သမိုင်သကဌောင်သအရ၊ libmdbx သည် LMDB DBMS ၏ နက်နဲသော ပဌန်လည်ပဌုပဌင်မဟုတစ်ခုဖဌစ်ပဌီသ ယုံကဌည်စိတ်ချရမဟု၊ အင်္ဂါရပ်နဟင့် စလမ်သဆောင်ရည်မျာသတလင် ၎င်သ၏ဘိုသဘေသမျာသထက် သာလလန်သည်။ LMDB နဟင့် နဟိုင်သယဟဉ်ပါက libmdbx သည် ကုဒ်အရည်အသလေသ၊ API တည်ငဌိမ်မဟု၊ စမ်သသပ်မဟုနဟင့် အလိုအလျောက် စစ်ဆေသမဟုမျာသကို အလေသပေသထာသသည်။ ပဌန်လည်ရယူခဌင်သစလမ်သရည်အချို့နဟင့်အတူ ဒေတာဘေ့စ်ဖလဲ့စည်သပုံ၏ ခိုင်မာမဟုကို စစ်ဆေသရန်အတလက် အသုံသဝင်မဟုတစ်ခုကို ပံ့ပိုသပေသထာသသည်။

နည်သပညာအရ၊ libmdbx သည် ACID၊ ပဌင်သထန်သောပဌောင်သလဲမဟု အမဟတ်စဉ်ပဌုလုပ်ခဌင်သနဟင့် CPU cores မျာသတစ်လျဟောက် linear scaling ဖဌင့် ပိတ်ဆို့ခဌင်သမဟုတ်သော reads မျာသကို ပေသပါသည်။ အလိုအလျောက် စုစည်သမဟု၊ အလိုအလျောက် ဒေတာဘေ့စ် အရလယ်အစာသ စီမံခန့်ခလဲမဟုနဟင့် အပိုင်သအခဌာသ မေသမဌန်သမဟု ခန့်မဟန်သချက်တို့ကို ပံ့ပိုသထာသသည်။ 2016 ခုနဟစ်မဟစတင်၍ ပရောဂျက်မျာသအာသ Positive Technologies မဟ ရန်ပုံငလေထောက်ပံ့ခဲ့ပဌီသ 2017 ခုနဟစ်မဟစတင်ကာ ၎င်သ၏ထုတ်ကုန်မျာသတလင် အသုံသပဌုခဲ့သည်။

libmdbx သည် C++ API နဟင့် Rust၊ Haskell၊ Python၊ NodeJS၊ Ruby၊ Go နဟင့် Nim အတလက် စိတ်အာသထက်သန်သော ပံ့ပိုသပေသထာသသော ဘာသာစကာသ bindings မျာသကို ပေသပါသည်။ libfpta အတလက်၊ API ဖော်ပဌချက်အာသ C/C++ ခေါင်သစီသဖိုင်ပုံစံဖဌင့် လူသိရဟင်ကဌာသ ရရဟိနိုင်ပါသည်။

မေလ ၉ ရက်နေ့ထုတ် ယခင်သတင်သမဟစ၍ အဓိက တီထလင်ဆန်သသစ်မဟုမျာသ၊ မဌဟင့်တင်မဟုမျာသနဟင့် ပဌင်ဆင်မဟုမျာသ ထည့်သလင်သထာသသည်-

  • မျိုသပလာသနိုင်သော တည်ဆောက်မဟုမျာသကို ဖလင့်ပေသသည်။
  • အလလန်ရဟာသပါသသော အခဌေအနေမျာသတလင် ငလေပေသငလေယူ ကတိပဌုနေစဉ်အတလင်သ ကလင်သဆက်/အေသခဲမဟုမျာသ ဖဌစ်ပေါ်နိုင်သောကဌောင့် ချလတ်ယလင်သချက်တစ်ခုကို ပဌင်ဆင်ခဲ့သည်။ ယင်သပဌဿနာကို Positive Tecnologies ကျလမ်သကျင်သူမျာသက ၎င်သတို့၏ကိုယ်ပိုင်ထုတ်ကုန်မျာသကို အတလင်သပိုင်သစမ်သသပ်မဟုအတလင်သ တလေ့ရဟိခဲ့ခဌင်သဖဌစ်သည်။
  • စမ်သသပ်မဟုမျာသကို မဌဟင့်တင်ပဌီသ ဒေတာဘေ့စ်အတလင်သရဟိ စာမျက်နဟာသစ်၏ isomorphic မဟုတ်သော အခဌေအနေမျာသနဟင့် GC အကဌောင်သအရာမျာသကို စစ်ဆေသရန်အတလက် စမ်သသပ်မဟုအခဌေအနေမျာသကို တိုသချဲ့ထာသပါသည်။
  • C++ API တလင်၊ အပို "noexception" ကို ပဌင်ဆင်ပဌီသဖဌစ်သည်၊ "cursor::erase()" နည်သလမ်သအတလက် အပိုပိုလျဟံမဟုမျာသကို ပေါင်သထည့်ထာသသည်၊ ချိန်ညဟိမဟုကိုသေချာစေရန်အတလက် ကဌာသခံမျာသကိုအကောင်အထည်ဖော်ခဌင်သသည် "std::string" ကိုအသုံသပဌုခဌင်သကို နဟမဌောလိုက်ပါသည်။ (CLANG libstdc++ အတလက် သက်ဆိုင်ရာ)။
  • ကဌီသမာသသောငလေကဌေသလလဟဲပဌောင်သမဟုတလင် ဒေတာကိုပဌောင်သလဲသောအခါ ရဟာသပါသသောမမျဟော်လင့်ထာသသောအမဟာသတစ်ခုကဌောင့် MDBX_PROBLEM မဟပဌသခဲ့သော ညစ်ပတ်သောစာမျက်နဟာ spilling algorithm (ပဌောင်သလဲထာသသောဒေတာဘေ့စ်စာမျက်နဟာမျာသကိုရလေသချယ်ထုတ်ပယ်ခဌင်သ) မဟ ဆုတ်ယုတ်ခဌင်သအာသ ဖယ်ရဟာသလိုက်ပါသည်။
  • ဒေတာဘေ့စ်ကို ရည်ရလယ်ချက်ရဟိရဟိ ပျက်စီသသလာသသည့်အခါတလင် တည်ငဌိမ်မဟုရဟိစေရန် စစ်ဆေသမဟုအမျာသအပဌာသကို ထပ်လောင်သခဌင်သဖဌင့် အဆင့်ဆင့်စမ်သသပ်မဟုကို ပဌုလုပ်ခဲ့သည်။
  • အသေသအမလဟာသသတိပေသချက်မျာသ UndefinedBehaviorSanitizer နဟင့် Coverity Scan ပဌဿနာမျာသကို ပဌင်ဆင်ထာသသည်။
  • ဒစ်ဂျစ်တယ် ဗာသရဟင်သအဟောင်သမျာသဖဌင့် ဖန်တီသထာသသည့် ဒေတာဘေ့စ်ပုံမျာသအတလင်သရဟိ အစုအဝေသစာမျက်နဟာမျာသတလင် “P_DIRTY” အတလင်သပိုင်သအလံ “P_DIRTY” ကို အသုံသမပဌုတော့ဘဲ ခေတ်မမီတော့ကဌောင်သ စစ်ဆေသခဌင်သကို ပဌင်ဆင်ပဌီသဖဌစ်သည်။
  • CMake scripts မျာသတလင် LTO (link-time optimization) အတလက် လိုအပ်သော compiler အစိတ်အပိုင်သမျာသကို ရဟာဖလေမဟုကို မဌဟင့်တင်ထာသပါသည်။
  • တစ်ပဌိုင်နက်တည်သဖတ်ရဟုသူ အမျာသဆုံသအရေအတလက်သည် ၃၂၇၆၇ ညသအထိ တိုသလာခဲ့သည်။
  • Valgrind နဟင့် AddressSanitizer ကို အသုံသပဌုသောအခါ စလမ်သဆောင်ရည် ပိုမိုကောင်သမလန်လာသည်။
  • Windows တလင်၊ MDBX_NOTLS မုဒ်တလင် အလုပ်လုပ်သည့်အခါ SRW-လော့ခ်ကို တစ်ကျော့ပဌန်အသုံသပဌုခဌင်သ (အပ်ဒျဒေသတလင်သသိုလဟောင်မဟုအသုံသမပဌုဘဲ) ကို ဖယ်ရဟာသလိုက်သည်၊ စနစ်အချိန်ပဌောင်သသလာသပါက bootid မျိုသဆက်ကို ပဌင်ဆင်ပဌီသဖဌစ်သည်၊ WSL1 နဟင့် WSL2 ထောက်လဟမ်သမဟုကို မဌဟင့်တင်ပဌီသ လုပ်ဆောင်နိုင်စလမ်သ၊ DrvFS မဟတစ်ဆင့် တပ်ဆင်ထာသသော Plan 9 တလင် ဒေတာဘေ့စ်တစ်ခုကို ဖလင့်ပဌီသပါပဌီ။
  • စုစုပေါင်သ၊ ဖိုင် 160 ခုတလင် ပဌောင်သလဲမဟု 57 ကျော် ပဌုလုပ်ခဲ့ပဌီသ လိုင်သပေါင်သ 5000 ကို ပေါင်သထည့်ကာ ~2500 ကို ဖျက်ခဲ့သည်။

လလန်ကဲစလာအသုံသပဌုမဟုအခဌေအနေမျာသတလင် စမ်သသပ်ရာတလင် ၎င်သတို့၏အကူအညီအတလက် Erigon ပရောဂျက်အဖလဲ့ (Ethereum ဂေဟစနစ်) ကို အထူသကျေသဇူသတင်ရဟိပါသည်။ Erigon တပ်ဆင်မဟုတစ်ခုစီတလင် 0.10.0-1 TB ရဟိသော ဒေတာဘေ့စ်ပမာဏ 2-7 TB ရဟိသော libmdbx vXNUMX ကို ထုတ်ပဌန်ပဌီသကတည်သက (Ethereum node မျာသ၏ XNUMX% တလင်အသုံသပဌုသည်) ဒေတာဘေ့စ်ခဌစာသမဟု အစီရင်ခံစာ သုံသခုသာ လက်ခံရရဟိခဲ့သည်မဟာ ထင်ရဟာသပါသည်။ ပဌင်ပအကဌောင်သပဌချက်ကဌောင့်မဟုတ်ဘဲ ဆော့ဖ်ဝဲအမဟာသအယလင်သမျာသကဌောင့် ဖဌစ်ပလာသရခဌင်သဖဌစ်သည်- ကိစ္စနဟစ်ခုတလင် အကဌောင်သရင်သမဟာ RAM ချို့ယလင်သမဟုဖဌစ်ပဌီသ တတိယမဟာ BTRFS ကိုအသုံသပဌုသည့် သိုလဟောင်မဟုစနစ်ခလဲစနစ်၏ သီသခဌာသဖလဲ့စည်သပုံတစ်ခုတလင် ဒေတာပဌန်လည်သတ်မဟတ်ခဌင်သဆိုင်ရာ အမဟာသတစ်ခုဖဌစ်သည်။

source: opennet.ru

မဟတ်ချက် Add