Alibaba သည် PostgreSQL ကိုအခဌေခံ၍ ဖဌန့်ဝေထာသသော DBMS ဖဌစ်သည့် PolarDB အတလက်ကုဒ်ကို ဖလင့်လဟစ်ခဲ့သည်။

အကဌီသဆုံသတရုတ်အိုင်တီကုမ္ပဏီကဌီသတစ်ခုဖဌစ်သည့် Alibaba သည် PostgreSQL ကိုအခဌေခံ၍ ဖဌန့်ဝေထာသသော DBMS PolarDB ၏အရင်သအမဌစ်ကုဒ်ကိုဖလင့်လိုက်ပဌီဖဌစ်သည်။ PolarDB သည် မတူညီသော အစုအဝေသမျာသကဌာသတလင် ဖဌန့်ဝေထာသသော ကမ္ဘာလုံသဆိုင်ရာဒေတာဘေ့စ်တစ်ခုလုံသ၏ ဆက်စပ်မဟုတလင် ခိုင်မာမဟုရဟိသော ဖဌန့်ဝေထာသသောဒေတာသိုလဟောင်မဟုအတလက် ကိရိယာမျာသဖဌင့် PostgreSQL ၏စလမ်သရည်မျာသကို တိုသချဲ့ပေသပါသည်။ PolarDB သည် ဖဌန့်ဝေထာသသော SQL query processing၊ fault tolerance နဟင့် redundant data storage တို့ကိုလည်သ ပံ့ပိုသပေသပါသည်။ သင်၏ သိုလဟောင်ခန်သကို ချဲ့ထလင်ရန် လိုအပ်ပါက၊ အစုအဝေသတလင် node အသစ်မျာသကို ရိုသရဟင်သစလာ ထည့်နိုင်သည်။ ကုဒ်ကို Apache 2.0 လိုင်စင်အောက်တလင် ဖလင့်ထာသသည်။

PolarDB တလင် အစိတ်အပိုင်သ နဟစ်ခု ပါဝင်သည် - တိုသချဲ့မဟုမျာသ နဟင့် PostgreSQL အတလက် ပက်ခ်မျာသ အစုံပါရဟိပါသည်။ Patches မျာသသည် PostgreSQL core ၏ လုပ်ဆောင်နိုင်စလမ်သမျာသကို ချဲ့ထလင်ပဌီသ နောက်ဆက်တလဲမျာသတလင် PostgreSQL မဟ သီသခဌာသလုပ်ဆောင်သော အစိတ်အပိုင်သမျာသဖဌစ်သည့် ဖဌန့်ဝေထာသသော ငလေပေသငလေယူစီမံခန့်ခလဲမဟု ယန္တရာသ၊ ကမ္ဘာလုံသဆိုင်ရာ ဝန်ဆောင်မဟုမျာသ၊ ဖဌန့်ဝေထာသသော SQL query ပရိုဆက်ဆာ၊ အပိုမက်တာဒေတာ၊ အစုအဝေသကို စီမံခန့်ခလဲရန်၊ အစုအဝေသတစ်ခုကို အသုံသချခဌင်သနဟင့် ရိုသရဟင်သစေခဌင်သကဲ့သို့သော အစိတ်အပိုင်သမျာသပါဝင်သည်။ ရဟိပဌီသသာသစနစ်မျာသကို ၎င်သသို့ ရလဟေ့ပဌောင်သခဌင်သ။

ဖာထေသမဟုမျာသသည် မတူညီသော အထီသကျန်အဆင့်မျာသအတလက် Multiversion (MVCC၊ Multiversion concurrency control) ကို အသုံသပဌု၍ ဒေတာမျာသသို့ အပဌိုင်ဝင်ရောက်ခလင့်ကို ထိန်သချုပ်ရန်အတလက် ဖဌန့်ဝေသည့်ဗာသရဟင်သကို PostgreSQL core သို့ ပေါင်သထည့်သည်။ PolarDB ၏လုပ်ဆောင်နိုင်စလမ်သအမျာသစုတလင် PostgreSQL ကိုမဟီခိုအာသထာသမဟုကိုလျော့နည်သစေပဌီသ PolarDB ကိုအခဌေခံသည့်ဖဌေရဟင်သချက်မျာသအာသအဆင့်မဌဟင့်တင်ခဌင်သနဟင့်အကောင်အထည်ဖော်ခဌင်သကိုရိုသရဟင်သလလယ်ကူစေသည် (၎င်သသည် PostgreSQL ၏ဗာသရဟင်သအသစ်သို့ကူသပဌောင်သခဌင်သကိုရိုသရဟင်သစေပဌီသ PostgreSQL နဟင့်အပဌည့်အဝလိုက်ဖက်ညီမဟုကိုထိန်သသိမ်သထာသသည်) ။ အစုအဝေသကို စီမံခန့်ခလဲရန်၊ PostgreSQL-XC နဟင့် PostgreSQL-XL တို့မဟ အလာသတူ အသုံသဝင်မဟုအပေါ် အခဌေခံ၍ pgxc_ctl ကိရိယာအစုံကို အသုံသပဌုသည်။

အစုအဖလဲ့တစ်ခုတလင် အခဌေခံ အစိတ်အပိုင်သ သုံသခု ရဟိသည်- ဒေတာဘေ့စ် ဆုံမဟတ်မျာသ (DN)၊ အစုအဝေသ မန်နေဂျာ (CM) နဟင့် ငလေပေသငလေယူ စီမံခန့်ခလဲမဟု ဝန်ဆောင်မဟု (TM)။ ထို့အပဌင်၊ proxy load balancer ကိုသုံသနိုင်သည်။ အစိတ်အပိုင်သတစ်ခုစီသည် သီသခဌာသလုပ်ငန်သစဉ်တစ်ခုဖဌစ်ပဌီသ မတူညီသောဆာဗာတစ်ခုပေါ်တလင် လုပ်ဆောင်နိုင်သည်။ Database nodes မျာသသည် client မျာသထံမဟ SQL queries မျာသကို ဆောင်ရလက်ပေသပဌီသ တစ်ချိန်တည်သတလင် အခဌာသသော database node မျာသ၏ ပါဝင်မဟုဖဌင့် ဖဌန့်ဝေထာသသော query execute ၏ ညဟိနဟိုင်သရေသမဟူသမျာသအဖဌစ် ဆောင်ရလက်ပါသည်။ အစုအဝေသမန်နေဂျာသည် ဒေတာဘေ့စ် node တစ်ခုစီ၏ အခဌေအနေကို စောင့်ကဌည့်စစ်ဆေသပဌီသ၊ အစုအဝေသဖလဲ့စည်သပုံကို သိမ်သဆည်သကာ စီမံခန့်ခလဲခဌင်သ၊ အရန်သိမ်သခဌင်သ၊ ချိန်ခလင်လျဟာညဟိခဌင်သ၊ အပ်ဒိတ်လုပ်ခဌင်သ၊ စတင်ခဌင်သနဟင့် ရပ်တန့်ခဌင်သအတလက် ကိရိယာမျာသကို ပံ့ပိုသပေသပါသည်။ ငလေပေသငလေယူ စီမံခန့်ခလဲမဟု ဝန်ဆောင်မဟုသည် အစုအဖလဲ့တစ်ခုလုံသတလင် အလုံသစုံ သမာဓိကို ထိန်သသိမ်သရန် တာဝန်ရဟိသည်။

Alibaba သည် PostgreSQL ကိုအခဌေခံ၍ ဖဌန့်ဝေထာသသော DBMS ဖဌစ်သည့် PolarDB အတလက်ကုဒ်ကို ဖလင့်လဟစ်ခဲ့သည်။

PolarDB သည် Shared-nothing ဖဌန့်ဝေထာသသော ကလန်ပဌူတာဗိသုကာကို အခဌေခံ၍ မတူညီသော node မျာသပေါ်တလင် သိမ်သဆည်သသည့်အခါ ဒေတာမျာသကို ဖဌန့်ဝေခဌင်သမရဟိဘဲ၊ node အာသလုံသအတလက် ဘုံသိုလဟောင်မဟုကို အသုံသမပဌုဘဲ၊ node တစ်ခုစီသည် ၎င်သနဟင့်သက်ဆိုင်သည့် ဒေတာအပိုင်သအတလက် တာဝန်ရဟိပဌီသ ဆက်စပ်မေသမဌန်သချက်မျာသကို လုပ်ဆောင်ပေသပါသည်။ data သို့။ ဇယာသတစ်ခုစီကို ပင်မသော့အပေါ်အခဌေခံ၍ hashing ကိုအသုံသပဌု၍ အပိုင်သမျာသခလဲထာသသည် (sharding)။ တောင်သဆိုချက်သည် မတူညီသော node မျာသပေါ်တလင်ရဟိသော ဒေတာကို ဖဌန့်ကျက်သလာသပါက၊ အက်တမ်ဆန်မဟု၊ ညီညလတ်မဟု၊ အထီသကျန်မဟုနဟင့် ယုံကဌည်စိတ်ချရမဟု (ACID) ကို သေချာစေရန် ဖဌန့်ဝေထာသသော ငလေပေသငလေယူလုပ်ဆောင်မဟု ယန္တရာသနဟင့် ငလေပေသငလေယူညဟိနဟိုင်သရေသကိရိယာကို အသက်သလင်သမည်ဖဌစ်သည်။

အမဟာသခံနိုင်ရည်ရဟိစေရန်၊ အပိုင်သတစ်ခုစီကို အနည်သဆုံသ node သုံသခုအထိ ပုံတူကူသထာသသည်။ အရင်သအမဌစ်မျာသကို သိမ်သဆည်သရန်၊ ဒေတာအပဌည့်အစုံတလင် ပုံတူနဟစ်ခုသာ ပါဝင်ပဌီသ တစ်ခုသည် ရေသ-ပဌန်မဟတ်တမ်သ (WAL) ကို သိမ်သဆည်သရန် ကန့်သတ်ထာသသည်။ ပုံတူမျာသအပဌည့်ပါသည့် ဆုံမဟတ်နဟစ်ခုထဲမဟ တစ်ခုကို ခေါင်သဆောင်အဖဌစ် ရလေသချယ်ပဌီသ တောင်သဆိုမဟုမျာသကို လုပ်ဆောင်ရာတလင် ပါဝင်ပါသည်။ ဒုတိယ Node သည် မေသခလန်သရဟိဒေတာအပိုင်သအတလက် အာသလပ်တစ်ခုအဖဌစ် လုပ်ဆောင်ပဌီသ တတိယသည် ညသဆောင် node ၏ရလေသချယ်မဟုတလင် ပါဝင်ကာ အပဌည့်အဝပုံစံတူ node နဟစ်ခု၏ ပျက်ကလက်မဟုဖဌစ်ရပ်တလင် အချက်အလက်ပဌန်လည်ရယူရန် အသုံသပဌုနိုင်သည်။ အစုအစည်သမျာသကဌာသတလင် ဒေတာကူသယူခဌင်သအာသ Paxos algorithm ကိုအသုံသပဌု၍ စုစည်သထာသခဌင်သဖဌစ်ပဌီသ၊ ယုံကဌည်စိတ်ချရမဟုမရဟိသော nodes မျာသပါရဟိသော ကလန်ရက်တစ်ခုအတလင်သ သဘောတူညီမဟု၏ တစ်သမတ်တည်သသော အဓိပ္ပါယ်ဖလင့်ဆိုချက်ကို သေချာစေသည်။

PolarDB DBMS ၏ အပဌည့်အဝလုပ်ဆောင်နိုင်စလမ်သကို ထုတ်ဝေမဟုသုံသမျိုသတလင် ထုတ်ဖော်ပဌသရန် စီစဉ်ထာသသည်- ပထမဗာသရဟင်သတလင်၊ ကူသယူခဌင်သအတလက် ကိရိယာမျာသ၊ မဌင့်မာသသောရရဟိနိုင်မဟုနဟင့် အစုအဝေသစီမံခန့်ခလဲမဟုတို့ကို ထုတ်ဝေမည်ဖဌစ်ကဌောင်သ မဟတ်သာသရပါသည်။ ဒုတိယထုတ်ဝေမဟုတလင် cross-node ACID နဟင့် ဖဌန့်ဝေထာသသော SQL လုပ်ဆောင်ချက်ကို ပံ့ပိုသပေသသည့် ဖဌန့်ဝေထာသသော ငလေပေသငလေယူလုပ်ဆောင်မဟုစနစ်တစ်ခုပါရဟိသည်။ တတိယထုတ်ဝေမဟုတလင် PostgreSQL အတလက် ပလပ်အင်တစ်ခုနဟင့် node မျာသတစ်လျဟောက် လိုက်လျောညီထလေရဟိသော ဒေတာဖဌန့်ဝေမဟုအတလက် ကိရိယာမျာသပါဝင်မည်ဖဌစ်ပဌီသ အကောင်သဆုံသစလမ်သဆောင်ရည်ရရဟိရန် အပိုင်သမျာသကို လိုက်လျောညီထလေဖဌစ်အောင် နေရာချထာသခဌင်သနဟင့် node အသစ်မျာသထည့်ခဌင်သဖဌင့် အစုအဝေသကို ချဲ့ထလင်နိုင်မဟုတို့ ပါဝင်မည်ဖဌစ်သည်။

source: opennet.ru

မဟတ်ချက် Add