ဖလံ့ဖဌိုသတိုသတက်မဟုငါသနဟစ်အကဌာတလင်၊ ဒုတိယ libmdbx 1.0 ဖဌန့်ချိရေသကိုယ်စာသလဟယ်လောင်သကိုထုတ်ဝေခဲ့သည်။

ရနိုင်ပါတယ် စာကဌည့်တိုက် ထုတ်ဝေမဟုအတလက် ဒုတိယ ကိုယ်စာသလဟယ်လောင်သကို စမ်သသပ်ရန် libmdbx စလမ်သဆောင်ရည်မဌင့်မာသပဌီသ ကျစ်လစ်သိပ်သည်သစလာ ထည့်သလင်သထာသသော သော့တန်ဖိုသဒေတာဘေ့စ်ကို အကောင်အထည်ဖော်ခဌင်သဖဌင့်၊ လက်ရဟိဗာသရဟင်သ (0.5) သည် နည်သပညာပိုင်သဆိုင်ရာ ထုတ်ဝေမဟုတစ်ခုဖဌစ်ပဌီသ၊ မည်သည့်တိုသတက်မဟုမျာသမဆို ပဌီသမဌောက်ကဌောင်သနဟင့် စာကဌည့်တိုက်၏ ပထမဆုံသ အပဌည့်အဝထုတ်ဝေမဟု၏ နောက်ဆက်တလဲဖလဲ့စည်သမဟုနဟင့်အတူ အမျာသသူငဟာ နောက်ဆုံသစမ်သသပ်ခဌင်သနဟင့် တည်ငဌိမ်ခဌင်သအဆင့်သို့ ကူသပဌောင်သခဌင်သကို အမဟတ်အသာသပဌုပါသည်။ libmdbx ကုဒ် ဖဌန့်ဝေသည် OpenLDAP Public License အောက်တလင် လိုင်စင်ရထာသသည်။

MDBX စာကဌည့်တိုက်သည် သိသာထင်ရဟာသစလာ ပဌန်လည်ပဌင်ဆင်ထာသသော လမ်သခလဲတစ်ခုဖဌစ်သည်။ LMDB — အခဌေခံ "သော့တန်ဖိုသ" အတန်သ၏ ငလေပေသငလေယူ မဌဟုပ်နဟံထာသသော DBMS သစ်ပင် B+ မပါဘဲ proactive သစ်ခုတ်ခဌင်သ။Multi-threaded လုပ်ငန်သစဉ်မျာသကို ဒေသအလိုက် မျဟဝေထာသသော (ကလန်ရက်မဟုတ်) ဒေတာဘေ့စ်တစ်ခုဖဌင့် ယဟဉ်ပဌိုင်နိုင်ပဌီသ ထိရောက်စလာ လုပ်ဆောင်နိုင်စေပါသည်။ တစ်ဖန် MDBX သည် LMDB ထက် ပိုမိုမဌန်ဆန်ပဌီသ ယုံကဌည်စိတ်ချရပဌီသ တစ်ချိန်တည်သတလင် ၎င်သ၏ဘိုသဘေသမျာသ၏ အဓိကအင်္ဂါရပ်မျာသဖဌစ်သော၊ အက်ဆစ် နဟင့် CPU cores မျာသတစ်လျဟောက် linear scaling ဖဌင့် ပိတ်ဆို့ခဌင်သမပဌုသော ဖတ်ရဟုမဟုမျာသ။

MDBX နဟင့် LMDB အကဌာသ အရေသကဌီသဆုံသ ကလာခဌာသချက်မျာသ

  • အခဌေခံအာသဖဌင့်၊ ကုဒ်အရည်အသလေသ၊ စမ်သသပ်ခဌင်သနဟင့် အလိုအလျောက် စစ်ဆေသမဟုမျာသကို ပို၍အာရုံစိုက်သည်။
  • ကန့်သတ်ဘောင်မျာသကို စစ်ဆေသခဌင်သမဟ ဒေတာဘေ့စ်တည်ဆောက်ပုံမျာသ၏ အတလင်သပိုင်သစစ်ဆေသမဟုအထိ လုပ်ဆောင်ချက်အတလင်သ သိသာထင်ရဟာသစလာ ပိုမိုထိန်သချုပ်နိုင်သည်။
  • အလိုအလျောက် စုစည်သမဟုနဟင့် အလိုအလျောက် ဒေတာဘေ့စ် အရလယ်အစာသ စီမံခန့်ခလဲမဟု။
  • 32-bit နဟင့် 64-bit စည်သဝေသပလဲမျာသအတလက် ဒေတာဘေ့စ်ဖော်မတ်တစ်ခု။
  • အပိုင်သအခဌာသအလိုက် နမူနာအတလဲမျာသကို ခန့်မဟန်သခဌင်သ (အပိုင်သအခဌာသအလိုက် မေသမဌန်သမဟု ခန့်မဟန်သချက်)။
  • ပန်ကိတ်မျာသနဟင့် အသုံသပဌုသူရလေသချယ်နိုင်သော ဒေတာဘေ့စ် စာမျက်နဟာအရလယ်အစာသထက် နဟစ်ဆပိုကဌီသသော ကီသမျာသအတလက် ပံ့ပိုသမဟု။

libmdbx ဖဌန့်ချိရေသ ကိုယ်စာသလဟယ်လောင်သသည် MDBX နဟင့် MithrilDB ပရောဂျက်မျာသကို ခလဲခဌာသရန် 2019 ခုနဟစ် သဌဂုတ်လတလင် ပဌုလုပ်ခဲ့သော ဆုံသဖဌတ်ချက်တစ်ခု၏ ရလဒ်ဖဌစ်သည်။ တစ်ချိန်တည်သမဟာပင် libmdbx သည် (ဆင်ခဌင်တုံတရာသ) အမဌင့်ဆုံသနည်သပညာဆိုင်ရာကဌလေသမဌီမျာသကို ဖယ်ရဟာသပဌီသ စာကဌည့်တိုက်ကို တည်ငဌိမ်အောင်ပဌုလုပ်ရန် ဆုံသဖဌတ်ခဲ့သည်။ အမဟန်မဟာ၊ ကနညသခန့်မဟန်သထာသသည်နဟင့် စီစဉ်ထာသသည်ထက် သတ်မဟတ်ထာသသော ညသတည်ချက်တလင် ၂-၃ ဆ ပိုမိုလုပ်ဆောင်နိုင်သည်-

  • macOS နဟင့် ဒုတိယအဆင့် ပလပ်ဖောင်သမျာသအတလက် ပံ့ပိုသမဟုကို အကောင်အထည်ဖော်ခဲ့သည်- FreeBSD၊ Solaris၊ DragonFly BSD၊ OpenBSD၊ NetBSD။ AIX နဟင့် HP-UX အထောက်အပံ့ကို လိုအပ်သလို ထည့်နိုင်သည်။
  • Undefined Behavior Sanitizer နဟင့် Address Sanitizer ကို အသုံသပဌု၍ ကုဒ်ကို သန့်စင်ထာသပဌီသ၊ "-Wpedantic" ဖဌင့် တည်ဆောက်သည့်အခါ သတိပေသချက်မျာသ၊ Coverity Static Analyzer သတိပေသချက်မျာသ စသည်တို့ကို ဖယ်ရဟာသခဲ့သည်။
  • မလမ်သမံ API ဖော်ပဌချက်.
  • မဌဟုပ်နဟံရာတလင် လလယ်ကူစေရန်အတလက် ရင်သမဌစ်ကုဒ်ကို ပေါင်သစည်သခဌင်သ (ပေါင်သစည်သခဌင်သ)။
  • CMake ပံ့ပိုသမဟု။
  • အသိုက်အဝန်သ အရောင်သအ၀ယ်မျာသအတလက် ပံ့ပိုသမဟု။
  • OS ပဌန်လည်စတင်ခဌင်သ ရဟိ၊ မရဟိ ဆုံသဖဌတ်ရန် bootid ကို အသုံသပဌုခဌင်သ (ညစ်ပတ်သော ဒေတာဘေ့စ် ရပ်တန့်ခဌင်သ)။
  • အပ်ဒိတ်လုပ်ထာသသော/ဟောင်သ စာမျက်နဟာမျာသ၏ အဆုံသမဟ အဆုံသအထိ ရေတလက်ခဌင်သနဟင့် တိုသချဲ့ငလေပေသငလေယူ အချက်အလက်။
  • တလဲသုံသနိုင်သောမုဒ်တလင် ဖလင့်ထာသပဌီသသောဒေတာဘေ့စ်သို့ချိတ်ဆက်ရန်အတလက် ရလေသချယ်စရာ MDBX_ACCEDE။
  • ၏အသုံသပဌုမဟု OFD ပိတ်ဆို့ခဌင်သ။ ရရဟိနိုင်သောအခါ။
  • ပိုက်ထဲတလင် ပူသောအရံ။
  • အထူသပဌု ပဌုပဌင်ထာသသော အတလင်သပိုင်သ စီခဌင်သ အယ်လဂိုရီသမ် (“qsort()” ထက် 2-3 ဆ ပိုမဌန်ပဌီသ “std::sort()” ထက် 30% အထိ ပိုမဌန်သည်)။
  • အမျာသဆုံသသော့အရဟည်ကို တိုသမဌဟင့်ထာသသည်။
  • ကဌိုဖတ်ခဌင်သအာသ အလိုအလျောက် ထိန်သချုပ်ခဌင်သ (မဟတ်ဉာဏ်ထဲတလင် ဒေတာဘေ့စ်ဖိုင် သိမ်သဆည်သခဌင်သနည်သဗျူဟာ)။
  • ပိုမိုပဌင်သထန်ပဌီသ ပိုမဌန်သော အလိုအလျောက် စုစည်သမဟု။
  • B+ သစ်ပင်စာမျက်နဟာမျာသကို ပေါင်သစည်သရန်အတလက် ပိုမိုသင့်လျော်သော ဗျူဟာတစ်ခု။
  • မဟာသယလင်သစလာအသုံသပဌုပါက ဒေတာဘေ့စ်ပျက်စီသခဌင်သမဟ ကာကလယ်ရန် ဒေသတလင်သမဟုတ်သော ဖိုင်စနစ်မျာသ (NFS၊ Samba စသည်) ကို ထိန်သချုပ်ပါ။
  • စစ်ဆေသမဟုအစုံကို တိုသချဲ့ပဌီသပါပဌီ။

libmdbx ၏ "နောက်တစ်ခု" ဗာသရဟင်သကို သီသခဌာသပရောဂျက်တစ်ခုအဖဌစ် ဆက်လက်ဖော်ဆောင်ပါမည်။ MithrilDBMDBX ၏ "လက်ရဟိ" ဗာသရဟင်သ၏ ဖလံ့ဖဌိုသတိုသတက်မဟု vector သည် သတ်မဟတ်အင်္ဂါရပ်ကို အေသခဲစေရန်နဟင့် ၎င်သကို တည်ငဌိမ်စေရန် ရည်ရလယ်ပါသည်။ ကဆုံသဖဌတ်ချက်ကို အကဌောင်သအရင်သ သုံသခုဖဌင့် ပဌုလုပ်ခဲ့ခဌင်သဖဌစ်သည်-

  • လုံသဝသဟဇာတမဖဌစ်ပါ- MithrilDB သည် စီစဉ်ထာသသည့်အင်္ဂါရပ်အာသလုံသကို အကောင်အထည်ဖော်ရန်အတလက် မတူညီသော (သဟဇာတမဖဌစ်) ဒေတာဘေ့စ်ဖိုင်ဖော်မတ်နဟင့် မတူညီသော (သဟဇာတမဖဌစ်) API တစ်ခု လိုအပ်သည်။
  • အရင်သအမဌစ်ကုဒ်အသစ်- MithrilDB ရင်သမဌစ်ကုဒ်ကို LMDB မဟ သီသခဌာသလိုင်စင်ရထာသပဌီသ၊ ပရောဂျက်ကိုယ်တိုင်က မတူညီသောလိုင်စင်တစ်ခုအောက်တလင် ထုတ်ဝေရန် စီစဉ်ထာသသည် (ခလင့်ပဌုထာသသော၊ OR IF Apache 2.0 လိုင်စင် မဟုတ်ပါ။ OpenLDAP အမျာသသူငဟာ လိုင်စင်).
  • ခလဲထလက်ခဌင်သသည် ဖဌစ်နိုင်ချေရဟိသော ရဟုပ်ထလေသမဟုမျာသကို ရဟောင်ရဟာသကာ ပိုမိုသေချာမဟုကို ဖော်ဆောင်ပေသပဌီသ ပရောဂျက်မျာသအတလက် လလတ်လပ်သောလမ်သကဌောင်သကို သေချာစေသည်။

MDBX ကဲ့သို့ MithrilDB ကိုလည်သ အခဌေခံထာသသည်။ သစ်ပင် B+ MDBX နဟင့် LMDB တို့၏ အခဌေခံအာသနည်သချက်မျာသစလာကို ဖယ်ရဟာသပေသနေစဉ်တလင် အလလန်မဌင့်မာသသော စလမ်သဆောင်ရည်ကိုလည်သ ပါရဟိသည်။ အထူသသဖဌင့်၊ ရဟည်လျာသသောစာဖတ်ခဌင်သလုပ်ငန်သမျာသဖဌင့် အမဟိုက်မျာသလုပ်ဆောင်ခဌင်သကို ပိတ်ဆို့ထာသခဌင်သကဌောင့် ဒေတာဘေ့စ်၏ "ရောင်ရမ်သခဌင်သ" ဟုထင်ရဟာသသည့် "ကဌာရဟည်စလာဖတ်ရဟုခဌင်သ" ၏ပဌဿနာကို ဖယ်ရဟာသပစ်မည်ဖဌစ်သည်။ MithrilDB အင်္ဂါရပ်အသစ်မျာသ ပါဝင်သည်-

  • ကလဲပဌာသသောမီဒီယာအမျာသအပဌာသတလင် ဒေတာဘေ့စ်ကို ထာသရဟိခဌင်သအတလက် ပံ့ပိုသမဟု- HDD၊ SSD နဟင့် မတည်ငဌိမ်သောမဟတ်ဉာဏ်။
  • "ပူ"၊ "နလေသ" နဟင့် "အေသ" ဒေတာအတလက် "တန်ဖိုသရဟိသော" နဟင့် "တန်ဖိုသနည်သ" အတလက် အကောင်သဆုံသဗျူဟာမျာသ။
  • ဒေတာဘေ့စ်ခိုင်မာမဟုကို စောင့်ကဌည့်ရန် Merkle သစ်ပင်ကို အသုံသပဌုခဌင်သ။
  • WAL ကို စိတ်ကဌိုက်ရလေသချယ်အသုံသပဌုနိုင်ပဌီသ ဒေတာခိုင်မာမဟုအာမခံချက်ဖဌင့် ရေသရန်အထူသလိုအပ်သော အခဌေအနေမျာသတလင် စလမ်သဆောင်ရည်ကို သိသာစလာတိုသတက်စေသည်။
  • ပျင်သရိငဌီသငလေ့စလာ ဖမ်သဆုပ်ခဌင်သသည် ဒစ်ခ်မျာသသို့ ဒေတာမျာသ ပေသသည်။

source: opennet.ru

မဟတ်ချက် Add