စွမ်းဆောင်ရည်မြင့် ထည့်သွင်းထားသော DBMS libmdbx 0.11.3 ကို ဖြန့်ချိသည်။

libmdbx 0.11.3 (MDBX) စာကြည့်တိုက်ကို စွမ်းဆောင်ရည်မြင့် ကျစ်လစ်သိပ်သည်းစွာ ထည့်သွင်းထားသော သော့တန်ဖိုးဒေတာဘေ့စ်ကို အကောင်အထည်ဖော်ခြင်းဖြင့် ထုတ်ဝေခဲ့သည်။ libmdbx ကုဒ်ကို OpenLDAP Public License အောက်တွင် လိုင်စင်ရထားသည်။ လက်ရှိလည်ပတ်မှုစနစ်များနှင့် ဗိသုကာလက်ရာများအားလုံးအပြင် Russian Elbrus 2000 ကိုလည်း ပံ့ပိုးထားပါသည်။ 2021 ခုနှစ်အကုန်တွင်၊ libmdbx ကို အမြန်ဆုံး Ethereum ဖောက်သည် နှစ်ခုတွင် သိုလှောင်မှုနောက်ကွယ်တစ်ခုအဖြစ် အသုံးပြုသည် - Erigon နှင့် "Shark" အသစ်တို့ကို ရရှိနိုင်သည့်အဆိုအရ၊ အချက်အလက်သည် စွမ်းဆောင်ရည်အမြင့်ဆုံး Ethereum သုံးစွဲသူဖြစ်သည်။

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

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

libmdbx သည် C++ API နှင့် Rust၊ Haskell၊ Python၊ NodeJS၊ Ruby၊ Go နှင့် Nim အတွက် စိတ်အားထက်သန်သော ပံ့ပိုးပေးထားသော ဘာသာစကား bindings များကို ပေးပါသည်။

အောက်တိုဘာလ 11 ရက်နေ့ထုတ် ယခင်သတင်းများမှစ၍ အဓိက တီထွင်ဆန်းသစ်မှုများ၊ မြှင့်တင်မှုများနှင့် ပြင်ဆင်မှုများ ထည့်သွင်းထားသည်-

  • C++ API ကို အသုံးပြုရန် အသင့်ဖြစ်ပြီဟု ယူဆပါသည်။
  • Ethereum ဂေဟစနစ်တွင် libmdbx ကိုအသုံးပြုသည့်အခါ အထူးအရေးကြီးသည့် ကြီးမားသောငွေပေးငွေယူများလုပ်ဆောင်သည့်အခါ GC ဒေတာအပ်ဒိတ်ကို သိသိသာသာအရှိန်မြှင့်ထားသည်။
  • သုံးစွဲသူများအတွက် လုံးဝ ပွင့်လင်းမြင်သာမှုရှိသော အလိုအလျောက် အပ်ဒိတ်လုပ်ခြင်းကို ပံ့ပိုးရန်အတွက် ဒေတာဘေ့စ်ဖော်မတ်၏ အတွင်းပိုင်း လက်မှတ်ကို ပြောင်းလဲထားသည်။ ၎င်းသည် ဒစ်ဂျစ်တိုက်၏ ခေတ်မမီသောဗားရှင်းများကို လက်ရှိဗားရှင်းဖြင့် မှတ်တမ်းတင်ထားသော ငွေပေးငွေယူများကို ဖတ်သည့်အခါတွင် ဒေတာဘေ့စ်အကျင့်ပျက်ခြစားမှုနှင့်ပတ်သက်သော မှားယွင်းသောအပြုသဘောဆောင်သောစာတိုများကို ဖယ်ရှားနိုင်စေပါသည်။
  • ထည့်သွင်းထားသော လုပ်ဆောင်ချက်များ 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 မှ စတင်သော gcc၊ 7 မှ စတင်သော clang။
  • mdbx_chk utility ကို အသုံးပြု၍ သီးခြား meta စာမျက်နှာသို့ ကိုယ်တိုင်ပြောင်းပြီးနောက် မက်တာစာမျက်နှာ ပဋိပက္ခဖြစ်နိုင်ချေကို ပြင်ဆင်ခဲ့သည်။
  • အမွေအနှစ် မက်တာစာမျက်နှာများကို ထပ်ရေးသောအခါတွင် မမျှော်လင့်ထားသော MDBX_PROBLEM အမှားကို ပြင်ဆင်ပြီးဖြစ်သည်။
  • MDBX_GET_BOTH တောင်းဆိုချက်ကို လုပ်ဆောင်သောအခါ မတိကျသော တိုက်ဆိုင်မှုတစ်ခုအတွက် ပြန်ပေးသည့် MDBX_NOTFOUND ကို ပြင်ဆင်ပြီးဖြစ်သည်။
  • kernel နှင့် အင်တာဖေ့စ်ဖော်ပြချက်များပါရှိသော ခေါင်းစီးဖိုင်များမရှိသောအခါ Linux တွင် စုစည်းမှုအမှားတစ်ခုကို ပြင်ဆင်ခဲ့သည်။
  • MDBX_SHRINK_ALLOWED အတွင်းပိုင်းအလံနှင့် MDBX_ACCEDE ရွေးချယ်မှုကြားတွင် ပဋိပက္ခကို ဖြေရှင်းခဲ့သည်။
  • မလိုအပ်သော အခိုင်အမာစစ်ဆေးမှုများစွာကို ဖယ်ရှားခဲ့သည်။
  • mdbx_env_set_option() လုပ်ဆောင်ချက်မှ MDBX_RESULT_TRUE ၏ မျှော်လင့်မထားသောပြန်လာမှုကို ပြင်ဆင်ခဲ့သည်။
  • စုစုပေါင်း၊ ဖိုင် 90 ခုတွင် ပြောင်းလဲမှု 25 ကျော် ပြုလုပ်ခဲ့ပြီး လိုင်းပေါင်း 1300 ကို ပေါင်းထည့်ကာ ~600 ကို ဖျက်ခဲ့သည်။

source: opennet.ru

မှတ်ချက် Add