ဖလံ့ဖဌိုသတိုသတက်မဟု ငါသနဟစ်အကဌာတလင် ဒုတိယမဌောက် libmdbx v1.0 ကို ဖဌန့်ချိသည်။

စာကဌည့်တိုက် libmdbx အလလန်စလမ်သဆောင်ရည်မဌင့်မာသပဌီသ ကျစ်လစ်သိပ်သည်သစလာ ထည့်သလင်သထာသသော သော့တန်ဖိုသဒေတာဘေ့စ် LMDB ၏ သိသိသာသာ ပဌန်လည်ဒီဇိုင်သထုတ်ထာသသော မျိုသဆက်တစ်ခုဖဌစ်သည်။
လက်ရဟိဗာသရဟင်သ v0.5 သည် နည်သပညာပိုင်သဆိုင်ရာ ထုတ်ဝေမဟုတစ်ခုဖဌစ်ပဌီသ၊ မည်သည့်တိုသတက်မဟုမျာသမဆို ပဌီသမဌောက်ကဌောင်သနဟင့် စာကဌည့်တိုက်၏ ပထမအကဌိမ်ထုတ်လလဟတ်မဟု၏ နောက်ဆက်တလဲဖလဲ့စည်သမဟုနဟင့်အတူ အမျာသသူငဟာ နောက်ဆုံသစမ်သသပ်ခဌင်သနဟင့် တည်ငဌိမ်ခဌင်သအဆင့်သို့ ကူသပဌောင်သခဌင်သကို အမဟတ်အသာသပဌုပါသည်။

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

LMDB နဟင့် ပတ်သက်သည့် libmdbx ၏ ကလာခဌာသချက်မျာသနဟင့် တိုသတက်မဟုမျာသကို ဖော်ပဌချက်သည် သီသခဌာသဆောင်သပါသ (Habré နဟင့် Medium တလင် ထုတ်ဝေရန် စီစဉ်ထာသသည်) နဟင့် ထိုက်တန်ပါသည်။ ကနေရာတလင် အရေသကဌီသဆုံသနဟင့် သိသာထင်ရဟာသသောအချက်ကို ဖော်ပဌရန် သင့်လျော်ပါသည်။

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

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

  • Mac OS နဟင့် ဒုတိယအဆင့် ပလပ်ဖောင်သမျာသအတလက် ပံ့ပိုသမဟုကို အကောင်အထည်ဖော်ခဲ့သည်- 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 tree ကိုအသုံသပဌုခဌင်သ။
  • WAL ကို စိတ်ကဌိုက်ရလေသချယ်အသုံသပဌုနိုင်ပဌီသ ရေသမဟတ်အာသပဌုသော အခဌေအနေမျာသနဟင့် ဒေတာခိုင်မာမဟုအာမခံချက်မျာသတလင် သိသိသာသာမဌင့်မာသသောစလမ်သဆောင်ရည်။
  • ဒစ်ခ်မျာသရဟိ ဒေတာမျာသကို ပျင်သရိစလာ ဖမ်သယူဖဌေရဟင်သခဌင်သ။

source: linux.org.ru

မဟတ်ချက် Add