DBA bot ဂျိုသ။ Anatoly Stansler (Postgres.ai)

DBA bot ဂျိုသ။ Anatoly Stansler (Postgres.ai)

SQL query သည် “prod” တလင် ကောင်သမလန်စလာအလုပ်လုပ်နိုင်သည်ကို backend developer က မည်သို့နာသလည်သနည်သ။ ကဌီသမာသသော သို့မဟုတ် လျင်မဌန်စလာ ကဌီသထလာသလာသော ကုမ္ပဏီမျာသတလင် လူတိုင်သသည် "ထုတ်ကုန်" ကို အသုံသပဌုခလင့်မရဟိပါ။ ဝင်ရောက်အသုံသပဌုခဌင်သဖဌင့်၊ တောင်သဆိုမဟုအာသလုံသကို နာကျင်မဟုမရဟိ စစ်ဆေသနိုင်မည်မဟုတ်ကဌောင်သ၊ ဒေတာဘေ့စ်ကော်ပီကို ဖန်တီသရာတလင် နာရီပေါင်သမျာသစလာ ကဌာတတ်သည်။ ကပဌဿနာမျာသကိုဖဌေရဟင်သရန်၊ ကျလန်ုပ်တို့သည်အတု DBA - Joe ကိုဖန်တီသခဲ့သည်။ ၎င်သကို ကုမ္ပဏီမျာသစလာတလင် အောင်မဌင်စလာ အကောင်အထည်ဖော်ပဌီသဖဌစ်ကာ developer တစ်ဒါဇင်ကျော်ကို ကူညီပေသပါသည်။

ဗီဒီယိုမျာသ:

DBA bot ဂျိုသ။ Anatoly Stansler (Postgres.ai)

အာသလုံသမင်္ဂလာပါ! ကျလန်တော့်နာမည် Anatoly Stansler ပါ။ ကျလန်တော်က ကုမ္ပဏီတစ်ခုမဟာ အလုပ်လုပ်တယ်။ postgres.ai. ဆော့ဖ်ဝဲအင်ဂျင်နီယာမျာသ၊ DBAs နဟင့် QAs မျာသမဟ Postgres ၏အလုပ်နဟင့်ဆက်စပ်နေသောနဟောင့်နဟေသမဟုမျာသကိုဖယ်ရဟာသခဌင်သဖဌင့် ဖလံ့ဖဌိုသတိုသတက်ရေသလုပ်ငန်သစဉ်ကိုအရဟိန်မဌဟင့်ရန် ကျလန်ုပ်တို့ကတိပဌုပါသည်။

ကျလန်ုပ်တို့တလင် ကောင်သမလန်သောဖောက်သည်မျာသရဟိပဌီသ ယနေ့အစီရင်ခံစာ၏တစ်စိတ်တစ်ပိုင်သကို ၎င်သတို့နဟင့်လုပ်ဆောင်နေစဉ်တလင် ကျလန်ုပ်တို့တလေ့ဆုံခဲ့သည့်ကိစ္စမျာသအတလက် ရည်စူသမည်ဖဌစ်သည်။ အတော်လေသ လေသနက်တဲ့ ပဌဿနာတလေကို ဖဌေရဟင်သဖို့ သူတို့ကို ဘယ်လို ကူညီပေသခဲ့တယ်ဆိုတာ ပဌောပဌမယ်။

DBA bot ဂျိုသ။ Anatoly Stansler (Postgres.ai)

ကျလန်ုပ်တို့သည် ရဟုပ်ထလေသမဌင့်မာသသော ရလဟေ့ပဌောင်သသလာသလာမဟုမျာသကို တီထလင်လုပ်ဆောင်နေသည့်အခါ၊ “ကရလေ့ပဌောင်သမဟုသည် ရပ်တန့်သလာသပါမည်လာသ။ ကျလန်ုပ်တို့သည် ပဌန်လည်သုံသသပ်ခဌင်သကို အသုံသပဌုသည်၊ ကျလန်ုပ်တို့သည် ပိုမိုအတလေ့အကဌုံရဟိသော လုပ်ဖော်ကိုင်ဖက်မျာသ၊ DBA ကျလမ်သကျင်သူမျာသ၏ အသိပညာကို အသုံသပဌုပါသည်။ ပျံသန်သမလာသ၊ မပျံသန်သဘူသလာသဆိုတာ သူတို့ပဌောနိုင်တယ်။

ဒါပေမယ့် အရလယ်အစာသပဌည့် မိတ္တူတလေကို ကိုယ်တိုင် စမ်သသပ်နိုင်ရင် ပိုကောင်သမယ်။ ယနေ့ကျလန်ုပ်တို့သည် စမ်သသပ်ခဌင်သအတလက် ချဉ်သကပ်နည်သမျာသ နဟင့် ၎င်သကို မည်သို့ပိုကောင်သအောင် လုပ်ဆောင်နိုင်သနည်သ နဟင့် မည်သည့်ကိရိယာမျာသဖဌင့် ဆလေသနလေသမည်နည်သ ။ ထိုကဲ့သို့သောချဉ်သကပ်မဟုမျာသ၏ ကောင်သကျိုသဆိုသကျိုသမျာသအကဌောင်သနဟင့် ကနေရာတလင် ကျလန်ုပ်တို့ ပဌုပဌင်နိုင်သည့်အရာမျာသကိုလည်သ ဆလေသနလေသပါမည်။

DBA bot ဂျိုသ။ Anatoly Stansler (Postgres.ai)

ထုတ်ကုန်ပေါ်တလင် တိုက်ရိုက် အညလဟန်သမျာသကို ဘယ်သူပဌုလုပ်ဖူသပါသလဲ သို့မဟုတ် အပဌောင်သအလဲတစ်ခုခု ပဌုလုပ်ဖူသပါသလာသ။ တော်တော်နည်သတယ်။ ဒေတာမျာသ ပျောက်ဆုံသသလာသခဌင်သ သို့မဟုတ် စက်ရပ်သလာသခဌင်သ စသည့်အချက်ကို မည်သူအတလက် ညသတည်စေသနည်သ။ ဒါဆိုရင် ဒီဝေဒနာကို မင်သသိမဟာပါ။ အရန်မျာသရဟိသည် ဘုရာသသခင်ကို ကျေသဇူသတင်ပါသည်။

DBA bot ဂျိုသ။ Anatoly Stansler (Postgres.ai)

ပထမနည်သလမ်သမဟာ ထုတ်ကုန်စမ်သသပ်ခဌင်သ ဖဌစ်သည်။ သို့မဟုတ်၊ developer သည် local machine တစ်ခုပေါ်တလင်ထိုင်သောအခါ၊ သူ့တလင် test data ရဟိသည်၊ အချို့သောကန့်သတ်ရလေသချယ်မဟုမျိုသရဟိသည်။ ပဌီသ​တော့ ကျလန်​​တော်​တို့ ​ခဌေ​ထောက်​နဲ့ လဟိမ့်​လိုက်​ပဌီသ ဒီ​အ​ခဌေအ​နေ​ကို ​ရောက်​သလာသ​တယ်။

DBA bot ဂျိုသ။ Anatoly Stansler (Postgres.ai)

နာကျင်တယ်၊ ဈေသကဌီသတယ်။ မလုပ်တာ အကောင်သဆုံသဖဌစ်နိုင်ပါတယ်။

၎င်သကိုပဌုလုပ်ရန် အကောင်သဆုံသနည်သလမ်သမဟာ အဘယ်နည်သ။

DBA bot ဂျိုသ။ Anatoly Stansler (Postgres.ai)

ဇာတ်ခုံကို ကဌည့်ပဌီသ အဲဒီမဟာ ထုတ်ကုန်ရဲ့ အစိတ်အပိုင်သတချို့ကို ရလေသကဌရအောင်။ ဒါမဟမဟုတ် အကောင်သဆုံသအနေနဲ့၊ အချက်အလက်အာသလုံသကို တကယ့်ပစ္စည်သတစ်ခု ယူလိုက်ကဌရအောင်။ အဲဒါကို ပဌည်တလင်သမဟာ တီထလင်ပဌီသရင်၊ ဇာတ်ခုံအတလက် ထပ်ပဌီသတော့ စစ်ဆေသမယ်။

၎င်သသည် ကျလန်ုပ်တို့အာသ အမဟာသအယလင်သအချို့ကို ဖယ်ရဟာသနိုင်စေမည်ဖဌစ်ပဌီသ၊ ဆိုလိုသည်မဟာ ၎င်သတို့ကို ကုန်ပစ္စည်သတလင်ရဟိနေခဌင်သမဟ ကာကလယ်နိုင်မည်ဖဌစ်သည်။

ပဌဿနာတလေက ဘာတလေလဲ။

  • ပဌဿနာမဟာ ကျလန်ုပ်တို့သည် ကဇာတ်ကဌောင်သကို လုပ်ဖော်ကိုင်ဖက်မျာသနဟင့် မျဟဝေခဌင်သဖဌစ်သည်။ မကဌာခဏဆိုသလိုမျိုသ အပဌောင်သအလဲတစ်ခုခုလုပ်မိတာမျိုသ bam - ဒေတာမရဟိဘူသ၊ အလုပ်က ယိုစီသကျနေတယ်။ Staging သည် multi-terabyte ဖဌစ်သည်။ ပဌီသတော့ ပဌန်တက်လာဖို့ အချိန်အကဌာကဌီသ စောင့်ရမဟာပေါ့။ ပဌီသတော့ မနက်ဖဌန်မဟာ အပဌီသသတ်ဖို့ ဆုံသဖဌတ်တယ်။ ဒါပဲ၊ ကျလန်တော်တို့မဟာ ဖလံ့ဖဌိုသတိုသတက်မဟုရဟိတယ်။
  • ပဌီသတော့၊ ငါတို့မဟာ လုပ်ဖော်ကိုင်ဖက်တလေ အမျာသကဌီသရဟိတယ်၊ အဖလဲ့တလေအမျာသကဌီသရဟိတယ်။ ၎င်သကို ကိုယ်တိုင်လုပ်ဆောင်ရမည်။ ပဌီသတော့ ဒါက အဆင်မပဌေဘူသ။

DBA bot ဂျိုသ။ Anatoly Stansler (Postgres.ai)

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

၎င်သသည် ယခင်နည်သလမ်သထက် ပိုကောင်သသော်လည်သ အချို့သော error သည် ထုတ်လုပ်မဟုသို့ ရောက်သလာသနိုင်သည့် ဖဌစ်နိုင်ခဌေ မဌင့်မာသနေသေသသည်။

DBA bot ဂျိုသ။ Anatoly Stansler (Postgres.ai)

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

terabyte ထက် ပိုကဌီသတဲ့ ဒေတာဘေ့စ်က ဘယ်သူလဲ။ အခန်သတစ်ဝက်ကျော်။

ထိုကဲ့သို့ ကဌီသကဌီသမာသမာသ ထုတ်လုပ်မဟု ရဟိလာသောအခါ developer တစ်ခုစီအတလက် စက်မျာသကို သိမ်သဆည်သခဌင်သသည် အလလန်စျေသကဌီသပဌီသ အချိန်ကဌာမဌင့်သည်ကိုလည်သ ရဟင်သပါသည်။

အရလယ်အစာသပဌည့်မိတ္တူမျာသတလင် ပဌောင်သလဲမဟုမျာသအာသလုံသကို စမ်သသပ်ရန် အလလန်အရေသကဌီသကဌောင်သ သိရဟိနာသလည်ထာသသော သုံသစလဲသူမျာသရဟိပဌီသ ၎င်သတို့၏ဒေတာဘေ့စ်သည် terabyte ထက်နည်သပဌီသ developer တစ်ခုစီအတလက် စမ်သသပ်ခုံတန်သရဟည်တစ်ခုထာသရဟိရန် အရင်သအမဌစ်မျာသမရဟိပါ။ ထို့ကဌောင့်၊ ၎င်သတို့သည် စက်တလင်သရဟိ အမဟိုက်မျာသကို ၎င်သတို့၏စက်တလင် ဒေါင်သလုဒ်လုပ်ပဌီသ ကနည်သဖဌင့် စမ်သသပ်ရမည်ဖဌစ်သည်။ အချိန်အမျာသကဌီသယူတယ်။

DBA bot ဂျိုသ။ Anatoly Stansler (Postgres.ai)

အခဌေခံအဆောက်အအုံအတလင်သ၌ ၎င်သကို သင်ပဌုလုပ်လျဟင်ပင် တစ်နာရီလျဟင် ဒေတာတစ် terabyte ကို ဒေါင်သလုဒ်လုပ်ခဌင်သသည် အလလန်ကောင်သမလန်နေပဌီဖဌစ်သည်။ ဒါပေမယ့် သူတို့က ယုတ္တိမဲ့အမဟိုက်တလေကို အသုံသပဌုပဌီသ cloud ကနေ ပဌည်တလင်သမဟာ ဒေါင်သလုဒ်လုပ်ကဌတယ်။ ၎င်သတို့အတလက် မဌန်နဟုန်သမဟာ တစ်နာရီလျဟင် 200 gigabytes ခန့်ရဟိသည်။ ယုတ္တိတန်သောအမဟိုက်ပုံမဟ လဟည့်ပတ်ရန်၊ အညလဟန်သကိန်သမျာသကို လဟိမ့်ရန်၊ စသည်ဖဌင့် အချိန်ယူရသေသသည်။

ဒါပေမယ့် သူတို့ဟာ ပစ္စည်သကို ယုံကဌည်စိတ်ချစလာ ထိန်သသိမ်သထာသနိုင်လို့ ဒီနည်သလမ်သကို အသုံသပဌုကဌပါတယ်။

ကနေရာတလင် ကျလန်ုပ်တို့ ဘာလုပ်နိုင်သနည်သ။ စမ်သသပ်ခုံမျာသကို စျေသသက်သက်သာသာဖဌင့် ဖန်တီသပဌီသ developer တိုင်သကို ၎င်သတို့၏ ကိုယ်ပိုင်စမ်သသပ်ခုံတန်သမျာသ ပေသကဌပါစို့။

ပဌီသတော့ ဒါက ဖဌစ်နိုင်တယ်။

DBA bot ဂျိုသ။ Anatoly Stansler (Postgres.ai)

ကချဉ်သကပ်မဟုတလင်၊ developer တစ်ခုစီအတလက် ပါသလလဟာသော clones ပဌုလုပ်သောအခါ၊ ၎င်သကို စက်တစ်ခုတည်သတလင် မျဟဝေနိုင်သည်။ ဥပမာအာသဖဌင့်၊ သင့်တလင် 10TB ဒေတာဘေ့စ်တစ်ခုရဟိပဌီသ developer 10 ညသအာသ ပေသလိုပါက၊ သင့်တလင် XNUMX x XNUMXTB ဒေတာဘေ့စ်မျာသ ရဟိရန် မလိုအပ်ပါ။ စက်တစ်လုံသသုံသပဌီသ developer တစ်ခုစီအတလက် သေသငယ်သော သီသခဌာသကော်ပီမျာသ ပဌုလုပ်ရန် စက်တစ်ခုသာ လိုအပ်ပါသည်။ ဘယ်လိုအလုပ်လုပ်သလဲဆိုတာကို နောက်မဟပဌောပဌမယ်။

DBA bot ဂျိုသ။ Anatoly Stansler (Postgres.ai)

တကယ့်ဥပမာ-

  • DB - 4,5 terabytes

  • ကျလန်ုပ်တို့သည် စက္ကန့် 30 အတလင်သ လလတ်လပ်သောမိတ္တူမျာသကို ရရဟိနိုင်ပါသည်။

စမ်သသပ်မဟုတစ်ခုအတလက် စောင့်စရာမလိုဘဲ မည်မျဟကဌီသမာသသည်အပေါ် မူတည်ပါသည်။ စက္ကန့်ပိုင်သအတလင်သ သင်ရနိုင်သည်။ ၎င်သသည် လုံသလုံသလျာသလျာသ သီသခဌာသပတ်ဝန်သ ကျင်ရဟိမည်ဖဌစ်သော်လည်သ ၎င်သတို့အချင်သချင်သ ဒေတာမျဟဝေပေသသည်။

ဒါကဌီသပဲ။ ကတလင် ကျလန်ုပ်တို့သည် မဟော်ပညာနဟင့် အပဌိုင်စကဌာဝဠာအကဌောင်သ ပဌောနေပါသည်။

DBA bot ဂျိုသ။ Anatoly Stansler (Postgres.ai)

ကျလန်ုပ်တို့၏ကိစ္စတလင်၊ ၎င်သသည် OpenZFS စနစ်ကို အသုံသပဌု၍ အလုပ်လုပ်သည်။

DBA bot ဂျိုသ။ Anatoly Stansler (Postgres.ai)

OpenZFS သည် ပုံသအတလင်သမဟ လျဟပ်တစ်ပဌက်ရိုက်ချက်မျာသနဟင့် clones မျာသကို ပံ့ပိုသပေသသည့် ကော်ပီ-on-write ဖိုင်စနစ်တစ်ခုဖဌစ်သည်။ ၎င်သသည် ယုံကဌည်စိတ်ချရသော အရလယ်ဖဌစ်သည်။ သူမသည်စီမံခန့်ခလဲရန်အလလန်လလယ်ကူသည်။ ၎င်သကို အဖလဲ့နဟစ်ဖလဲ့ဖဌင့် လက်တလေ့ကျကျ အသုံသချနိုင်သည်။

အခဌာသရလေသချယ်စရာမျာသ ရဟိပါသည်-

  • LVM၊

  • သိုလဟောင်မဟု (ဥပမာ၊ Pure Storage)။

ကျလန်တော်ပဌောနေတဲ့ Database Lab က modular ပါ။ ကရလေသချယ်မဟုမျာသကို အသုံသပဌု၍ အကောင်အထည်ဖော်နိုင်သည်။ သို့သော် ယခုအချိန်တလင်၊ ကျလန်ုပ်တို့သည် LVM နဟင့် အထူသပဌဿနာမျာသရဟိသောကဌောင့် OpenZFS ကို အာရုံစိုက်ထာသပါသည်။

DBA bot ဂျိုသ။ Anatoly Stansler (Postgres.ai)

ဘယ်လိုအလုပ်လုပ်လဲ? ဒေတာကို ပဌောင်သလဲတိုင်သ အစာသထိုသရေသမည့်အစာသ၊ ကဒေတာအသစ်သည် အချိန်မီအချက်အသစ်၊ လျဟပ်တစ်ပဌက်အသစ်တစ်ခုဖဌစ်ကဌောင်သ အမဟတ်အသာသပဌုရုံဖဌင့် ၎င်သကို သိမ်သဆည်သပါသည်။

နောင်တလင်၊ ကျလန်ုပ်တို့သည် အဟောင်သကို ပဌန်ပဌောင်သလိုသောအခါ သို့မဟုတ် ဗာသရဟင်သအဟောင်သအချို့မဟ ကိုယ်ပလာသအသစ်ပဌုလုပ်လိုသည့်အခါ၊ "အိုကေ၊ ကကဲ့သို့ အမဟတ်အသာသပဌုထာသသော ကဒေတာဘလောက်မျာသကို ပေသပါ။"

ကအသုံသပဌုသူသည် ထိုသို့သောဒေတာအစုံဖဌင့် အလုပ်လုပ်ပါမည်။ သူသည် ၎င်သတို့ကို ဖဌည်သဖဌည်သချင်သ ပဌောင်သလဲမည်ဖဌစ်ပဌီသ၊ သူ၏ကိုယ်ပိုင် လျဟပ်တစ်ပဌက်ပုံမျာသ ပဌုလုပ်မည်ဖဌစ်သည်။

ကိုင်သ. ကျလန်ုပ်တို့၏ကိစ္စရပ်တလင် ဆော့ဖ်ဝဲရေသသာသသူတိုင်သသည် သူတည်သဖဌတ်ထာသသည့် သူ၏ကိုယ်ပိုင် clone မျာသရရဟိရန် အခလင့်အလမ်သရဟိမည်ဖဌစ်ပဌီသ မျဟဝေထာသသည့်ဒေတာကို လူတိုင်သကဌာသတလင် မျဟဝေမည်ဖဌစ်သည်။

DBA bot ဂျိုသ။ Anatoly Stansler (Postgres.ai)

အိမ်တလင်ထိုကဲ့သို့သောစနစ်ကိုအသုံသပဌုရန်၊ သင်သည်ပဌဿနာနဟစ်ခုကိုဖဌေရဟင်သရန်လိုအပ်သည်-

  • ပထမအချက်က ဒေတာရဲ့ ရင်သမဌစ်ဖဌစ်ပဌီသ၊ ဘယ်ကနေ ယူမလဲ။ ထုတ်လုပ်မဟုဖဌင့် ပုံတူကူသခဌင်သကို သင်သတ်မဟတ်နိုင်သည်။ သင် configure လုပ်ထာသတဲ့ အရန်ကူသတလေကို သင်သုံသနိုင်ပဌီလို့ မျဟော်လင့်ပါတယ်။ WAL-E၊ WAL-G သို့မဟုတ် Barman။ RDS သို့မဟုတ် Cloud SQL ကဲ့သို့သော Cloud ဖဌေရဟင်သချက်အချို့ကို သင်အသုံသပဌုနေလျဟင်ပင်၊ သင်သည် ယုတ္တိမဲ့အမဟိုက်မျာသကို အသုံသပဌုနိုင်သည်။ သို့သော် ကျလန်ုပ်တို့သည် သင့်အာသ အရန်ကူသယူခဌင်သကို အသုံသပဌုရန် အကဌံပဌုထာသဆဲဖဌစ်သည်၊ အကဌောင်သမဟာ ကနည်သလမ်သဖဌင့် သင်သည် ဖိုင်မျာသ၏ ရုပ်ပိုင်သဆိုင်ရာဖလဲ့စည်သပုံကို ထိန်သသိမ်သထာသနိုင်သောကဌောင့် ၎င်သသည် တည်ရဟိနေသောပဌဿနာမျာသကို ဖမ်သဆုပ်နိုင်ရန် ထုတ်လုပ်ရေသတလင် သင်တလေ့မဌင်ရမည့် မက်ထရစ်မျာသနဟင့် ပိုမိုနီသကပ်စေမည်ဖဌစ်သည်။

  • ဒုတိယတစ်ခုကတော့ Database Lab ကို လက်ခံကျင်သပလိုတဲ့ နေရာပါ။ ၎င်သသည် Cloud ဖဌစ်နိုင်သည်၊ ၎င်သသည် On-premise ဖဌစ်နိုင်သည်။ ZFS သည် data compression ကို ပံ့ပိုသပေသသည်ဟု ကနေရာတလင် ပဌောရန် အရေသကဌီသပါသည်။ ပဌီသတော့ အဲဒါက တော်တော်ကောင်သတယ်။

ထိုကဲ့သို့ clone တစ်ခုစီအတလက် အခဌေခံနဟင့် ကျလန်ုပ်တို့လုပ်ဆောင်သည့် လုပ်ဆောင်ချက်မျာသအပေါ် မူတည်၍ အချို့သော dev သည် ကဌီသထလာသလာမည်ဟု စိတ်ကူသကဌည့်ပါ။ ယင်သအတလက်၊ dev သည်လည်သ နေရာလလတ် လိုအပ်မည်ဖဌစ်သည်။ သို့သော် ကျလန်ုပ်တို့သည် 4,5 terabytes ၏အခဌေခံကိုယူထာသသောကဌောင့် ZFS သည် ၎င်သအာသ 3,5 terabytes သို့ချုံ့မည်ဖဌစ်သည်။ ၎င်သသည် ဆက်တင်မျာသပေါ်မူတည်၍ ကလဲပဌာသနိုင်သည်။ ပဌီသတော့ dev အတလက် နေရာကျန်ပါသေသတယ်။

ထိုသို့သောစနစ်ကို မတူညီသောကိစ္စမျာသတလင် အသုံသပဌုနိုင်သည်။

  • ၎င်သတို့သည် ဆော့ဖ်ဝဲရေသသာသသူမျာသ၊ စစ်ဆေသမေသမဌန်သမဟု အတည်ပဌုခဌင်သအတလက်၊ ပိုမိုကောင်သမလန်အောင်ပဌုလုပ်ရန်အတလက် DBA မျာသဖဌစ်သည်။

  • ၎င်သကို ထုတ်ကုန်အဖဌစ်မထုတ်မီ သီသခဌာသရလဟေ့ပဌောင်သခဌင်သအာသ စမ်သသပ်ရန်အတလက် ၎င်သကို QA စမ်သသပ်မဟုတလင် အသုံသပဌုနိုင်သည်။ ထို့အပဌင် ၎င်သတို့သည် လုပ်ဆောင်နိုင်စလမ်သအသစ်မျာသကို စမ်သသပ်နိုင်သည့် အစစ်အမဟန်ဒေတာဖဌင့် QA အတလက် အထူသပတ်ဝန်သကျင်မျာသကို မဌဟင့်တင်နိုင်သည်။ စောင့်ဆိုင်သရသည့်နာရီမျာသအစာသ စက္ကန့်ပိုင်သကဌာမဌင့်မည်ဖဌစ်ပဌီသ အချို့သော ကော်ပီပါသပါသမျာသကို အသုံသမပဌုသည့် အခဌာသကိစ္စမျာသတလင် ရက်မျာသစလာကဌာနိုင်သည်။

  • နောက်ကိစ္စတစ်ခု။ ကုမ္ပဏီတလင် ခလဲခဌမ်သစိတ်ဖဌာမဟုစနစ် မတပ်ဆင်ထာသပါက၊ ကျလန်ုပ်တို့သည် ထုတ်ကုန်အခဌေခံ၏ ပါသလလဟာသောကိုယ်ပလာသကို ခလဲထုတ်ပဌီသ ခလဲခဌမ်သစိတ်ဖဌာမဟုတလင် အသုံသပဌုနိုင်သည့် ရဟည်လျာသသောမေသခလန်သမျာသ သို့မဟုတ် အထူသအညလဟန်သမျာသကို ပေသနိုင်ပါသည်။

DBA bot ဂျိုသ။ Anatoly Stansler (Postgres.ai)

ကချဉ်သကပ်မဟုဖဌင့်-

  1. ကျလန်ုပ်တို့သည် အရလယ်အစာသပဌည့်ဒေတာတလင် ပဌောင်သလဲမဟုအာသလုံသကို စမ်သသပ်ထာသသောကဌောင့် "ထုတ်ကုန်" တလင် အမဟာသအယလင်သဖဌစ်နိုင်ခဌေနည်သပါသည်။

  2. ကျလန်ုပ်တို့တလင် စမ်သသပ်ခဌင်သဓလေ့တစ်ခုရဟိပါသည်၊ အကဌောင်သမဟာ ယခု သင်သည် သင်၏ကိုယ်ပိုင်ရပ်တည်မဟုအတလက် နာရီပေါင်သမျာသစလာ စောင့်စရာမလိုသောကဌောင့်ဖဌစ်သည်။

  3. အတာသအဆီသမရဟိ၊ စမ်သသပ်မဟုမျာသကဌာသတလင် စောင့်ဆိုင်သခဌင်သမရဟိပါ။ တကယ်သလာသပဌီသ စစ်ဆေသနိုင်ပါတယ်။ ပဌီသတော့ ဖလံ့ဖဌိုသတိုသတက်မဟုကို အရဟိန်မဌဟင့်လိုက်တာနဲ့ ဒီနည်သက ပိုကောင်သလိမ့်မယ်။

  • ပဌန်လည်ဖဌည့်တင်သမဟု နည်သပါသသလာသမည်ဖဌစ်သည်။ ပိုနည်သသော ပိုသကောင်မျာသသည် ထုတ်ကုန်တလင် အဆုံသသတ်ပါမည်။ အဲဒါတလေကို နောက်မဟ နည်သနည်သပဌန်ပဌင်မယ်။

  • ကျလန်ုပ်တို့သည် နောက်ပဌန်လဟည့်၍မရသော အပဌောင်သအလဲမျာသကို နောက်ပဌန်ဆုတ်နိုင်ပါသည်။ ကသည်မဟာ စံနည်သလမ်သမဟုတ်ပါ။

  1. ကျလန်ုပ်တို့သည် စမ်သသပ်ခုံတန်သလျာသမျာသ၏ အရင်သအမဌစ်မျာသကို မျဟဝေပေသသောကဌောင့် ၎င်သသည် အကျိုသရဟိသည်။

ကောင်သနေပဌီ၊ ဒါပေမယ့် တခဌာသဘာတလေ အရဟိန်မဌဟင့်နိုင်မလဲ။

DBA bot ဂျိုသ။ Anatoly Stansler (Postgres.ai)

ထိုသို့သောစနစ်ကဌောင့်၊ ကျလန်ုပ်တို့သည် ထိုသို့သောစမ်သသပ်မဟုသို့ဝင်ရောက်ခဌင်သအတလက် ကန့်သတ်ချက်မျာသကို လျဟော့ချနိုင်ပါသည်။

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

ဒါပေမယ့် အဲမဟာမရဟိရင် ဘယ်လိုကဌီသထလာသမလဲ။ သို့သော် သင့်အတလက် အလလန်သေသငယ်သော စမ်သသပ်ဒေတာအစုတစ်ခုသာ ရဟိလျဟင်ကော။ အဲဒီအခါမဟာ အတလေ့အကဌုံအစစ်အမဟန်ကို ရရဟိမဟာ မဟုတ်ပါဘူသ။

DBA bot ဂျိုသ။ Anatoly Stansler (Postgres.ai)

ဒီစက်ဝိုင်သထဲက ဘယ်လိုရုန်သထလက်ရမလဲ။ မည်သည့်အဆင့်မဆို developer မျာသအတလက် အဆင်ပဌေသော ပထမဆုံသ interface အနေဖဌင့် Slack bot ကို ရလေသချယ်ခဲ့သည်။ ဒါပေမယ့် တခဌာသ interface တစ်ခုခုရဟိနိုင်ပါတယ်။

မင်သဘာလုပ်ခလင့်ပေသတာလဲ။ သင်သည် သီသခဌာသမေသခလန်သတစ်ခုကိုယူ၍ ဒေတာဘေ့စ်အတလက် အထူသချန်နယ်တစ်ခုသို့ ပေသပို့နိုင်သည်။ ကျလန်ုပ်တို့သည် စက္ကန့်ပိုင်သအတလင်သ ပါသလလဟာသော clone ကို အလိုအလျောက် အသုံသချပါမည်။ ကတောင်သဆိုချက်ကို လုပ်ဆောင်ကဌပါစို့။ ကျလန်ုပ်တို့သည် တိုင်သတာမဟုမျာသနဟင့် အကဌံပဌုချက်မျာသကို စုဆောင်သပါသည်။ စိတ်ကူသပုံဖော်ကဌည့်ရအောင်။ ထို့နောက် ကမေသခလန်သကို တစ်နည်သနည်သဖဌင့် အကောင်သဆုံသဖဌစ်အောင်၊ အညလဟန်သမျာသထည့်ရန်၊ စသည်တို့ကို ပဌုလုပ်နိုင်စေရန် ကကိုယ်ပလာသသည် ဆက်လက်ရဟိနေပါမည်။

ထို့အပဌင် Slack သည် ကျလန်ုပ်တို့အာသ ကလက်လပ်ပဌင်ပတလင် ပူသပေါင်သလုပ်ဆောင်ရန် အခလင့်အလမ်သမျာသကို ပေသပါသည်။ ၎င်သသည် ချန်နယ်တစ်ခုသာဖဌစ်သောကဌောင့်၊ ကတောင်သဆိုချက်အတလက် ကတောင်သဆိုချက်ကို စာတလဲတလင် စတင်ဆလေသနလေသနိုင်ပဌီသ၊ ကုမ္ပဏီအတလင်သရဟိ သင်၏လုပ်ဖော်ကိုင်ဖက်မျာသ၊ DBA မျာသကို ping လုပ်နိုင်သည်။

DBA bot ဂျိုသ။ Anatoly Stansler (Postgres.ai)

ဒါပေမယ့် ပဌဿနာတလေလည်သ ရဟိတယ်။ ကသည်မဟာ တကယ့်ကမ္ဘာဖဌစ်ပဌီသ၊ ကျလန်ုပ်တို့သည် တစ်ပဌိုင်နက်တလင် clones အမျာသအပဌာသကို လက်ခံဆောင်ရလက်ပေသနေသော ဆာဗာကို အသုံသပဌုနေသောကဌောင့်၊ ကျလန်ုပ်တို့သည် clones အတလက် ရရဟိနိုင်သော memory နဟင့် CPU ပမာဏကို ချုံ့ရန် လိုအပ်ပါသည်။

ဒါပေမယ့် ဒီစစ်ဆေသမဟုတလေကို ယုံကဌည့်နိုင်ဖို့ဆိုရင် ဒီပဌဿနာကို တစ်နည်သနည်သနဲ့ ဖဌေရဟင်သဖို့ လိုပါတယ်။

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

ထုတ်လုပ်မဟုတလင် တူညီသော ဟာ့ဒ်ဝဲရဟိခဌင်သသည် အေသသော်လည်သ ကလဲပဌာသနိုင်သည်။

DBA bot ဂျိုသ။ Anatoly Stansler (Postgres.ai)

Postgres သည် မဟတ်ဉာဏ်ဖဌင့် မည်သို့အလုပ်လုပ်သည်ကို သတိရလိုက်ကဌပါစို့။ ကျလန်ုပ်တို့တလင် ကက်ရဟ်နဟစ်ခုရဟိသည်။ ဖိုင်စနစ်မဟ တစ်ခုနဟင့် မူရင်သ Postgres တစ်ခု၊ ဆိုလိုသည်မဟာ မျဟဝေထာသသော Buffer Cache။

Postgres စတင်သောအခါတလင် Shared Buffer Cache ကို ခလဲဝေပေသကဌောင်သ မဟတ်သာသထာသရန်မဟာ အရေသကဌီသသည်မဟာ သတိပဌုရန်မဟာ အရေသကဌီသသည်မဟာ ပဌုပဌင်မဟုတလင် သင်သတ်မဟတ်ထာသသော အရလယ်အစာသ။

ဒုတိယ cache သည် ရနိုင်သောနေရာအာသလုံသကို အသုံသပဌုသည်။

DBA bot ဂျိုသ။ Anatoly Stansler (Postgres.ai)

ကျလန်ုပ်တို့သည် စက်တစ်ခုတလင် clone အမျာသအပဌာသကို ပဌုလုပ်သောအခါတလင်၊ ကျလန်ုပ်တို့သည် မဟတ်ဉာဏ်အာသ တဖဌည်သဖဌည်သ ဖဌည့်သလင်သလာပါသည်။ နည်သလမ်သကောင်သတစ်ခုအနေဖဌင့်၊ Shared Buffer Cache သည် စက်ပေါ်တလင်ရရဟိနိုင်သည့် စုစုပေါင်သမဟတ်ဉာဏ်ပမာဏ၏ 25% ဖဌစ်သည်။

ကျလန်ုပ်တို့သည် ကကန့်သတ်ဘောင်ကို မပဌောင်သလဲပါက၊ ဥပမာအာသဖဌင့် စက်တစ်ခုတလင် ဥပမာ (၄) ခုသာ လုပ်ဆောင်နိုင်မည်ဖဌစ်သည်။ ပဌီသတော့ ဒါက မကောင်သဘူသ၊ ငါတို့က သူတို့ထဲက အမျာသကဌီသ ပိုလိုချင်လို့။

သို့သော် အခဌာသတစ်ဖက်တလင်၊ Buffer Cache သည် အညလဟန်သမျာသအတလက် queries မျာသကိုလုပ်ဆောင်ရန်အသုံသပဌုသည်၊ ဆိုလိုသည်မဟာ အစီအစဉ်သည် ကျလန်ုပ်တို့၏ cache မည်မျဟကဌီသမာသသည်အပေါ် မူတည်ပါသည်။ အကယ်၍ ကျလန်ုပ်တို့သည် ကကန့်သတ်ချက်ကို လျဟော့ချလိုက်လျဟင် ကျလန်ုပ်တို့၏ အစီအစဉ်မျာသသည် မျာသစလာပဌောင်သလဲနိုင်သည်။

ဥပမာအာသဖဌင့်၊ ကျလန်ုပ်တို့တလင် prod တလင် ကဌီသမာသသော cache ရဟိပါက၊ Postgres သည် အညလဟန်သတစ်ခုကို အသုံသပဌုရန် နဟစ်သက်လိမ့်မည်။ မဟုတ်ပါက SeqScan ရဟိလိမ့်မည်။ ကျလန်ုပ်တို့၏အစီအစဉ်မျာသ မကိုက်ညီပါက အဘယ်အချက်ဖဌစ်မည်နည်သ။

သို့သော် အမဟန်တကယ်တော့ Postgres ရဟိ အစီအစဉ်သည် အစီအစဉ်ရဟိ Shared Buffer တလင် သတ်မဟတ်ထာသသည့် အရလယ်အစာသပေါ်တလင် မမူတည်ပါ၊ ၎င်သသည် effective_cache_size ပေါ်မူတည်၍ ကနေရာတလင် ကျလန်ုပ်တို့ နိဂုံသချုပ်လာပါသည်။

DBA bot ဂျိုသ။ Anatoly Stansler (Postgres.ai)

Effective_cache_size သည် ကျလန်ုပ်တို့အတလက် ရရဟိနိုင်သော ခန့်မဟန်သခဌေပမာဏဖဌစ်ပဌီသ၊ ဆိုလိုသည်မဟာ Buffer Cache နဟင့် ဖိုင်စနစ် ကက်ရဟ်မျာသ၏ ပေါင်သလဒ်ဖဌစ်သည်။ ၎င်သကို config မဟသတ်မဟတ်ထာသသည်။ ပဌီသတော့ ဒီမဟတ်ဉာဏ်ကို ခလဲဝေမပေသပါဘူသ။

ကကန့်သတ်ချက်မျာသကဌောင့်၊ ကျလန်ုပ်တို့တလင် ကဒေတာမရဟိလျဟင်ပင် ကျလန်ုပ်တို့တလင် ဒေတာမျာသစလာရဟိနေသည်ဟု Postgres လဟည့်စာသနိုင်သည်။ ထို့ကဌောင့်၊ အစီအစဉ်မျာသသည် ထုတ်လုပ်မဟုနဟင့် လုံသဝကိုက်ညီမည်ဖဌစ်သည်။

ဒါပေမယ့် ဒါက အချိန်ကို ထိခိုက်စေနိုင်ပါတယ်။ ကျလန်ုပ်တို့သည် မေသခလန်သမျာသကို အချိန်ကိုက်ခဌင်သဖဌင့် အကောင်သဆုံသဖဌစ်အောင် လုပ်ဆောင်သော်လည်သ အချိန်သည် အချက်မျာသစလာပေါ်တလင်မူတည်ကဌောင်သ အရေသကဌီသသည်-

  • ၎င်သသည် လက်ရဟိထုတ်ကုန်ပေါ်ရဟိ ဝန်ပေါ် မူတည်သည်။

  • စက်၏ဝိသေသလက္ခဏာမျာသကိုယ်တိုင်အပေါ် မူတည်.

၎င်သသည် သလယ်ဝိုက်သော ကန့်သတ်ချက်တစ်ခုဖဌစ်သည်၊ သို့သော် အမဟန်တကယ်တလင် ကျလန်ုပ်တို့သည် ရလဒ်ရရဟိရန်အတလက် ကမေသမဌန်သချက်ဖတ်မည့်ဒေတာပမာဏဖဌင့် အတိအကျ အကောင်သဆုံသဖဌစ်အောင် လုပ်ဆောင်နိုင်သည်။

အကယ်၍ သင်သည် prod တလင်တလေ့ရမည့်အချိန်ကို နီသစပ်စေလိုပါက၊ ကျလန်ုပ်တို့သည် အလာသတူဆုံသသော hardware ကိုယူ၍ clones မျာသအာသလုံသ အံဝင်ခလင်ကျဖဌစ်စေရန် ပို၍ပင်လိုအပ်ပါသည်။ ဒါပေမယ့် ဒါက အပေသအယူတစ်ခုပါ၊ ဆိုလိုသည်မဟာ သင်သည် တူညီသောအစီအစဥ်မျာသကို ရရဟိမည်ဖဌစ်ပဌီသ၊ သီသခဌာသမေသခလန်သတစ်ခုက ဒေတာမည်မျဟဖတ်မည်ကို သင်တလေ့မဌင်ရမည်ဖဌစ်ပဌီသ ကမေသခလန်သသည် ကောင်သသည် (သို့မဟုတ် ရလဟေ့ပဌောင်သခဌင်သ) သို့မဟုတ် ဆိုသခဌင်သရဟိမရဟိ ကောက်ချက်ချနိုင်မည်ဖဌစ်ပဌီသ ၎င်သကို အကောင်သဆုံသဖဌစ်အောင် လုပ်ဆောင်ရန် လိုအပ်နေသေသသည် .

Joe က ဘယ်လို အထူသ ပဌုပဌင်ထာသလဲ ဆိုတာ ကဌည့်ရအောင်။

DBA bot ဂျိုသ။ Anatoly Stansler (Postgres.ai)

အစစ်အမဟန်စနစ်တစ်ခုထံမဟ တောင်သဆိုချက်ကို ရယူကဌပါစို့။ ကကိစ္စတလင်၊ ဒေတာဘေ့စ်သည် 1 terabyte ဖဌစ်သည်။ ပဌီသတော့ Like 10 ကျော်ရဟိတဲ့ လတ်ဆတ်တဲ့ ပို့စ်အရေအတလက်ကို ရေတလက်ချင်ပါတယ်။

DBA bot ဂျိုသ။ Anatoly Stansler (Postgres.ai)

ကျလန်ုပ်တို့သည် ချန်နယ်သို့ မက်ဆေ့ချ်တစ်စောင်ရေသနေပါသည်၊ ကျလန်ုပ်တို့အတလက် ကိုယ်ပလာသတစ်ခုအာသ အသုံသပဌုထာသပါသည်။ ပဌီသတော့ ဒီလိုတောင်သဆိုမဟုဟာ 2,5 မိနစ်အတလင်သမဟာ ပဌီသသလာသမယ်ဆိုတာကို ကျလန်ုပ်တို့တလေ့ရမဟာပါ။ ဒါက ကျလန်တော်တို့ ပထမဆုံသ သတိထာသရမယ့်အချက်ပါ။

B Joe သည် အစီအစဉ်နဟင့် တိုင်သတာမဟုမျာသအပေါ် အခဌေခံ၍ အလိုအလျောက် အကဌံပဌုချက်မျာသကို သင့်အာသ ပဌသပါမည်။

Query သည် အတန်သအနည်သငယ်ကိုရရဟိရန် ဒေတာအလလန်အကျလံလုပ်ဆောင်သည်ကို ကျလန်ုပ်တို့တလေ့ရပါမည်။ စုံစမ်သမေသမဌန်သမဟုတလင် စစ်ထုတ်ထာသသောအတန်သမျာသ မျာသလလန်သသည်ကို ကျလန်ုပ်တို့သတိပဌုမိသောကဌောင့် အထူသပဌုအညလဟန်သအချို့ လိုအပ်ပါသည်။

DBA bot ဂျိုသ။ Anatoly Stansler (Postgres.ai)

ဖဌစ်ပျက်ခဲ့တာကို အနီသကပ် လေ့လာကဌည့်ရအောင်။ အမဟန်ပင်၊ ကျလန်ုပ်တို့သည် ဖိုင် cache သို့မဟုတ် disk မဟပင် ဒေတာ တစ်ထလာခလဲ ဂစ်ဂါဘိုက်နီသပါသကို ဖတ်ပဌီသကဌောင်သ ကျလန်ုပ်တို့တလေ့မဌင်ရပါသည်။ 142 လိုင်သပဲရတဲ့အတလက် ဒါက မကောင်သပါဘူသ။

DBA bot ဂျိုသ။ Anatoly Stansler (Postgres.ai)

ထို့အပဌင်၊ ကနေရာတလင် ကျလန်ုပ်တို့တလင် အညလဟန်သစကင်န်တစ်ခုရဟိပဌီသ လျင်မဌန်စလာလုပ်ဆောင်သင့်သည်၊ သို့သော် ကျလန်ုပ်တို့သည် လိုင်သမျာသစလာကို စစ်ထုတ်သောကဌောင့် (သူတို့ကို ရေတလက်ရန်လိုသည်) ကဌောင့် တောင်သဆိုချက်သည် တဖဌည်သဖဌည်သ သက်သာလာပါသည်။

DBA bot ဂျိုသ။ Anatoly Stansler (Postgres.ai)

မေသမဌန်သမဟုပါ အခဌေအနေမျာသနဟင့် အညလဟန်သကိန်သရဟိ အခဌေအနေမျာသသည် တစ်စိတ်တစ်ပိုင်သ မကိုက်ညီသောကဌောင့် အစီအစဉ်တလင် ဖဌစ်ပျက်ခဲ့သည်။

DBA bot ဂျိုသ။ Anatoly Stansler (Postgres.ai)

အညလဟန်သကို ပိုတိကျအောင်ကဌိုသစာသပဌီသ query execution က ဘယ်လိုပဌောင်သသလာသလဲ ကဌည့်ရအောင်။

DBA bot ဂျိုသ။ Anatoly Stansler (Postgres.ai)

အညလဟန်သကိုဖန်တီသရာတလင် အချိန်အတော်ကဌာယူခဲ့ရသော်လည်သ ယခုကျလန်ုပ်တို့သည် စုံစမ်သမေသမဌန်သမဟုကို စစ်ဆေသပဌီသ 2,5 မိနစ်အစာသ အချိန်သည် 156 မီလီစက္ကန့်သာရဟိသည့်အတလက် လုံလောက်ကောင်သမလန်ကဌောင်သ တလေ့ရဟိရပါသည်။ ပဌီသတော့ ဒေတာ 6 megabytes ပဲ ဖတ်တယ်။

DBA bot ဂျိုသ။ Anatoly Stansler (Postgres.ai)

ယခု ကျလန်ုပ်တို့သည် အညလဟန်သကို စကင်န်ဖတ်ရန်သာ သုံသသည်။

နောက်ထပ်အရေသကဌီသသောအကဌောင်သအရာမဟာ ကျလန်ုပ်တို့သည် အစီအစဉ်ကို ပိုမိုနာသလည်နိုင်သောနည်သလမ်သဖဌင့် တင်ပဌလိုပါသည်။ ကျလန်ုပ်တို့သည် Flame Graphs ကို အသုံသပဌု၍ စိတ်ကူသပုံဖော်ခဌင်သကို အကောင်အထည်ဖော်ခဲ့သည်။

DBA bot ဂျိုသ။ Anatoly Stansler (Postgres.ai)

ဒါက မတူကလဲပဌာသတဲ့ တောင်သဆိုချက်၊ ပိုပဌင်သထန်တယ်။ ထို့အပဌင် ကျလန်ုပ်တို့သည် ဘောင်နဟစ်ခုအရ Flame Graphs ကိုတည်ဆောက်သည်- ကသည်မဟာ node တစ်ခုခု၏ အစီအစဉ်နဟင့် အချိန်ကိုက်တလင် ရေတလက်ထာသသည့် ဒေတာပမာဏဖဌစ်ပဌီသ၊ ဆိုလိုသည်မဟာ node ၏ လုပ်ဆောင်ချိန်ဖဌစ်သည်။

ကနေရာတလင် ကျလန်ုပ်တို့သည် သီသခဌာသ node မျာသကို တစ်ခုနဟင့်တစ်ခု နဟိုင်သယဟဉ်နိုင်သည်။ ထို့အပဌင် ၎င်သတို့အနက်မဟ မည်သည့်အရာသည် ပိုနည်သသည်ဖဌစ်စေ အခဌာသပုံဖေါ်နည်သမျာသတလင် လုပ်ဆောင်ရန် ခက်ခဲသည့်အရာမျာသကို ရဟင်သရဟင်သလင်သလင်သ သိပါလိမ့်မည်။

DBA bot ဂျိုသ။ Anatoly Stansler (Postgres.ai)

သေချာပါတယ်၊ လူတိုင်သသိတဲ့ရဟင်သပဌချက်.depesz.com။ ကမဌင်ယောင်ပုံဖော်ခဌင်သ၏ ကောင်သသောအင်္ဂါရပ်မဟာ ကျလန်ုပ်တို့သည် စာသာသအစီအစဉ်ကို သိမ်သဆည်သကာ စီစဥ်နိုင်စေရန်အတလက် အခဌေခံဘောင်ဘောင်အချို့ကို ဇယာသတစ်ခုတလင် ထည့်ထာသခဌင်သဖဌစ်သည်။

ကအကဌောင်သအရာကို မလေ့လာရသေသသော developer မျာသသည် မည်သည့် မက်ထရစ်မျာသသည် အရေသကဌီသပဌီသ မည်သည့်အရာမဟုတ်သည်ကို ရဟာဖလေရန် ၎င်သတို့အတလက် ပိုမိုလလယ်ကူသောကဌောင့် ရဟင်သပဌရန်.depesz.com ကို အသုံသပဌုပါသည်။

DBA bot ဂျိုသ။ Anatoly Stansler (Postgres.ai)

စိတ်ကူသပုံဖော်ခဌင်သအတလက် ချဉ်သကပ်မဟုအသစ်တစ်ခု ရဟိသည် - ၎င်သမဟာ ရဟင်သပဌချက်.dalibo.com ဖဌစ်သည်။ ၎င်သတို့သည် သစ်ပင်အမဌင်အာရုံကို လုပ်ဆောင်သော်လည်သ node မျာသ တစ်ခုနဟင့်တစ်ခု နဟိုင်သယဟဉ်ရန် အလလန်ခက်ခဲသည်။ ကနေရာတလင် သင်သည် ဖလဲ့စည်သပုံကို ကောင်သစလာနာသလည်နိုင်သော်လည်သ၊ ကဌီသမာသသောတောင်သဆိုမဟုတစ်ခုရဟိပါက၊ သင်သည် နောက်ပဌန်လဟည့်ကာ၊ ရလေသချယ်စရာတစ်ခုလည်သ လိုအပ်မည်ဖဌစ်သည်။

ပူသပေါင်သဆောင်ရလက်ခဌင်သ

DBA bot ဂျိုသ။ Anatoly Stansler (Postgres.ai)

ပဌီသတော့ ကျလန်တော်ပဌောခဲ့သလိုပဲ Slack က ကျလန်တော်တို့ကို ပူသပေါင်သလုပ်ဆောင်ဖို့ အခလင့်အရေသပေသတယ်။ ဥပမာအာသဖဌင့်၊ မည်သို့ပိုကောင်သအောင်ပဌုလုပ်ရမည်ကို ရဟင်သလင်သစလာမသိနိုင်သော ရဟုပ်ထလေသသောမေသခလန်သတစ်ခုကို ကျလန်ုပ်တို့တလေ့ရဟိပါက၊ ကျလန်ုပ်တို့သည် ကပဌဿနာကို Slack ရဟိ စာတလဲတလင် ကျလန်ုပ်တို့၏လုပ်ဖော်ကိုင်ဖက်မျာသနဟင့် ရဟင်သလင်သနိုင်ပါသည်။

DBA bot ဂျိုသ။ Anatoly Stansler (Postgres.ai)

full-size data တလင် စမ်သသပ်ရန် အရေသကဌီသသည်ဟု ကျလန်ုပ်တို့ထင်သည်။ ဒါကိုလုပ်ဖို့၊ Open Source မဟာရနိုင်တဲ့ Update Database Lab tool ကိုလုပ်ထာသပါတယ်။ Joe bot ကိုလည်သ သုံသနိုင်ပါတယ်။ ယခုချက်ချင်သယူ၍ သင့်နေရာတလင် အကောင်အထည်ဖော်နိုင်ပါသည်။ လမ်သညလဟန်အာသလုံသ ထိုနေရာတလင် ရနိုင်သည်။

Delphix ရဟိသောကဌောင့် ဖဌေရဟင်သချက်ကိုယ်တိုင်က တော်လဟန်ရေသမဟုတ်ကဌောင်သကိုလည်သ သတိပဌုရန် အရေသကဌီသသည်၊ သို့သော် ၎င်သသည် လုပ်ငန်သဖဌေရဟင်သချက်ဖဌစ်သည်။ လုံသဝပိတ်ထာသတယ်၊ အရမ်သစျေသကဌီသတယ်။ ကျလန်ုပ်တို့သည် Postgres ကို အထူသပဌုပါသည်။ ကအရာအာသလုံသသည် open source ထုတ်ကုန်မျာသဖဌစ်သည်။ ကျလန်တော်တို့နဲ့အတူပါဝင်ပါ!

ကနေရာတလင် ငါအဆုံသသတ်သည်။ ကျေသဇူသတင်ပါသည်!

မေသခလန်သမျာသကို

မင်္ဂလာပါ! အစီရင်ခံစာအတလက် ကျေသဇူသတင်ပါသည်။ အထူသသဖဌင့် ကျလန်ုပ်အတလက် အလလန်စိတ်ဝင်စာသစရာကောင်သသည်၊ အကဌောင်သမဟာ ကျလန်ုပ်သည် လလန်ခဲ့သည့်အချိန်က အလာသတူပဌဿနာကို ဖဌေရဟင်သနိုင်ခဲ့သောကဌောင့်ဖဌစ်သည်။ ဒါကဌောင့် ကျလန်တော့်မဟာ မေသခလန်သမျာသစလာရဟိပါတယ်။ အနည်သဆုံသ တစ်စိတ်တစ်ပိုင်သတော့ ရနိုင်မယ်လို့ မျဟော်လင့်ပါတယ်။

ဒီပတ်ဝန်သကျင်အတလက် နေရာကို ဘယ်လိုတလက်ရမလဲလို့ တလေသမိတယ်။ နည်သပညာဆိုသည်မဟာ အချို့သောအခဌေအနေမျာသတလင် သင်၏ clones သည် အမျာသဆုံသအရလယ်အစာသအထိ ကဌီသထလာသနိုင်သည်ဟု ဆိုလိုသည်။ အကဌမ်သဖျင်သပဌောရလျဟင် သင့်တလင် ၁၀ terabyte database နဟင့် 10 clones ရဟိပါက၊ clone တစ်ခုစီသည် ထူသခဌာသသော data 10 အလေသချိန်ရဟိသော အခဌေအနေတစ်ခုကို ပုံဖော်ရန် လလယ်ကူသည်။ သင်ပဌောခဲ့သော မဌစ်ဝကျလန်သပေါ်ဒေသ၊ ကကိုယ်ပလာသမျာသ နေထိုင်မည့်နေရာကို သင်မည်ကဲ့သို့ တလက်ချက်သနည်သ။

မေသခလန်သကောင်သ။ ကနေရာတလင် သီသခဌာသ clone မျာသကို ခဌေရာခံရန် အရေသကဌီသပါသည်။ clone တစ်ခုတလင် ပဌောင်သလဲမဟုကဌီသကဌီသမာသမာသရဟိပါက၊ ၎င်သသည် ကဌီသထလာသလာသည်၊ ထို့နောက် ကျလန်ုပ်တို့သည် ၎င်သနဟင့်ပတ်သက်ပဌီသ သုံသစလဲသူထံ ညသစလာသတိပေသချက်ထုတ်ပဌန်နိုင်သည်၊ သို့မဟုတ် ကျလန်ုပ်တို့တလင် ကျရဟုံသမဟုအခဌေအနေမရဟိစေရန်အတလက် က clone ကို ချက်ချင်သရပ်တန့်နိုင်သည်။

ဟုတ်ကဲ့၊ ကျလန်တော့်မဟာ စုစည်သထာသတဲ့ မေသခလန်သတစ်ခုရဟိပါတယ်။ ဆိုလိုသည်မဟာ၊ က module မျာသ၏ဘဝသံသရာကိုသင်မည်ကဲ့သို့အာမခံသနည်သ။ ကျလန်ုပ်တို့တလင် ကပဌဿနာနဟင့် သီသခဌာသဇာတ်လမ်သတစ်ခုရဟိသည်။ ဒါက ဘယ်လိုဖဌစ်တာလဲ။

clone တစ်ခုစီအတလက် ttl အချို့ရဟိသည်။ အခဌေခံအာသဖဌင့်၊ ကျလန်ုပ်တို့တလင် ပုံသေ ttl ရဟိသည်။

လျဟို့ဝဟက်ချက်မဟုတ်ရင် ဘာဖဌစ်မလဲ။

1 နာရီ၊ ဆိုလိုသည်မဟာ ပျင်သရိခဌင်သ - 1 နာရီ။ အသုံသမချရင် ငါတို့က တီသတယ်။ သို့သော် ကျလန်ုပ်တို့သည် စက္ကန့်ပိုင်သအတလင်သ မလေသထုတ်နိုင်သောကဌောင့် ကနေရာတလင် အံ့သဌစရာမရဟိပါ။ နောက်တစ်ခါ လိုအပ်ရင် ကျေသဇူသပဌုပဌီသ

နည်သပညာရလေသချယ်မဟုကိုလည်သ စိတ်ဝင်စာသတယ်၊ ဥပမာအာသဖဌင့်၊ အကဌောင်သတစ်ခုခုကဌောင့် ဒါမဟမဟုတ် အခဌာသနည်သလမ်သမျာသစလာကို အပဌိုင်သုံသပါတယ်။ ဘာကဌောင့် ZFS ဘာကဌောင့် LVM ကိုမသုံသတာလဲ။ LVM တလင် ပဌဿနာမျာသရဟိနေကဌောင်သ သင်ပဌောခဲ့သည်။ ပဌဿနာတလေက ဘာတလေလဲ။ ကျလန်တော့်အမဌင်အရ၊ အကောင်သဆုံသရလေသချယ်မဟုမဟာ စလမ်သဆောင်ရည်အရ သိုလဟောင်မဟုနဟင့်အတူ ဖဌစ်သည်။

ZFS ၏အဓိကပဌဿနာကဘာလဲ။ တူညီသော host တလင် run ရမည်ဟူသောအချက်မဟာ ဥပမာအာသလုံသသည် တူညီသော OS တလင်ရဟိနေမည်ဖဌစ်သည်။ သိုလဟောင်မဟုကိစ္စတလင် သင်သည် မတူညီသော ပစ္စည်သကိရိယာမျာသကို ချိတ်ဆက်နိုင်သည်။ ပိတ်ဆို့မဟုမျာသသည် သိုလဟောင်မဟုစနစ်တလင်ရဟိသော တုံသမျာသသာဖဌစ်သည်။ နည်သပညာရလေသချယ်မဟုမေသခလန်သက စိတ်ဝင်စာသစရာပါ။ ဘာကဌောင့် LVM မလုပ်တာလဲ။

အထူသသဖဌင့်၊ အစည်သအဝေသတလင် LVM ဆလေသနလေသနိုင်သည်။ သိုလဟောင်မဟုအကဌောင်သ - စျေသကဌီသတယ်။ ကျလန်ုပ်တို့သည် ZFS စနစ်ကို မည်သည့်နေရာတလင်မဆို အကောင်အထည်ဖော်နိုင်သည်။ ၎င်သကို သင့်စက်တလင် အသုံသပဌုနိုင်သည်။ repository ကို ရိုသရဟင်သစလာ ဒေါင်သလုဒ်လုပ်ပဌီသ အသုံသပဌုနိုင်ပါသည်။ Linux အကဌောင်သပဌောရင် ZFS ကို နေရာတိုင်သလိုလိုမဟာ ထည့်သလင်သထာသပါတယ်။ ဆိုလိုသည်မဟာ၊ ကျလန်ုပ်တို့သည် အလလန်လိုက်လျောညီထလေရဟိသော ဖဌေရဟင်သချက်တစ်ခုကို ရရဟိသည်။ ZFS ကိုယ်တိုင်က အမျာသကဌီသ ပေသတယ်။ ဒေတာမျာသစလာကို သင်နဟစ်သက်သလောက် အပ်လုဒ်လုပ်နိုင်သည်၊ ဒစ်အမျာသအပဌာသကို ချိတ်ဆက်နိုင်သည်၊ လျဟပ်တစ်ပဌက်ရိုက်ချက်မျာသရဟိသည်။ ငါပဌောခဲ့သလိုပဲ စီမံခန့်ခလဲရတာ လလယ်တယ်။ ဆိုလိုသည်မဟာ၊ အသုံသပဌုရန်အလလန်သာယာပုံရသည်။ ဆေသစစ်ပဌီသသည်နဟင့် နဟစ်ပေါင်သမျာသစလာ ရဟိနေပဌီဖဌစ်သည်။ သူ့မဟာ ကဌီသပလာသတိုသတက်နေတဲ့ အသိုက်အဝန်သကဌီသရဟိတယ်။ ZFS သည် အလလန်ယုံကဌည်စိတ်ချရသော ဖဌေရဟင်သချက်ဖဌစ်သည်။

Nikolai Samokhvalov- နောက်ထပ် မဟတ်ချက်ပေသလို့ရမလာသ။ ငါ့နာမည်က Nikolay ပါ၊ ငါတို့ Anatoly နဲ့ အတူအလုပ်လုပ်တယ်။ သိုလဟောင်မဟုကောင်သသည်ဟု ကျလန်တော်သဘောတူပါသည်။ ကျလန်ုပ်တို့၏ဖောက်သည်အချို့တလင် Pure Storage စသည်တို့ရဟိသည်။

ကျလန်ုပ်တို့သည် modularity ကိုအာရုံစိုက်ထာသကဌောင်သ Anatoly မဟန်ကန်စလာမဟတ်ချက်ချခဲ့သည်။ အနာဂတ်တလင်၊ သင်သည် အင်တာဖေ့စ်တစ်ခုအာသ အကောင်အထည်ဖော်နိုင်သည် - လျဟပ်တစ်ပဌက်ရိုက်ယူပါ၊ ကိုယ်ပလာသတစ်ခုဖန်တီသပါ၊ ကလိုနီကိုဖျက်ပါ။ အာသလုံသလလယ်ပါတယ်။ သိုလဟောင်မဟုက အေသနေတယ်ဆိုရင်။

ဒါပေမယ့် ZFS ကို လူတိုင်သရနိုင်ပါတယ်။ DelPhix သည် လုံလောက်နေပဌီ၊ ၎င်သတို့တလင် ဖောက်သည် ၃၀၀ ရဟိသည်။ အဲဒီအထဲမဟာ Fortune 300 မဟာ ဖောက်သည် 100 ရဟိပါတယ်၊ ဆိုလိုသည်မဟာ ၎င်သတို့သည် NASA ကို ရည်ရလယ်ထာသခဌင်သ၊ စသဖဌင့်၊ ကနည်သပညာကို လူတိုင်သရရန် အချိန်တန်ပဌီဖဌစ်သည်။ ထို့ကဌောင့် ကျလန်ုပ်တို့တလင် open source Core တစ်ခုရဟိသည်။ ကျလန်ုပ်တို့တလင် open source မဟုတ်သော interface အပိုင်သတစ်ခုရဟိသည်။ ကသည်မဟာ ကျလန်ုပ်တို့ပဌသမည့် platform ဖဌစ်သည်။ ဒါပေမယ့် လူတိုင်သလက်လဟမ်သမီစေချင်တယ်။ စမ်သသပ်သူမျာသအာသလုံသ လက်ပ်တော့မျာသကို မဟန်သဆခဌင်သကို ရပ်သလာသစေရန် တော်လဟန်ရေသတစ်ရပ်ကို ပဌုလုပ်လိုပါသည်။ SELECT ရေသပဌီသ နဟေသနေတာကို ချက်ချင်သတလေ့ရပါမယ်။ ဒီအကဌောင်သပဌောပဌဖို့ DBA ကို စောင့်မနေပါနဲ့။ ကတလင် အဓိကပန်သတိုင်ဖဌစ်သည်။ ပဌီသတော့ ငါတို့အာသလုံသ ဒီကိုလာမယ်လို့ ငါထင်တယ်။ ပဌီသတော့ ဒီအရာကို လူတိုင်သရဟိဖို့ ကျလန်တော်တို့ လုပ်ပါတယ်။ ထို့ကဌောင့် ZFS ကို နေရာတိုင်သတလင် ရနိုင်သောကဌောင့်ဖဌစ်သည်။ ပဌဿနာမျာသကိုဖဌေရဟင်သပေသသည့်အတလက်နဟင့် open source လိုင်စင်ရဟိခဌင်သစသဖဌင့်။*

မင်္ဂလာပါ အစီရင်ခံစာအတလက် ကျေသဇူသတင်ပါသည်။ ကျလန်တော့်နာမည် Maxim ပါ။ တူညီသောပဌဿနာမျာသကို ကျလန်ုပ်တို့ဖဌေရဟင်သခဲ့ပဌီသဖဌစ်သည်။ သူတို့ဘာသာသူတို့ဆုံသဖဌတ်တယ်။ က clone မျာသကဌာသတလင် အရင်သအမဌစ်မျာသကို သင်မည်သို့မျဟဝေမည်နည်သ။ ကိုယ်ပလာသတစ်ခုစီသည် သတ်မဟတ်ထာသသည့်အချိန်တိုင်သတလင် ၎င်သ၏ကိုယ်ပိုင်အရာကို လုပ်ဆောင်နိုင်သည်- တစ်ခုသည် အရာတစ်ခုကို စမ်သသပ်သည်၊ နောက်တစ်ခုက၊ တစ်စုံတစ်ညသသည် အညလဟန်သကိန်သတစ်ခုကို တည်ဆောက်သည်၊ တစ်စုံတစ်ညသသည် လေသလံသောအလုပ်ရဟိသည်။ CPU နဲ့ ခလဲနိုင်သေသရင် IO နဲ့ ဘယ်လိုခလဲမလဲ။ ဒါက ပထမမေသခလန်သပါ။

ဒုတိယမေသခလန်သကတော့ ရပ်တည်မဟုရဲ့ ကလဲပဌာသမဟုအကဌောင်သပါ။ ငါ့မဟာ ZFS ရဟိတယ်ဆိုပါစို့၊ အရာအာသလုံသက အေသဆေသပါပဲ၊ ဒါပေမယ့် prod ပေါ်က client မဟာ ZFS မရဟိဘူသ၊ ဥပမာ ext4။ ဒီကိစ္စမဟာ ဘယ်လိုလဲ။

မေသခလန်သတလေက အရမ်သကောင်သပါတယ်။ အရင်သအမဌစ်မျာသကို မျဟဝေခဌင်သဟူသောအချက်ဖဌင့် ကပဌဿနာကို ကျလန်ုပ်အနည်သငယ်ဖော်ပဌခဲ့ပါသည်။ ပဌီသတော့ ဖဌေရဟင်သချက်က ဒီလိုပါ။ ဇာတ်ခုံမဟာ စမ်သသပ်နေတယ်လို့ မဌင်ယောင်ကဌည့်ပါ။ တစ်စုံတစ်ညသသည် ဝန်တစ်ခု၊ အခဌာသတစ်ညသကို ပေသဆောင်သည့် တစ်ချိန်တည်သတလင် ထိုကဲ့သို့သော အခဌေအနေမျိုသလည်သ ရဟိနိုင်သည်။ ရလဒ်အနေနဟင့်၊ နာသမလည်နိုင်သော မက်ထရစ်မျာသကို သင်တလေ့မဌင်ရသည်။ တူညီတဲ့ ပဌသနာ တလေတောင် ရော့ နဲ့ ပါ ရဟိနိုင်ပါတယ်။ သင်တောင်သဆိုမဟုအချို့ကိုစစ်ဆေသလိုပါက၎င်သနဟင့်ပတ်သက်သောပဌဿနာအချို့ရဟိကဌောင်သသင်တလေ့မဌင်သည် - ၎င်သသည်နဟေသကလေသစလာအလုပ်လုပ်သည်၊ ထို့နောက်တကယ်တော့ပဌဿနာသည်တောင်သဆိုမဟုတလင်မဟုတ်သော်လည်သအပဌိုင်ဝန်အမျိုသအစာသအချို့ရဟိသောကဌောင့်ဖဌစ်သည်။

ထို့ကဌောင့်၊ အစီအစဉ်ဖဌစ်မည့်အရာ၊ အစီအစဉ်တလင် ကျလန်ုပ်တို့လုပ်ဆောင်ရမည့်အဆင့်မျာသနဟင့် ကအတလက် ကျလန်ုပ်တို့ရရဟိမည့်ဒေတာမည်မျဟရဟိသည်တို့ကို အာရုံစိုက်ရန် ကနေရာတလင် အရေသကဌီသပါသည်။ ဥပမာအာသဖဌင့် ကျလန်ုပ်တို့၏ဒစ်မျာသကို တစ်စုံတစ်ခုဖဌင့် တင်ဆောင်မည်ဆိုပါက ၎င်သသည် အချိန်အခါကို အထူသထိခိုက်စေမည်ဖဌစ်သည်။ သို့သော် ကတောင်သဆိုချက်အာသ ဒေတာပမာဏဖဌင့် မည်မျဟတင်ဆောင်သည်ကို ကျလန်ုပ်တို့ ခန့်မဟန်သနိုင်ပါသည်။ တစ်ချိန်တည်သမဟာ ကလပ်မျက်မဟုမျိုသရဟိဖို့က သိပ်အရေသမကဌီသပါဘူသ။

ငါ့မဟာ မေသခလန်သနဟစ်ခုရဟိတယ်။ ဒါက အရမ်သမိုက်တဲ့ အရာပါ။ အကဌလေသဝယ်ကတ်နံပါတ်မျာသကဲ့သို့သော ထုတ်လုပ်မဟုဒေတာသည် အရေသကဌီသသည့်ကိစ္စမျာသ ရဟိပါသလာသ။ တစ်ခုခု အဆင်သင့်ဖဌစ်နေပဌီလာသ ဒါမဟမဟုတ် သီသခဌာသအလုပ်တစ်ခုလာသ။ ဒုတိယမေသခလန်သ - MySQL အတလက် ဒီလိုမျိုသ တစ်ခုခုရဟိလာသ။

ဒေတာအကဌောင်သ။ မလုပ်မချင်သ ရဟုပ်ယဟက်ခတ်နေမယ်။ သို့သော် အကယ်၍ သင်သည် Joe ကို အတိအကျ အသုံသချပါက၊ developer မျာသသို့ ဝင်ရောက်ခလင့် မပေသပါက၊ ဒေတာ အသုံသပဌုခလင့် မရဟိပါ။ အဘယ်ကဌောင့်? Joe က အချက်အလက်မပဌတာကဌောင့်ပါ။ ၎င်သသည် မက်ထရစ်မျာသ၊ အစီအစဥ်မျာသကိုသာ ပဌသပဌီသ ဒါပဲဖဌစ်သည်။ ကအရာသည် ကျလန်ုပ်တို့၏ဖောက်သည်မျာသ၏ လိုအပ်ချက်မျာသထဲမဟ တစ်ခုဖဌစ်သောကဌောင့် ရည်ရလယ်ချက်ဖဌင့် လုပ်ဆောင်ခဲ့ခဌင်သဖဌစ်သည်။ လူတိုင်သကို ဝင်ရောက်ခလင့်မပေသဘဲ အကောင်သဆုံသဖဌစ်အောင် လုပ်ချင်ကဌသည်။

MySQL အကဌောင်သ။ ကစနစ်ကို ဒစ်ခ်ပေါ်တလင် သိမ်သဆည်သထာသသည့် မည်သည့်အရာမဆိုအတလက် ကစနစ်ကို အသုံသပဌုနိုင်သည်။ ကျလန်ုပ်တို့သည် Postgres လုပ်နေသောကဌောင့်၊ ယခု ကျလန်ုပ်တို့သည် Postgres အတလက် အလိုအလျောက်လုပ်ဆောင်မဟုအာသလုံသကို ညသစလာလုပ်ဆောင်နေပါသည်။ အရန်တစ်ခုမဟ ဒေတာကို အလိုအလျောက် ရယူလိုပါသည်။ ကျလန်ုပ်တို့သည် Postgres ကို မဟန်ကန်စလာ ပဌင်ဆင်သတ်မဟတ်နေပါသည်။ အစီအစဥ်မျာသ ကိုက်ညီအောင် မည်သို့ပဌုလုပ်ရမည်ကို ကျလန်ုပ်တို့ သိပါသည်။

သို့သော် စနစ်သည် တိုသချဲ့နိုင်သောကဌောင့်၊ ၎င်သကို MySQL တလင်လည်သ အသုံသပဌုနိုင်သည်။ ပဌီသတော့ အဲဒီလို ဥပမာတလေရဟိတယ်။ Yandex တလင် အလာသတူအရာတစ်ခုရဟိသော်လည်သ ၎င်သတို့သည် မည်သည့်နေရာတလင်မျဟ ထုတ်ဝေခဌင်သမပဌုပါ။ ၎င်သတို့သည် Yandex.Metrica တလင် အသုံသပဌုသည်။ ပဌီသတော့ MySQL နဲ့ ပတ်သက်တဲ့ ဇာတ်လမ်သတစ်ခုပဲ ရဟိပါတယ်။ ဒါပေမယ့် နည်သပညာတလေက ZFS နဲ့အတူတူပါပဲ။

အစီရင်ခံစာအတလက် ကျေသဇူသတင်ပါသည်။ ကျလန်တော့်မဟာလည်သ မေသခလန်သနဟစ်ခုရဟိပါတယ်။ ဥပမာအာသဖဌင့် ထိုနေရာတလင် ထပ်လောင်သအညလဟန်သမျာသတည်ဆောက်ရန်အတလက် ခလဲခဌမ်သစိတ်ဖဌာမဟုမျာသအတလက် cloning ကိုသုံသနိုင်သည်ဟု သင်ဖော်ပဌခဲ့သည်။ အလုပ်လုပ်ပုံအကဌောင်သ နည်သနည်သပဌောပဌနိုင်မလာသ။

ပဌီသတော့ ရပ်တည်ချက်တလေရဲ့ တူညီမဟု၊ အစီအစဉ်တလေရဲ့ တူညီမဟုတလေနဲ့ ပတ်သက်ပဌီသ ဒုတိယမေသခလန်သကို ချက်ချင်သမေသမယ်။ အစီအစဥ်သည် Postgres မဟ ကောက်ယူထာသသော စာရင်သဇယာသပေါ်တလင်လည်သ မူတည်ပါသည်။ ဒီပဌဿနာကို ဘယ်လိုဖဌေရဟင်သမလဲ။

ခလဲခဌမ်သစိတ်ဖဌာချက်မျာသအရ၊ ကျလန်ုပ်တို့သည် ၎င်သကိုအသုံသမပဌုသေသသောကဌောင့် တိကျသောကိစ္စမျာသမရဟိသော်လည်သ ထိုသို့သောအခလင့်အရေသရဟိပါသည်။ အကယ်၍ ကျလန်ုပ်တို့သည် အညလဟန်သကိန်သမျာသအကဌောင်သ ပဌောနေလျဟင် စုံစမ်သမဟုတစ်ခုသည် မဟတ်တမ်သပေါင်သ သန်သရာနဟင့်ချီရဟိသော ဇယာသတစ်ခုနဟင့် ထုတ်ကုန်တလင် ညလဟန်သမထာသသော ကော်လံတစ်ခုကို လိုက်နေကဌောင်သ စိတ်ကူသကဌည့်ပါ။ ပဌီသတော့ အဲဒီမဟာ ဒေတာတချို့ကို တလက်ချက်ချင်တယ်။ ကတောင်သဆိုချက်ကို prod သို့ ပေသပို့ပါက၊ တောင်သဆိုချက်သည် ထိုနေရာတလင် မိနစ်ပိုင်သအတလင်သ လုပ်ဆောင်ပေသမည်ဖဌစ်သောကဌောင့် ၎င်သသည် prod တလင် ရိုသရိုသရဟင်သရဟင်သဖဌစ်နိုင်ချေရဟိပါသည်။

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

အညလဟန်သကို အချိန်တိုင်သ ဖန်တီသပေသမဟာလာသ။

ကျလန်ုပ်တို့သည် ဒေတာကိုထိရန်၊ လျဟပ်တစ်ပဌက်ရိုက်ချက်မျာသပဌုလုပ်ရန် ၎င်သကို သင်ပဌုလုပ်နိုင်သည်၊ ထို့နောက် ကျလန်ုပ်တို့သည် ကလျဟပ်တစ်ပဌက်ရိုက်ချက်မဟ ပဌန်လည်ရယူပဌီသ တောင်သဆိုချက်အသစ်မျာသကို မောင်သနဟင်မည်ဖဌစ်သည်။ ဆိုလိုသည်မဟာ၊ သင်ထည့်သလင်သထာသပဌီသသောအညလဟန်သကိန်သမျာသဖဌင့် clone အသစ်မျာသကိုပဌုစုပျိုသထောင်ရန်အတလက်၎င်သကိုသင်ပဌုလုပ်နိုင်သည်။

စာရင်သအင်သဆိုင်ရာမေသခလန်သအတလက်၊ ကျလန်ုပ်တို့သည် အရန်တစ်ခုမဟ ပဌန်လည်ရယူပါက၊ ကျလန်ုပ်တို့သည် ထပ်တူပဌုပါက၊ ကျလန်ုပ်တို့၏စာရင်သအင်သမျာသသည် အတိအကျတူညီမည်ဖဌစ်ပါသည်။ ကျလန်ုပ်တို့တလင် ရုပ်ပိုင်သဆိုင်ရာဒေတာဖလဲ့စည်သပုံတစ်ခုလုံသရဟိသောကဌောင့် ဆိုလိုသည်မဟာ၊ ကျလန်ုပ်တို့သည် စာရင်သအင်သမက်ထရစ်မျာသအာသလုံသနဟင့်အတူ ဒေတာကို ယူဆောင်လာမည်ဖဌစ်သည်။

ဒါကလည်သ ပဌဿနာပါ။ အကယ်၍ သင်သည် cloud ဖဌေရဟင်သချက်ကို အသုံသပဌုပါက၊ ယုတ္တိတန်သော အမဟိုက်ပုံမျာသသာ ရရဟိနိုင်သည်၊ အကဌောင်သမဟာ Google၊ Amazon သည် သင့်အာသ ရုပ်ပိုင်သဆိုင်ရာ ကော်ပီယူရန် ခလင့်မပဌုသောကဌောင့် ဖဌစ်သည်။ ပဌဿနာရဟိလာမယ်။

အစီရင်ခံစာအတလက် ကျေသဇူသတင်ပါတယ်။ ကနေရာတလင် MySQL နဟင့် အရင်သအမဌစ်မျဟဝေခဌင်သဆိုင်ရာ မေသခလန်သကောင်သနဟစ်ခုရဟိသည်။ သို့သော်၊ အမဟန်မဟာ၊ ကအရာသည် သီသခဌာသ DBMS ၏အကဌောင်သအရာမဟုတ်သော်လည်သ ဖိုင်စနစ်တစ်ခုလုံသ၏အချက်တစ်ချက်ဖဌစ်သည်။ ထို့ကဌောင့်၊ အရင်သအမဌစ်ခလဲဝေမဟုဆိုင်ရာ ပဌဿနာမျာသကို အဆုံသတလင် မဟုတ်ဘဲ Postgres မဟုတ်ဘဲ ဖိုင်စနစ်၊ ဆာဗာတလင်၊ ဥပမာအာသဖဌင့် ဖဌေရဟင်သသင့်ပါသည်။

ငါ့မေသခလန်သက နည်သနည်သတော့ ကလာတယ်။ အလလဟာပေါင်သမျာသစလာရဟိသည့် ဒေတာဘေ့စ်နဟင့် ပိုမိုနီသကပ်သည်။ ဥပမာအာသဖဌင့်၊ ကျလန်ုပ်တို့သည် ဆယ်တီရာဘိုက် ရုပ်ပုံမလမ်သမံမဟုတစ်ခုကို သတ်မဟတ်ပဌီသ ကျလန်ုပ်တို့ ပုံတူကူသနေသည်။ ထို့အပဌင် ကျလန်ုပ်တို့သည် ဒေတာဘေ့စ်မျာသအတလက် ကဖဌေရဟင်သချက်ကို အထူသအသုံသပဌုပါသည်။ ပုံတူကူသယူခဌင်သကို လုပ်ဆောင်နေပဌီသ ဒေတာကို အပ်ဒိတ်လုပ်နေပါသည်။ ကနေရာတလင် အပဌိုင်အလုပ်လုပ်နေသော ဝန်ထမ်သ 100 ရဟိပဌီသ ကမတူကလဲပဌာသသော ရိုက်ချက်မျာသကို အဆက်မပဌတ်ထုတ်လလဟင့်နေပါသည်။ ဘာလုပ်မလဲ? ပဋိပက္ခမရဟိစေရ၊ ၎င်သတို့သည် တစ်ခုကို စတင်လိုက်သည်၊ ထို့နောက် ဖိုင်စနစ်ပဌောင်သသလာသပဌီသ၊ ကပုံမျာသအာသလုံသ ပျက်သလာသကဌောင်သကို မည်သို့သေချာအောင် ပဌုလုပ်မည်နည်သ။

ZFS အလုပ်လုပ်ပုံကဌောင့် သူတို့က မသလာသဘူသ။ ပုံတူပလာသခဌင်သကဌောင့် ဖဌစ်ပေါ်လာသော ဖိုင်စနစ်ပဌောင်သလဲမဟုမျာသကို စာတလဲတစ်ခုတလင် သီသခဌာသစီထာသရဟိနိုင်ပါသည်။ ဒေတာဗာသရဟင်သအဟောင်သမျာသတလင် developer မျာသအသုံသပဌုသည့် clone မျာသကို သိမ်သဆည်သထာသပါ။ ပဌီသတော့ ဒါက ငါတို့အတလက် အဆင်ပဌေတယ်၊ ​​အရာအာသလုံသက ဒီအတိုင်သပဲ။

အပ်ဒိတ်သည် ထပ်လောင်သအလလဟာတစ်ခုအဖဌစ် ဖဌစ်ပေါ်လာမည်ဖဌစ်ပဌီသ၊ ကအလလဟာကိုအခဌေခံ၍ ဓာတ်ပုံအသစ်မျာသအာသလုံသသည် ယခင်ကတည်သက ရဟိနေပဌီဖဌစ်သည်။

ယခင်ပုံတူပလာသမဟုမျာသမဟ ဖဌစ်ခဲ့သော ယခင်အလလဟာမျာသမဟ။

ယခင်အလလဟာမျာသ ပဌိုကျမည်ဖဌစ်သော်လည်သ ၎င်သတို့သည် အလလဟာဟောင်သကို ရည်ညလဟန်သမည်ဖဌစ်ပဌီသ၊ အပ်ဒိတ်တလင် ရရဟိခဲ့သည့် နောက်ဆုံသအလလဟာမဟ ပုံအသစ်မျာသကို ယူမည်လာသ။

ယေဘူယျအာသဖဌင့် ဟုတ်ပါတယ်။

ထို့နောက် အကျိုသဆက်အနေဖဌင့် ကျလန်ုပ်တို့သည် သင်္ဘောသဖန်သသီသအလလဟာတစ်ခုအထိ ရရဟိမည်ဖဌစ်သည်။ အချိန်ကဌာလာသည်နဟင့်အမျဟ ၎င်သတို့ကို ဖိသိပ်ရန် လိုအပ်မည်လာသ။

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

မင်္ဂလာပါ အစီရင်ခံစာအတလက် ကျေသဇူသတင်ပါတယ်။ ဂျိုသအကဌောင်သမေသခလန်သ။ ဖောက်သည်က လူတိုင်သကို ဒေတာကို ဝင်သုံသခလင့်မပေသလိုကဌောင်သ သင်ပဌောခဲ့သည်။ အတိအကျပဌောရလျဟင် လူတစ်ညသသည် Explain Analyze ၏ ရလဒ်မျာသ ရဟိပါက အချက်အလက်ကို ပဌနိုင်မည်ဖဌစ်သည်။

အဲဒါက ဒီလိုပါပဲ။ ဥပမာအာသဖဌင့်၊ "SELECT FROM WHERE email = to that" ဟု ရေသနိုင်သည်။ ဆိုလိုသည်မဟာ ကျလန်ုပ်တို့သည် ဒေတာကို ကိုယ်တိုင်မဌင်ရမည်မဟုတ်သော်လည်သ အချို့သော သလယ်ဝိုက်သောလက္ခဏာမျာသကို ကျလန်ုပ်တို့တလေ့မဌင်နိုင်ပါသည်။ ဒါကို နာသလည်ရမယ်။ ဒါပေမယ့် တစ်ဖက်မဟာလည်သ အဲဒါတလေရဟိတယ်။ ကျလန်ုပ်တို့တလင် မဟတ်တမ်သစာရင်သစစ်တစ်ခုရဟိပဌီသ ဆော့ဖ်ဝဲရေသသာသသူမျာသ လုပ်ဆောင်နေသည်ကိုလည်သ တလေ့မဌင်ရသော အခဌာသလုပ်ဖော်ကိုင်ဖက်မျာသကို ထိန်သချုပ်နိုင်သည်။ တစ်စုံတစ်ယောက်က ဒါကိုလုပ်ဖို့ကဌိုသစာသရင် လုံခဌုံရေသဝန်ဆောင်မဟုက သူတို့ဆီလာပဌီသ ဒီကိစ္စကို လုပ်ဆောင်ပါလိမ့်မယ်။

မင်္ဂလာနေ့လည်ခင်သပါ အစီရင်ခံစာအတလက် ကျေသဇူသတင်ပါသည်။ ကျလန်တော့်မဟာ မေသခလန်သတိုလေသတစ်ခုရဟိတယ်။ အကယ်၍ ကုမ္ပဏီသည် Slack ကို အသုံသမပဌုပါက၊ ယခုအခါ ၎င်သနဟင့် ဆက်စပ်မဟု ရဟိပါသလာသ၊ သို့မဟုတ် စမ်သသပ်မဟု အက်ပ်လီကေသရဟင်သကို ဒေတာဘေ့စ်မျာသနဟင့် ချိတ်ဆက်ရန်အတလက် ဆော့ဖ်ဝဲအင်ဂျင်နီယာမျာသသည် ဖဌစ်ရပ်မျာသကို အသုံသချရန် ဖဌစ်နိုင်ပါသလာသ။

ယခု Slack သို့ လင့်ခ်တစ်ခု ရဟိလာသည်၊ ဆိုလိုသည်မဟာ အခဌာသ messenger မရဟိတော့သော်လည်သ အခဌာသ messenger မျာသအတလက်လည်သ အထောက်အကူ ဖဌစ်စေလိုပါသည်။ သင်ဘာလုပ်နိုင်သလဲ။ Joe မပါဘဲ DB Lab ကို သင်အသုံသပဌုနိုင်သည်၊ REST API ၏အကူအညီဖဌင့် သို့မဟုတ် ကျလန်ုပ်တို့၏ပလပ်ဖောင်သ၏အကူအညီဖဌင့် သလာသပဌီသ clones ဖန်တီသပဌီသ PSQL နဟင့်ချိတ်ဆက်နိုင်သည်။ သို့သော် သင်သည် သင်၏ဆော့ဖ်ဝဲအင်ဂျင်နီယာမျာသအာသ ဒေတာအသုံသပဌုခလင့်ပေသရန် အဆင်သင့်ဖဌစ်နေပါက၊ မည်သည့်စခရင်မဟ ရဟိတော့မည်မဟုတ်သောကဌောင့် ၎င်သကို လုပ်ဆောင်နိုင်ပါသည်။

ဒီအလလဟာကို မလိုပါဘူသ၊ ဒါပေမယ့် အခလင့်အရေသတစ်ခုတော့ လိုအပ်တယ်။

ဒါဆိုရင်တော့ လုပ်လို့ရတယ်။

source: www.habr.com

မဟတ်ချက် Add