NewSQL = NoSQL+ACID
မကဌာသေသမီအထိ၊ Odnoklassniki သည် SQL Server တလင် အချိန်နဟင့်တပဌေသညီ လုပ်ဆောင်ပဌီသ ဒေတာ 50 TB ခန့်ကို သိမ်သဆည်သထာသသည်။ ထိုသို့သောပမာဏအတလက်၊ SQL DBMS ကိုအသုံသပဌု၍ ဒေတာစင်တာပျက်ကလက်မဟုဒဏ်ခံနိုင်သောဝင်ရောက်ခလင့်ကိုပင်လျဟင်မဌန်ပဌီသယုံကဌည်စိတ်ချရသောအသုံသပဌုခလင့်ကိုပေသစလမ်သရန်မဟာမဖဌစ်နိုင်ပေ။ ပုံမဟန်အာသဖဌင့်၊ ထိုသို့သောအခဌေအနေမျိုသတလင်၊ NoSQL သိုလဟောင်မဟုထဲမဟ တစ်ခုကို အသုံသပဌုသော်လည်သ အရာအာသလုံသကို NoSQL သို့ လလဟဲပဌောင်သမရနိုင်ပါ- အချို့သော အရာမျာသသည် ACID အရောင်သအ၀ယ်အာမခံချက် လိုအပ်ပါသည်။

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

ဘယ်လိုအလုပ်လုပ်သလဲ - ဖဌတ်တောက်မဟုအောက်မဟာဖတ်ပါ။

ယနေ့တလင်၊ Odnoklassniki ၏လစဉ်ပရိသတ်သည် ထူသခဌာသသောလာရောက်လည်ပတ်သူ သန်သ 70 ကျော်ရဟိသည်။ ကျလန်တော်တို ကျလန်ုပ်တို့သည် ထိပ်ဆုံသငါသညသတလင် ရဟိသည်။ ကမ္ဘာပေါ်တလင် အကဌီသဆုံသ လူမဟုကလန်ရက်မျာသနဟင့် သုံသစလဲသူမျာသ အချိန်အမျာသဆုံသ အသုံသပဌုသည့် ဆိုက်နဟစ်ဆယ်တို့တလင် ဖဌစ်သည်။ OK အခဌေခံအဆောက်အအုံသည် အလလန်မဌင့်မာသသောဝန်မျာသကို ကိုင်တလယ်သည်- ရဟေ့တစ်ရက်လျဟင် HTTP တောင်သဆိုချက်ပေါင်သ တစ်သန်သကျော်။ အပိုင်သ 8000 ကျော်ရဟိသော ဆာဗာတပ်စုတစ်ခု၏ အစိတ်အပိုင်သမျာသသည် တစ်ခုနဟင့်တစ်ခု နီသကပ်စလာတည်ရဟိသည် - ၎င်သတို့ကဌာသတလင် 1 ms ထက်နည်သသော network latency ကိုသေချာစေသည့် Moscow ဒေတာစင်တာလေသခုတလင်တည်ရဟိသည်။

ကျလန်ုပ်တို့သည် ဗာသရဟင်သ 2010 မဟစတင်ကာ 0.6 ခုနဟစ်ကတည်သက Cassandra ကိုအသုံသပဌုခဲ့သည်။ ယနေ့တလင် လည်ပတ်နေသော အစုအဖလဲ့ ဒါဇင်မျာသစလာရဟိသည်။ အမဌန်ဆုံသအစုအဖလဲ့သည် တစ်စက္ကန့်လျဟင် လုပ်ဆောင်ချက်ပေါင်သ 4 သန်သကျော်ကို လုပ်ဆောင်နေပဌီသ အကဌီသဆုံသ 260 TB စတိုသဆိုင်မျာသ။

သို့သော်၊ ၎င်သတို့အာသလုံသသည် သိုလဟောင်မဟုအတလက် အသုံသပဌုသည့် သာမန် NoSQL အစုအဝေသမျာသဖဌစ်သည်။ ညဟိနဟိုင်သမဟုအာသနည်သတယ်။ ဒေတာ။ Odnoklassniki ကို စတင်တည်ထောင်ကတည်သက အသုံသပဌုခဲ့သည့် အဓိက တသမတ်တည်သ သိုလဟောင်မဟုဖဌစ်သော Microsoft SQL Server ကို ကျလန်ုပ်တို့ အစာသထိုသလိုပါသည်။ သိုလဟောင်မဟုတလင် ဒေတာ 300 TB ပါရဟိသော SQL Server Standard Edition စက် 50 ကျော် ပါဝင်ပါသည်။ ကဒေတာကို ACID အရောင်သအ၀ယ်လုပ်ငန်သမျာသ၏ တစ်စိတ်တစ်ပိုင်သအဖဌစ် ပဌင်ဆင်ပဌီသ လိုအပ်ပါသည်။ မဌင့်မာသသောကိုက်ညီမဟု.

SQL Server node မျာသတစ်လျဟောက် ဒေတာဖဌန့်ဝေရန် ဒေါင်လိုက်နဟင့် အလျာသလိုက် နဟစ်မျိုသလုံသကို အသုံသပဌုခဲ့သည်။ ပိုင်သခဌာသခဌင်သ။ (ခလဲထုတ်ခဌင်သ)။ သမိုင်သအရ၊ ကျလန်ုပ်တို့သည် ရိုသရဟင်သသောဒေတာခလဲထုတ်ခဌင်သအစီအစဉ်ကို အသုံသပဌုခဲ့သည်- တစ်ခုချင်သစီသည် တိုကင်တစ်ခုနဟင့် ဆက်စပ်နေသည် - entity ID ၏လုပ်ဆောင်ချက်တစ်ခုဖဌစ်သည်။ တူညီသော တိုကင်ပါသော အရာမျာသကို တူညီသော SQL ဆာဗာတလင် ထာသရဟိခဲ့သည်။ ပင်မနဟင့် ကလေသမဟတ်တမ်သမျာသ၏ တိုကင်မျာသကို အမဌဲတမ်သကိုက်ညီပဌီသ တူညီသောဆာဗာပေါ်တလင် တည်ရဟိစေရန် မာစတာအသေသစိတ်ဆက်ဆံရေသကို အကောင်အထည်ဖော်ခဲ့သည်။ လူမဟုကလန်ရက်တစ်ခုတလင်၊ အသုံသပဌုသူကိုယ်စာသ မဟတ်တမ်သမျာသအာသလုံသကို ထုတ်ပေသသည် - ဆိုလိုသည်မဟာ အလုပ်လုပ်နိုင်သောစနစ်ခလဲတစ်ခုအတလင်သရဟိ သုံသစလဲသူဒေတာအာသလုံသကို ဆာဗာတစ်ခုပေါ်တလင် သိမ်သဆည်သထာသသည်။ ဆိုလိုသည်မဟာ၊ လုပ်ငန်သတစ်ခုတလင် SQL server တစ်ခုမဟ ဇယာသမျာသ အမဌဲလိုလို ပါ၀င်နေသောကဌောင့် local ACID အရောင်သအ၀ယ်မျာသကို အသုံသပဌုစရာမလိုဘဲ data ကိုက်ညီမဟုရဟိစေရန်၊ နဟေသကလေသပဌီသ စိတ်မချရပါ။ ဖဌန့်ဝေထာသသော ACID အရောင်သအ၀ယ်။

sharding နဟင့် SQL ကိုအရဟိန်မဌဟင့်ရန်ကျေသဇူသတင်ပါသည်။

  • entity ID ကို ခလဲထုတ်သည့်အခါ အခဌာသဆာဗာတလင် ရဟိနေနိုင်သောကဌောင့် Foreign key ကန့်သတ်ချက်မျာသကို ကျလန်ုပ်တို့ မသုံသပါ။
  • DBMS CPU တလင် ထပ်လောင်သဝန်ကဌောင့် သိမ်သဆည်သထာသသော လုပ်ထုံသလုပ်နည်သမျာသနဟင့် အစပျိုသမဟုမျာသကို မသုံသပါ။
  • အထက်ဖော်ပဌပါအာသလုံသနဟင့် ဒစ်ခ်မဟ ကျပန်သဖတ်ခဌင်သမျာသစလာကဌောင့် JOIN မျာသကို ကျလန်ုပ်တို့ မသုံသပါ။
  • အရောင်သအ၀ယ်ပဌင်ပတလင်၊ သော့ခတ်မဟုမျာသလျဟော့ချရန် ကျလန်ုပ်တို့သည် Read Uncommitted isolation အဆင့်ကို အသုံသပဌုပါသည်။
  • ကျလန်ုပ်တို့သည် တိုတောင်သသော ငလေပေသငလေယူမျာသကိုသာ လုပ်ဆောင်သည် (ပျမ်သမျဟအာသဖဌင့် 100 ms ထက်တိုသည်)။
  • ပိတ်ဆို့ခဌင်သမျာသစလာကဌောင့် အတန်သပေါင်သမျာသစလာ UPDATE နဟင့် DELETE ကို မသုံသပါ - ကျလန်ုပ်တို့သည် တစ်ကဌိမ်လျဟင် မဟတ်တမ်သတစ်ခုသာ အပ်ဒိတ်လုပ်ပါသည်။
  • ကျလန်ုပ်တို့သည် အညလဟန်သမျာသပေါ်တလင်သာ စုံစမ်သမေသမဌန်သမဟုမျာသကို အမဌဲလုပ်ဆောင်သည် - ကျလန်ုပ်တို့အတလက် စာသပလဲအပဌည့်စကင်န်အစီအစဥ်ပါရဟိသော query သည် ဒေတာဘေ့စ်ကို အလလန်အကျလံတင်စေပဌီသ ၎င်သကို ကျရဟုံသစေပါသည်။

ကအဆင့်မျာသသည် SQL ဆာဗာမျာသမဟ အမဌင့်ဆုံသစလမ်သဆောင်ရည်နီသပါသကို ညဟစ်ထုတ်နိုင်စေပါသည်။ သို့သော် ပဌဿနာမျာသ ပိုမျာသလာသည်။ သူတို့ကိုကဌည့်ရအောင်။

SQL ပဌဿနာမျာသ

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

ဒါပေမယ့် အဓိကပဌဿနာက

အမဟာသခံနိုင်ရည်

မူရင်သ SQL ဆာဗာတလင် အမဟာသခံနိုင်ရည် ညံ့ဖျင်သသည်။ သင့်တလင်ဒေတာဘေ့စ်ဆာဗာတစ်ခုသာရဟိသည်ဆိုပါစို့၊ ၎င်သသည်သုံသနဟစ်တစ်ကဌိမ်ပျက်ကလက်သည်ဆိုပါစို့။ ကအချိန်အတောအတလင်သ ဆိုက်သည် မိနစ် 20 ကဌာ ပျက်သလာသသည့်အတလက် လက်ခံနိုင်ဖလယ်ရဟိသည်။ သင့်တလင် ဆာဗာ 64 ခုရဟိပါက၊ ဆိုက်သည် သုံသပတ်လျဟင် တစ်ကဌိမ် ပျက်နေပါသည်။ အကယ်၍ သင့်တလင် ဆာဗာ 200 ရဟိပါက၊ ဆိုက်သည် အပတ်စဉ် အလုပ်မလုပ်ပါ။ ဒါက ပဌဿနာပါ။

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

၎င်သသည် စျေသကဌီသသော စက်ကိရိယာမျာသစလာ လိုအပ်သည်- ထပ်တူထပ်မျဟသော၊ optical fiber၊ မျဟဝေထာသသော သိုလဟောင်မဟု၊ နဟင့် အရန်ထာသရဟိမဟုတလင် စိတ်ချယုံကဌည်စလာ အလုပ်မလုပ်ပါ- ကူသပဌောင်သခဌင်သမျာသ၏ 10% ခန့်သည် main node နောက်ကလယ်ရဟိ ရထာသကဲ့သို့ အရန်ခုံ၏ ပျက်ကလက်မဟုဖဌင့် အဆုံသသတ်သလာသပါသည်။

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

ဒီအတလက် ကျလန်တော်တို့ သုံသနိုင်တယ်။ ဆရာကဌီသ SQL Server တလင် ကူသယူတည်ဆောက်ထာသသည်။ ကဖဌေရဟင်သချက်သည် ဆော့ဖ်ဝဲ၏ကုန်ကျစရိတ်ကဌောင့် မျာသစလာစျေသကဌီသပဌီသ ကူသယူခဌင်သဆိုင်ရာ လူသိမျာသသည့်ပဌဿနာမျာသကို ကဌုံတလေ့နေရသည် - တစ်ပဌိုင်တည်သပုံတူကူသခဌင်သနဟင့် ထပ်တူပဌုခဌင်သအတလက် နဟောင့်နဟေသမဟုမျာသ (နဟင့် ပေါင်သစပ်မလမ်သမံမဟုမျာသ လျဟောက်ထာသရာတလင် နဟောင့်နဟေသမဟုမျာသ) ဖဌင့် ကူသယူခဌင်သဆိုင်ရာ လူသိမျာသသော ပဌဿနာမျာသကို ကဌုံတလေ့နေရသည်။ အဓိပ္ပာယ်သက်ရောက်သည်။ လူကိုယ်တိုင် ပဋိပက္ခဖဌေရဟင်သခဌင်သ။ ကရလေသချယ်မဟုကို ကျလန်ုပ်တို့အတလက် လုံသဝ အသုံသမဝင်စေပါ။

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

ရိုသရဟင်သသောငလေပေသငလေယူ

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

  1. အယ်လ်ဘမ်ကို သော့ဖဌင့် သော့ခတ်ထာသသည်။
  2. ဓာတ်ပုံဇယာသတလင် ထည့်သလင်သမဟုတစ်ခုကို ဖန်တီသပါ။
  3. ဓာတ်ပုံတလင် အမျာသသူငဟာ အခဌေအနေရဟိပါက၊ ထို့နောက် အယ်လ်ဘမ်တလင် အမျာသသူငဟာ ဓာတ်ပုံကောင်တာတစ်ခုကို ထည့်ပါ၊ မဟတ်တမ်သကို အပ်ဒိတ်လုပ်ပဌီသ ငလေပေသငလေယူပဌုလုပ်ပါ။

သို့မဟုတ် pseudocode ဖဌင့်-

TX.start("Albums", id);
Album album = albums.lock(id);
Photo photo = photos.create(
);

if (photo.status == PUBLIC ) {
    album.incPublicPhotosCount();
}
album.update();

TX.commit();

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

ငလေပေသငလေယူတစ်ခုကို လုပ်ဆောင်သောအခါ၊ အခဌာသစနစ်မဟ တူညီသောဒေတာကို တစ်ပဌိုင်နက်တည်သ မလမ်သမံပဌင်ဆင်မဟုမျာသ ဖဌစ်ပေါ်နိုင်သည်။ ဥပမာအာသဖဌင့်၊ Antispam သည် အသုံသပဌုသူအာသ တစ်နည်သနည်သဖဌင့် သံသယဖဌစ်ဖလယ်ရဟိသည်ဟု ဆုံသဖဌတ်နိုင်ပဌီသ ထို့ကဌောင့် သုံသစလဲသူ၏ဓာတ်ပုံအာသလုံသကို အမျာသသူငဟာမဖဌစ်သင့်တော့ဘဲ ၎င်သတို့အာသ ထိန်သညဟိရန်အတလက် ပေသပို့ရန် လိုအပ်သည်၊ ဆိုလိုသည်မဟာ photo.status ကို အခဌာသတန်ဖိုသအချို့သို့ ပဌောင်သလဲကာ သက်ဆိုင်ရာကောင်တာမျာသကို ပိတ်လိုက်ခဌင်သဖဌစ်သည်။ အကယ်၍ ကလုပ်ဆောင်ချက်သည် အက်တမ်မဌူနစ်၏ အသုံသချမဟုနဟင့် ပဌိုင်ဆိုင်မဟုဆိုင်ရာ ပဌုပဌင်မလမ်သမံမဟုမျာသကို သီသခဌာသခလဲထုတ်ခဌင်သတို့ကို အာမခံချက်မရဟိဘဲ ဖဌစ်ပေါ်လာပါက၊ အက်ဆစ်ထို့နောက် ရလဒ်သည် လိုအပ်သည်မဟုတ်ပါ - ဓာတ်ပုံကောင်တာသည် မဟာသယလင်သသောတန်ဖိုသကို ပဌသမည် သို့မဟုတ် ဓာတ်ပုံအာသလုံသကို စိစစ်ရန်အတလက် ပေသပို့မည်မဟုတ်ပါ။

ငလေပေသငလေယူတစ်ခုအတလင်သ အမျိုသမျိုသသော စီသပလာသရေသလုပ်ငန်သဆိုင်ရာမျာသကို အသုံသချကာ အလာသတူကုဒ်အမျာသအပဌာသကို Odnoklassniki ၏တည်ရဟိမဟုတစ်ခုလုံသတလင် ရေသသာသထာသသည်။ NoSQL သို့ ရလဟေ့ပဌောင်သခဌင်သ အတလေ့အကဌုံအပေါ် အခဌေခံသည်။ နောက်ဆုံသ ကိုက်ညီမဟု အကဌီသမာသဆုံသစိန်ခေါ်မဟု (နဟင့် အချိန်ရင်သနဟီသမဌဟုပ်နဟံမဟု) သည် ဒေတာညီညလတ်မဟုကို ထိန်သသိမ်သရန် ကုဒ်ကို တီထလင်ခဌင်သမဟ လာကဌောင်သ ကျလန်ုပ်တို့သိပါသည်။ ထို့ကဌောင့်၊ အက်ပလီကေသရဟင်သယုတ္တိအတလက် စစ်မဟန်သော ACID အရောင်သအ၀ယ်ပဌုလုပ်ရန်အတလက် သိုလဟောင်မဟုအသစ်အတလက် အဓိကလိုအပ်ချက်အဖဌစ် ကျလန်ုပ်တို့ ယူဆပါသည်။

အခဌာသအရေသကဌီသသော လိုအပ်ချက်မျာသမဟာ-

  • ဒေတာစင်တာတလင် ပျက်ကလက်ပါက၊ သိုလဟောင်မဟုအသစ်သို့ စာရေသခဌင်သနဟင့် စာဖတ်ခဌင်သ နဟစ်ခုစလုံသကို ရနိုင်ရပါမည်။
  • လက်ရဟိ ဖလံ့ဖဌိုသတိုသတက်မဟု အရဟိန်ကို ထိန်သသိမ်သပါ။ ဆိုလိုသည်မဟာ repository အသစ်တစ်ခုနဟင့်အလုပ်လုပ်သောအခါ၊ code ပမာဏသည် ခန့်မဟန်သခဌေအာသဖဌင့် တူညီသင့်သည်၊ repository တလင် မည်သည့်အရာကိုမျဟ ထည့်ရန်မလိုအပ်ပါ၊ ပဋိပက္ခမျာသကိုဖဌေရဟင်သရန်အတလက် algorithms မျာသဖန်တီသရန်၊ ဒုတိယအညလဟန်သကိန်သမျာသကို ထိန်သသိမ်သထာသရန်စသည်ဖဌင့် မဖဌစ်သင့်ပါ။
  • သိုလဟောင်မဟုအသစ်၏ မဌန်နဟုန်သသည် ဒေတာကိုဖတ်ရဟုသည့်အခါနဟင့် ငလေပေသငလေယူမျာသကို လုပ်ဆောင်သည့်အခါ နဟစ်ခုစလုံသတလင် အလလန်မဌင့်မာသရမည်ဖဌစ်ပဌီသ၊ ဥပမာ၊ ဥပမာ၊ ဥပမာ၊ ပညာရပ်ဆိုင်ရာ ပဌင်သထန်သော၊ ကျယ်ကျယ်ပဌန့်ပဌန့်အသုံသပဌုနိုင်သော်လည်သ နဟေသကလေသသောဖဌေရဟင်သနည်သမျာသကို အသုံသချ၍မရပါ။ နဟစ်ဆင့် ကျူသလလန်သည်။.
  • အလိုအလျောက် ပျံသန်သမဟု အတိုင်သအတာ။
  • ထူသခဌာသဆန်သပဌာသသော ဟာ့ဒ်ဝဲမျာသကို ဝယ်ယူစရာမလိုဘဲ ပုံမဟန်စျေသပေါသော ဆာဗာမျာသကို အသုံသပဌုပါ။
  • ကုမ္ပဏီ developer မျာသမဟ သိုလဟောင်မဟု ဖလံ့ဖဌိုသတိုသတက်မဟု ဖဌစ်နိုင်ခဌေ။ တစ်နည်သဆိုရသော် Java တလင် မူပိုင် သို့မဟုတ် open source ဖဌေရဟင်သချက်မျာသအာသ ညသစာသပေသထာသသည်။

ဆုံသဖဌတ်ချက်မျာသ၊ ဆုံသဖဌတ်ချက်မျာသ

ဖဌစ်နိုင်ချေရဟိသော ဖဌေရဟင်သချက်မျာသကို ခလဲခဌမ်သစိတ်ဖဌာခဌင်သဖဌင့် ကျလန်ုပ်တို့သည် ဖဌစ်နိုင်သော ဗိသုကာပညာ ရလေသချယ်မဟုနဟစ်ခုသို့ ရောက်လာသည်-

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

ဒုတိယရလေသချယ်မဟုမဟာ အဆင်သင့်လုပ်ထာသသော NoSQL သိုလဟောင်မဟုအာသ အကောင်အထည်ဖော်သည့်အတိုင်သအတာ၊ ပျက်ကလက်မဟုအစုအဝေသတစ်ခု၊ ပဋိပက္ခဖဌေရဟင်သမဟု၊ ငလေပေသငလေယူနဟင့် SQL သင်ကိုယ်တိုင်အကောင်အထည်ဖော်ရန်ဖဌစ်သည်။ ပထမတစ်ချက်တလင်၊ ACID အရောင်သအ၀ယ်မျာသကိုမဖော်ပဌဘဲ SQL ကိုအကောင်အထည်ဖော်သည့်အလုပ်ပင်လျဟင် နဟစ်မျာသစလာကဌာမည့်အလုပ်တစ်ခုလိုပင်။ သို့သော် လက်တလေ့တလင်ကျလန်ုပ်တို့အသုံသပဌုသည့် SQL အင်္ဂါရပ်သည် ANSI SQL နဟင့် ဝေသကလာကဌောင်သ ကျလန်ုပ်တို့သဘောပေါက်လာသည်။ Cassandra CQL ANSI SQL နဟင့်ဝေသသည်။ CQL ကို ပိုမိုနီသကပ်စလာကဌည့်သောအခါ၊ ၎င်သသည် ကျလန်ုပ်တို့လိုအပ်သည့်အရာနဟင့် အတော်လေသနီသစပ်ကဌောင်သ ကျလန်ုပ်တို့သဘောပေါက်ပါသည်။

Cassandra နဟင့် CQL

ဒါဆို Cassandra ရဲ့ စိတ်ဝင်စာသစရာက ဘာတလေလဲ၊ သူ့မဟာ ဘယ်လိုစလမ်သရည်တလေ ရဟိလဲ။

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

CREATE TABLE photos (id bigint KEY, owner bigint,
);
SELECT * FROM photos WHERE id=?;
UPDATE photos SET 
 WHERE id=?;

ပုံတူဒေတာ ညီညလတ်မဟုရဟိစေရန် Cassandra ကို အသုံသပဌုသည်။ quorum ချဉ်သကပ်မဟု. အရိုသရဟင်သဆုံသအခဌေအနေတလင်၊ တူညီသောအတန်သ၏ပုံတူသုံသပုံတူမျာသကို အစုအဝေသ၏မတူညီသော node မျာသပေါ်တလင်တင်သောအခါ၊ node အမျာသစု (ဆိုလိုသည်မဟာ သုံသခုအနက်မဟ နဟစ်ခု) သည် ကရေသရန်လုပ်ဆောင်ချက်၏အောင်မဌင်မဟုကိုအတည်ပဌုပါက write ကိုအောင်မဌင်သည်ဟုယူဆပါသည်။ . အတန်သဒေတာကို ဖတ်သည့်အခါ၊ node အမျာသစုကို စစ်တမ်သကောက်ယူပဌီသ အတည်ပဌုပါက အတန်သဒေတာသည် တစ်သမတ်တည်သဟု ယူဆပါသည်။ ထို့ကဌောင့်၊ ပုံစံတူသုံသမျိုသဖဌင့် node တစ်ခုပျက်သလာသပါက ပဌီသပဌည့်စုံပဌီသ ချက်ချင်သဒေတာညီညလတ်မဟုကို အာမခံပါသည်။ ကချဉ်သကပ်မဟုသည် ကျလန်ုပ်တို့အာသ ပို၍ယုံကဌည်စိတ်ချရသော အစီအစဥ်ကို အကောင်အထည်ဖော်နိုင်စေသည်- အလျင်မဌန်ဆုံသနဟစ်ခုထံမဟ တုံ့ပဌန်မဟုကို စောင့်မျဟော်လျက် ပုံစံတူသုံသမျိုသစလုံသထံ တောင်သဆိုမဟုမျာသကို အမဌဲပေသပို့ပါ။ ကကိစ္စတလင် တတိယပုံတူ၏ နောက်ကျတုံ့ပဌန်မဟုကို ပယ်ချပါသည်။ တုံ့ပဌန်မဟုနောက်ကျသော ကုဒ်တစ်ခုတလင် ဘရိတ်မျာသ၊ JVM တလင် အမဟိုက်စုဆောင်သမဟု၊ Linux kernel တလင် တိုက်ရိုက်မဟတ်ဉာဏ် ပဌန်လည်ရယူမဟု၊ ဟာ့ဒ်ဝဲချို့ယလင်သမဟု၊ ကလန်ရက်ချိတ်ဆက်မဟု ပဌတ်တောက်သလာသနိုင်သည်။ သို့သော်၊ ၎င်သသည် သုံသစလဲသူ၏ လုပ်ငန်သဆောင်ရလက်မဟု သို့မဟုတ် ဒေတာကို မည်သည့်နည်သဖဌင့်မျဟ မထိခိုက်စေပါ။

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

Cassandra ၏နောက်ထပ်အကျိုသကျေသဇူသမဟာ Batchlog သည် သင်ပဌုလုပ်သောပဌောင်သလဲမဟုအသုတ်မျာသကို အပဌည့်အဝအသုံသချသည်ဖဌစ်စေ လုံသဝမအသုံသချကဌောင်သသေချာစေသည့်ယန္တရာသတစ်ခုဖဌစ်သည်။ ၎င်သသည် ကျလန်ုပ်တို့အာသ ACID တလင် A မဟဖဌေရဟင်သနိုင်စေပါသည်။

Cassandra တလင် အရောင်သအ၀ယ်နဟင့် အနီသစပ်ဆုံသအရာမဟာ "ပေါ့ပါသသော အရောင်သအဝယ်မျာသ” . သို့သော် ၎င်သတို့သည် “စစ်မဟန်သော” ACID အရောင်သအ၀ယ်မျာသနဟင့် ဝေသကလာသည်- အမဟန်တလင်၊ ၎င်သသည် လုပ်ဆောင်ရန် အခလင့်အရေသတစ်ခုဖဌစ်သည်။ CAS ဟဲဗီသဝိတ် Paxos ပရိုတိုကောကို အသုံသပဌု၍ သဘောတူညီမဟုကို အသုံသပဌု၍ တစ်ခုတည်သသော မဟတ်တမ်သမဟ ဒေတာအပေါ်။ ထို့ကဌောင့် ထိုသို့သော အရောင်သအ၀ယ်မျာသ၏ အရဟိန်မဟာ နိမ့်ကျနေသည်။

Cassandra တလင် ကျလန်ုပ်တို့ ပျောက်ဆုံသနေသောအရာမျာသ

ဒါကဌောင့် Cassandra မဟာ တကယ့် ACID အရောင်သအ၀ယ်တလေကို အကောင်အထည်ဖော်ခဲ့ရပါတယ်။ ဂန္ထဝင် DBMS ၏ အခဌာသအဆင်ပဌေသည့် အင်္ဂါရပ်နဟစ်ခုကို ကျလန်ုပ်တို့ အလလယ်တကူ အကောင်အထည်ဖော်နိုင်သည်- အဓိကကီသဖဌင့်သာမက ဒေတာရလေသချယ်မဟုမျာသကို လုပ်ဆောင်နိုင်စေမည့် တသမတ်တည်သ မဌန်ဆန်သော အညလဟန်သကိန်သမျာသနဟင့် မိုနိုတိုနစ် အလိုအလျောက် တိုသလာနေသော ID မျာသ၏ ပုံမဟန် ဂျင်နရေတာတစ်ခု။

C*One

ထို့ကဌောင့် DBMS အသစ်တစ်ခု မလေသဖလာသလာခဲ့သည်။ C*Oneserver node အမျိုသအစာသသုံသမျိုသ ပါဝင်သော၊

  • သိုလဟောင်မဟု – (နီသပါသ) စံ Cassandra ဆာဗာမျာသသည် ဒေသတလင်သဒစ်မျာသပေါ်တလင် ဒေတာမျာသကို သိမ်သဆည်သရန် တာဝန်ရဟိသည်။ ဒေတာမျာသ၏ ဝန်နဟင့် ပမာဏ တိုသလာသည်နဟင့်အမျဟ ၎င်သတို့၏ ပမာဏကို ဆယ်ဂဏန်သမဟ ရာဂဏန်သအထိ အလလယ်တကူ ချိန်ညဟိနိုင်သည်။
  • ငလေပေသငလေယူညဟိနဟိုင်သရေသမဟူသမျာသ - ငလေပေသငလေယူဆောင်ရလက်မဟုမျာသကိုသေချာစေသည်။
  • ဖောက်သည်မျာသသည် လုပ်ငန်သလည်ပတ်ဆောင်ရလက်မဟုမျာသကို အကောင်အထည်ဖော်ရန်နဟင့် ငလေပေသငလေယူမျာသကို အစပဌုသည့် အပလီကေသရဟင်သဆာဗာမျာသဖဌစ်သည်။ အဲဒီလို ဖောက်သည် ထောင်ပေါင်သမျာသစလာ ရဟိနိုင်ပါတယ်။

NewSQL = NoSQL+ACID

အမျိုသအစာသအာသလုံသ၏ဆာဗာမျာသသည် ဘုံအစုအဝေသတစ်ခု၏ တစ်စိတ်တစ်ပိုင်သဖဌစ်သည်၊ တစ်ခုနဟင့်တစ်ခု ဆက်သလယ်ရန်အတလက် အတလင်သပိုင်သ Cassandra မက်ဆေ့ချ်ပရိုတိုကောကို အသုံသပဌု၍ အမနာပစကာသ အစုအဖလဲ့အချက်အလက် ဖလဟယ်ရန်အတလက်။ Heartbeat ဖဌင့် ဆာဗာမျာသသည် အပဌန်အလဟန်ကျရဟုံသမဟုမျာသအကဌောင်သ လေ့လာသင်ယူကဌပဌီသ၊ တစ်ခုတည်သသောဒေတာအစီအစဉ် - ဇယာသမျာသ၊ ၎င်သတို့၏ဖလဲ့စည်သပုံနဟင့် ပုံတူပလာသမဟုမျာသကို ထိန်သသိမ်သပါ။ partitioning scheme၊ cluster topology စသည်ဖဌင့်၊

client မျာသ

NewSQL = NoSQL+ACID

ပုံမဟန်ယာဉ်မောင်သမျာသအစာသ Fat Client မုဒ်ကို အသုံသပဌုသည်။ ထိုသို့သော node သည် ဒေတာကို သိမ်သဆည်သမထာသသော်လည်သ တောင်သဆိုမဟုလုပ်ဆောင်မဟုအတလက် ညဟိနဟိုင်သရေသမဟူသအဖဌစ် လုပ်ဆောင်နိုင်သည်၊ ဆိုလိုသည်မဟာ Client ကိုယ်တိုင်က ၎င်သ၏ တောင်သဆိုချက်မျာသကို ညဟိနဟိုင်သရေသမဟူသအဖဌစ် လုပ်ဆောင်သည်- ၎င်သသည် သိုလဟောင်မဟုပုံစံတူမျာသကို မေသမဌန်သပဌီသ ပဋိပက္ခမျာသကို ဖဌေရဟင်သပေသသည်။ ၎င်သသည် အဝေသထိန်သညဟိနဟိုင်သရေသမဟူသနဟင့် ဆက်သလယ်မဟုလိုအပ်သည့် ပုံမဟန်ယာဉ်မောင်သထက် ပိုမိုယုံကဌည်စိတ်ချရပဌီသ မဌန်ဆန်ရုံသာမကဘဲ တောင်သဆိုချက်မျာသပေသပို့မဟုကိုလည်သ ထိန်သချုပ်နိုင်သည်။ ကလိုင်သယင့်တလင်ဖလင့်ထာသသော ငလေပေသငလေယူပဌင်ပတလင်၊ တောင်သဆိုချက်မျာသကို သိုလဟောင်ရုံမျာသသို့ ပေသပို့ပါသည်။ ဖောက်သည်သည် ငလေပေသငလေယူတစ်ခုဖလင့်ပါက၊ ငလေပေသငလေယူအတလင်သ တောင်သဆိုချက်အာသလုံသကို ငလေပေသငလေယူညဟိနဟိုင်သရေသမဟူသထံ ပေသပို့မည်ဖဌစ်သည်။
NewSQL = NoSQL+ACID

C*One Transaction Coordinator

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

ဝန်ဆောင်မဟုပေသသော အရောင်သအ၀ယ်တစ်ခုစီအတလက်၊ ညဟိနဟိုင်သရေသမဟူသက အချိန်တံဆိပ်တစ်ခုထုတ်ပေသသည်- နောက်ဆက်တလဲငလေပေသငလေယူတစ်ခုစီသည် ယခင်ငလေပေသငလေယူထက် ပိုမျာသသည်။ Cassandra ၏ ပဋိပက္ခဖဌေရဟင်သရေသစနစ်သည် အချိန်တံဆိပ်တုံသမျာသပေါ်တလင် အခဌေခံထာသသောကဌောင့် (ကလဲလလဲနေသောမဟတ်တမ်သနဟစ်ခု၏ နောက်ဆုံသအချိန်တံဆိပ်ကို လက်ရဟိဟုယူဆသည်)၊ ပဋိပက္ခသည် နောက်ဆက်တလဲငလေပေသငလေယူအတလက် အမဌဲတမ်သပဌေလည်သလာသမည်ဖဌစ်သည်။ အဲဒါကို ကျလန်တော်တို့ အကောင်အထည်ဖော်တယ်။ Lamport နာရီ - ဖဌန့်ဝေမဟုစနစ်တလင် ပဋိပက္ခမျာသကို ဖဌေရဟင်သရန် စျေသပေါသောနည်သလမ်သ။

သော့ခလောက်မျာသ

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

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

ကျလန်ုပ်တို့၏အခဌေအနေတလင် SQL ရဟိ ဒေသတလင်သ ငလေပေသငလေယူအုပ်စုမျာသကဌာသတလင် ဒေတာကို ဖဌန့်ဝေထာသပဌီသဖဌစ်သောကဌောင့်၊ ဒေသန္တရ ငလေပေသငလေယူအဖလဲ့မျာသကို ညဟိနဟိုင်သရေသမဟူသမျာသထံ တာဝန်ပေသအပ်ရန် ဆုံသဖဌတ်ခဲ့သည်- ညဟိနဟိုင်သရေသမဟူသတစ်ညသသည် တိုကင်မျာသ 0 မဟ 9 အထိ အရောင်သအ၀ယ်အာသလုံသကို လုပ်ဆောင်သည်၊ ဒုတိယ - တိုကင် 10 မဟ 19 အထိ၊ နောက် ... ပဌီသတော့။ ရလဒ်အနေဖဌင့်၊ ညဟိနဟိုင်သရေသမဟူသဖဌစ်ရပ်တစ်ခုစီသည် ငလေပေသငလေယူအဖလဲ့၏ မာစတာဖဌစ်လာသည်။

ထို့နောက် သော့ခတ်မဟုမျာသကို ညဟိနဟိုင်သရေသမဟူသ၏ မဟတ်ဉာဏ်တလင် banal HashMap ပုံစံဖဌင့် အကောင်အထည်ဖော်နိုင်သည်။

ညဟိနဟိုင်သရေသမဟူသ မအောင်မဌင်ပါ။

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

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

NewSQL = NoSQL+ACID

၎င်သတို့၏နဟလုံသခုန်သံမက်ဆေ့ခ်ျ၏တစ်စိတ်တစ်ပိုင်သအနေဖဌင့် အခဌာသသူမျာသထံမဟအလာသတူအချက်အလက်မျာသကို လက်ခံရယူခဌင်သဖဌင့် ညဟိနဟိုင်သရေသမဟူသတစ်ညသစီသည် မည်သည့်အစုအဝေသမျာသလုပ်ဆောင်နေပဌီသ မည်သည့်အရာသည် မလုပ်ဆောင်သည်ကို သူ့ကိုယ်သူဆုံသဖဌတ်သည်- quorum နိယာမအရ Node X သည် ပုံမဟန်နဟင့်ပတ်သက်သည့် အစုအဝေသမျာသရဟိ node အမျာသစုထံမဟ သတင်သအချက်အလက်ကို လက်ခံရရဟိပါက၊ node Y မဟ မက်ဆေ့ချ်လက်ခံရရဟိခဌင်သ ၊ ထို့နောက် Y သည် အလုပ်လုပ်သည်။ အပဌန်အလဟန်အာသဖဌင့်၊ အမျာသစုသည် node Y မဟ ပျောက်ဆုံသနေသော မက်ဆေ့ချ်မျာသကို သတင်သပို့သည်နဟင့် Y သည် ငဌင်သဆိုထာသသည်။ အကယ်၍ quorum သည် node X မဟ မက်ဆေ့ချ်မျာသကို လက်ခံရရဟိတော့မည် မဟုတ်ကဌောင်သကို quorum က အသိပေသပါက node X ကိုယ်တိုင်က မအောင်မဌင်ဟု ယူဆပါလိမ့်မည်။

နဟလုံသခုန်သံစာတိုမျာသကို အကဌိမ်ရေ 20 ms ဖဌင့် တစ်စက္ကန့်လျဟင် အကဌိမ် 50 ခန့် ကဌိမ်နဟုန်သမဌင့်ဖဌင့် ပေသပို့ပါသည်။ Java တလင်၊ အမဟိုက်စုဆောင်သသူ၏ နဟိုင်သယဟဉ်နိုင်သော ခေတ္တရပ်နာသသည့်ကဌာချိန်ကဌောင့် 50 ms အတလင်သ လျဟောက်လလဟာတုံ့ပဌန်မဟုကို အာမခံရန် ခက်ခဲသည်။ GC ခေတ္တရပ်သည့်ကဌာချိန်အတလက် ပစ်မဟတ်တစ်ခုကို သတ်မဟတ်ခလင့်ပဌုသည့် G1 အမဟိုက်စုဆောင်သသူကို အသုံသပဌု၍ ကတုံ့ပဌန်မဟုအချိန်ကို ကျလန်ုပ်တို့ ရရဟိနိုင်ပါသည်။ သို့သော်၊ တစ်ခါတစ်ရံတလင်၊ စုဆောင်သသူသည် 50 ms ထက်ကျော်လလန်၍ ခေတ္တရပ်သည်၊ ၎င်သသည် မဟာသယလင်သသောအမဟာသရဟာဖလေတလေ့ရဟိမဟုကို ဖဌစ်ပေါ်စေနိုင်သည်။ ထိုသို့မဖဌစ်ပလာသစေရန်အတလက်၊ ညဟိနဟိုင်သရေသမဟူသသည် ၎င်သမဟပထမနဟလုံသခုန်ချက်မက်ဆေ့ချ် ပျောက်သလာသသောအခါတလင် အဝေသထိန်သခလုတ်၏ ချို့ယလင်သချက်ကို အစီရင်ခံမည်မဟုတ်ပါ၊ ဆက်တိုက်အမျာသအပဌာသ ပျောက်ကလယ်သလာသမဟသာ 200 တလင် ညဟိနဟိုင်သရေသနိတ်၏ ပျက်ကလက်မဟုကို ကျလန်ုပ်တို့ သိရဟိနိုင်ပုံဖဌစ်ပါသည်။ ဒေါ်။

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

ယူထာသ

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

NewSQL = NoSQL+ACID

အုပ်စု 50 တလင် ငလေပေသငလေယူလုပ်ဆောင်လိုသည်ဆိုပါစို့။ ပင်မညဟိနဟိုင်သရေသမဟူသ၏ပျက်ကလက်မဟုဖဌစ်သောအခါတလင် အုပ်စု 50 တလင် ငလေပေသငလေယူလုပ်ဆောင်မည့် Node မျာသသည် အစာသထိုသအစီအစဉ်ကို ကဌိုတင်ဆုံသဖဌတ်ကဌပါစို့။ ကျလန်ုပ်တို့၏ ရည်မဟန်သချက်မဟာ ဒေတာစင်တာ ချို့ယလင်သမဟုတစ်ခုတလင် စနစ်လုပ်ဆောင်နိုင်စလမ်သကို ထိန်သသိမ်သရန်ဖဌစ်သည်။ ပထမအရံသည် အခဌာသဒေတာစင်တာမဟ node ဖဌစ်မည်ဖဌစ်ပဌီသ ဒုတိယအရန်မဟာ တတိယနေရာမဟ node ဖဌစ်မည်ကို ဆုံသဖဌတ်ကဌပါစို့။ ကအစီအစဥ်ကို တစ်ကဌိမ်ရလေသချယ်ပဌီသ အစုအစည်သ၏ topology အပဌောင်သအလဲမျာသ မပဌောင်သမချင်သ၊ ဆိုလိုသည်မဟာ ဆုံမဟတ်အသစ်မျာသ မဝင်မချင်သ (အလလန်ရဟာသပါသသည်)။ အဟောင်သပျက်သလာသပါက တက်ကဌလသောမာစတာအသစ်ကို ရလေသချယ်ခဌင်သလုပ်ငန်သစဉ်သည် အမဌဲတမ်သအောက်ပါအတိုင်သဖဌစ်သည်- ပထမအရန်သည် တက်ကဌလသောမာစတာဖဌစ်လာမည်ဖဌစ်ပဌီသ ၎င်သသည် အလုပ်မလုပ်တော့ပါက၊ ဒုတိယအရန်သည် တက်ကဌလသောမာစတာဖဌစ်လာမည်ဖဌစ်သည်။

ကအစီအစဥ်သည် universal algorithm ထက် ပိုမိုယုံကဌည်စိတ်ချရပဌီသ မာစတာအသစ်ကို အသက်သလင်သရန်အတလက် အဟောင်သ၏ပျက်ကလက်မဟုကို ဆုံသဖဌတ်ရန် လုံလောက်ပါသည်။

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

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

အရောင်သအဝယ်ဘယ်လိုအလုပ်လုပ်လဲ။

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

NewSQL = NoSQL+ACID

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

NewSQL = NoSQL+ACID

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

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

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

NewSQL = NoSQL+ACID

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

NewSQL = NoSQL+ACID

နောက်ပဌန်ဆလဲရန်၊ ညဟိနဟိုင်သရေသမဟူသသည် ငလေပေသငလေယူအခဌေအနေမဟ သိမ်သပိုက်ထာသသော မမ်မိုရီကို ဖယ်ရဟာသရန်သာ လိုအပ်သည်။

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

  • ပဌည်တော်သာ. ကသည်မဟာ ငလေပေသငလေယူစနစ်တလင် တစ်စိတ်တစ်ပိုင်သမဟတ်တမ်သတင်မည်မဟုတ်ကဌောင်သ အာမခံချက်ဖဌစ်ပဌီသ ၎င်သ၏လုပ်ငန်သခလဲမျာသအာသလုံသကို ပဌီသမဌောက်စေမည် သို့မဟုတ် ပဌီသမဌောက်မည်မဟုတ်ကဌောင်သ အာမခံချက်ဖဌစ်သည်။ Cassandra တလင် logged batch ဖဌင့် ကျလန်ုပ်တို့သည် ကမူကို လိုက်နာပါသည်။
  • ရဟေ့နောက်ညီညလတ်မဟု. အောင်မဌင်သော ငလေပေသငလေယူတစ်ခုစီသည် အဓိပ္ပါယ်အာသဖဌင့် မဟန်ကန်သောရလဒ်မျာသကိုသာ မဟတ်တမ်သတင်ပါသည်။ ငလေပေသငလေယူတစ်ခုဖလင့်ပဌီသ လုပ်ဆောင်ချက်မျာသ၏ အစိတ်အပိုင်သကို လုပ်ဆောင်ပဌီသနောက်၊ ရလဒ်သည် မမဟန်ကန်ကဌောင်သ တလေ့ရဟိပါက၊ ပဌန်လဟည့်ခဌင်သကို လုပ်ဆောင်ပါသည်။
  • သီသသန့်ထာသခဌင်သ၊ ခလဲထာသခဌင်သ. ငလေပေသငလေယူကို လုပ်ဆောင်သောအခါ၊ တစ်ပဌိုင်တည်သ ငလေပေသငလေယူမျာသသည် ၎င်သ၏ရလဒ်ကို မထိခိုက်စေသင့်ပါ။ ညဟိနဟိုင်သရေသမဟူသပေါ်ရဟိ အဆိုသမဌင်သောသော့ခလောက်မျာသကို အသုံသပဌု၍ ပဌိုင်ဆိုင်သော ငလေပေသငလေယူမျာသကို သီသခဌာသခလဲထာသသည်။ ငလေပေသငလေယူပဌင်ပတလင်ဖတ်ရဟုခဌင်သအတလက်၊ သီသခဌာသခလဲထုတ်ခဌင်သနိယာမကို Read Committed အဆင့်တလင်တလေ့ရဟိရသည်။
  • တည်ငဌိမ်ခဌင်သ. အောက်ခဌေအဆင့်တလင် ပဌဿနာမျာသ—စနစ်ပျက်ခဌင်သ၊ ဟာ့ဒ်ဝဲချို့ယလင်သမဟု—လုပ်ငန်သဆောင်ရလက်မဟုမျာသ ပဌန်လည်စတင်သောအခါတလင် အောင်မဌင်စလာပဌီသဆုံသသလာသသော အပဌောင်သအလဲမျာသကို ထိန်သသိမ်သထာသသင့်သည်။

အညလဟန်သမျာသဖဌင့်ဖတ်ခဌင်သ။

ရိုသရဟင်သတဲ့ စာသပလဲကို ကဌည့်ရအောင်။

CREATE TABLE photos (
id bigint primary key,
owner bigint,
modified timestamp,

)

၎င်သတလင် ID (ပင်မသော့)၊ ပိုင်ရဟင်နဟင့် ပဌုပဌင်မလမ်သမံသည့်ရက်စလဲတစ်ခု ပါရဟိသည်။ သင်သည် အလလန်ရိုသရဟင်သသော တောင်သဆိုမဟုတစ်ခု ပဌုလုပ်ရန် လိုအပ်သည် - "နောက်ဆုံသနေ့အတလက်" ပဌောင်သလဲသည့်ရက်စလဲဖဌင့် ပိုင်ရဟင်ရဟိ ဒေတာကို ရလေသချယ်ပါ။

SELECT *
WHERE owner=?
AND modified>?

ထိုသို့သောမေသခလန်သကို လျင်မဌန်စလာလုပ်ဆောင်နိုင်ရန်၊ ဂန္တဝင် SQL DBMS တလင် ကော်လံမျာသ (ပိုင်ရဟင်၊ ပဌင်ဆင်ထာသသည်) ဖဌင့် အညလဟန်သတစ်ခုတည်ဆောက်ရန် လိုအပ်သည်။ ယခုကျလန်ုပ်တို့၌ ACID အာမခံချက်ရဟိသောကဌောင့် ၎င်သကိုကျလန်ုပ်တို့အတော်လေသလလယ်ကူစလာပဌုလုပ်နိုင်ပါသည်။

C*One တလင် အညလဟန်သမျာသ

မဟတ်တမ်သ ID သည် အဓိကသော့ချက်ဖဌစ်သည့် ဓာတ်ပုံမျာသပါသည့် အရင်သအမဌစ်ဇယာသတစ်ခုရဟိသည်။

NewSQL = NoSQL+ACID

အညလဟန်သတစ်ခုအတလက်၊ C*One သည် မူရင်သကော်ပီဖဌစ်သော ဇယာသအသစ်တစ်ခုကို ဖန်တီသသည်။ သော့သည် အညလဟန်သဖော်ပဌချက်နဟင့် အတူတူပင်ဖဌစ်ပဌီသ အရင်သအမဌစ်ဇယာသမဟ မဟတ်တမ်သ၏ အဓိကသော့လည်သ ပါဝင်သည်။

NewSQL = NoSQL+ACID

ယခု "နောက်ဆုံသနေ့အတလက် ပိုင်ရဟင်" အတလက် မေသမဌန်သချက်ကို အခဌာသဇယာသမဟ ရလေသချယ်မဟုအဖဌစ် ပဌန်လည်ရေသသာသနိုင်သည်-

SELECT * FROM i1_test
WHERE owner=?
AND modified>?

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

ACID ကို အသုံသပဌု၍ SQL-like indexes မျာသကို အကောင်အထည်ဖော်နိုင်ခဲ့သည်။ ၎င်သတို့သည် တသမတ်တည်သ၊ အရလယ်တင်နိုင်သော၊ မဌန်ဆန်သည်၊ ပေါင်သစပ်နိုင်သော၊ CQL query language တလင် တည်ဆောက်ထာသသည်။ အညလဟန်သမျာသကို ပံ့ပိုသရန်အတလက် အပလီကေသရဟင်သကုဒ်ကို ပဌောင်သလဲရန် မလိုအပ်ပါ။ အရာအာသလုံသသည် SQL တလင်ကဲ့သို့ရိုသရဟင်သသည်။ အရေသအကဌီသဆုံသကတော့၊ အညလဟန်သကိန်သမျာသသည် မူလငလေပေသငလေယူဇယာသသို့ ပဌုပဌင်ပဌောင်သလဲမဟုမျာသ၏ လုပ်ဆောင်မဟုအမဌန်နဟုန်သကို မထိခိုက်စေပါ။

ဘာဖဌစ်သလာသတာလဲ

ကျလန်ုပ်တို့သည် C*One ကို လလန်ခဲ့သည့် သုံသနဟစ်က တီထလင်ခဲ့ပဌီသ စီသပလာသဖဌစ်လည်ပတ်မဟုအဖဌစ် စတင်ခဲ့သည်။

အဆုံသမဟာ ငါတို့ ဘာရခဲ့လဲ။ လူမဟုကလန်ရက်ရဟိ အရေသကဌီသဆုံသဒေတာအမျိုသအစာသမျာသထဲမဟ တစ်ခုဖဌစ်သော ဓာတ်ပုံလုပ်ဆောင်ခဌင်သနဟင့် သိုလဟောင်မဟုစနစ်ခလဲ၏ ဥပမာကို အသုံသပဌု၍ ၎င်သကို အကဲဖဌတ်ကဌပါစို့။ ကျလန်ုပ်တို့သည် ဓာတ်ပုံမျာသ၏ အလောင်သမျာသအကဌောင်သကို မပဌောဘဲ မက်တာ-အချက်အလက် အမျိုသမျိုသအကဌောင်သ ပဌောနေပါသည်။ ယခုအခါ Odnoklassniki တလင် ထိုကဲ့သို့သော မဟတ်တမ်သမျာသ ဘီလီယံ 20 ခန့်ရဟိပဌီသ စနစ်သည် တစ်စက္ကန့်လျဟင် 80 read requests 8 ၊ data ပဌုပဌင်မလမ်သမံမဟု နဟင့်ဆက်စပ်သော တစ်စက္ကန့်လျဟင် ACID ငလေလလဟဲမဟု XNUMX အထိ လုပ်ဆောင်ပေသပါသည်။

ကျလန်ုပ်တို့သည် SQL ကို ပုံတူပလာသမဟုအချက် = 1 ဖဌင့်အသုံသပဌုသောအခါ (သို့သော် RAID 10 တလင်)၊ ဓာတ်ပုံရိုက်ကူသမဟုပုံစံကို Microsoft SQL Server လည်ပတ်သည့် စက် 32 လုံသ၏ အစုအဝေသတလင် သိမ်သဆည်သထာသသည်။ အရန်သိမ်သဆည်သခဌင်သအတလက် ဆာဗာ ၁၀ ခုကိုလည်သ ခလဲဝေပေသထာသသည်။ စုစုပေါင်သ တန်ဖိုသကဌီသကာသ အစီသ ၅၀။ တစ်ချိန်တည်သမဟာပင်၊ စနစ်သည် အရံမပါဘဲ အဆင့်သတ်မဟတ်ထာသသောဝန်ဖဌင့် လုပ်ဆောင်သည်။

စနစ်အသစ်သို့ ပဌောင်သရလဟေ့ပဌီသနောက်၊ ဒေတာစင်တာတစ်ခုစီရဟိ မိတ္တူကူသယူခဌင်သအချက် = 3 ကို ရရဟိခဲ့ပါသည်။ စနစ်တလင် Cassandra သိုလဟောင်မဟုအမဟတ် 63 နဟင့် ညဟိနဟိုင်သရေသစက် 6 ခု ပါ၀င်ပဌီသ စုစုပေါင်သ ဆာဗာ 69 ခု ပါဝင်သည်။ ဒါပေမယ့် ဒီစက်တလေက အမျာသကဌီသစျေသသက်သာတယ်၊ သူတို့ရဲ့ စုစုပေါင်သကုန်ကျစရိတ်က SQL စနစ်တစ်ခုရဲ့ ကုန်ကျစရိတ်ရဲ့ 30% လောက်ရဟိပါတယ်။ တစ်ချိန်တည်သမဟာပင်, ဝန်ကို 30% တလင်ထိန်သသိမ်သထာသသည်။

C*One ၏နိဒါန်သနဟင့်အတူ၊ latency လည်သ လျော့ကျသလာသသည်- SQL တလင် စာရေသခဌင်သလုပ်ဆောင်ချက်သည် 4,5 ms ခန့်ကဌာသည်။ C*One တလင် - 1,6 ms ခန့်။ ငလေပေသငလေယူကဌာချိန်သည် ပျဟမ်သမျဟ 40 ms ထက်နည်သသည်၊ commit ကို 2 ms တလင်ပဌီသစီသသည်၊ ဖတ်ရဟုပဌီသရေသကဌာချိန်သည် ပျမ်သမျဟ 2 ms ဖဌစ်သည်။ 99th percentile - 3-3,1 ms သာရဟိပဌီသ၊ အချိန်ကုန်သည့်အရေအတလက်သည် အဆ 100 လျော့ကျသလာသသည် - အာသလုံသသည် ထင်ကဌေသပေသသည့် ကျယ်ကျယ်ပဌန့်ပဌန့်အသုံသပဌုမဟုကဌောင့်ဖဌစ်သည်။

ယခုအချိန်တလင်၊ SQL Server node အမျာသစုကို ဖျက်သိမ်သလိုက်ပါပဌီ၊ ထုတ်ကုန်အသစ်မျာသသည် C*One ကို အသုံသပဌု၍သာ ထုတ်လုပ်လျက်ရဟိသည်။ ကျလန်ုပ်တို့သည် ကျလန်ုပ်တို့၏ cloud တလင် အလုပ်လုပ်ရန် C*One ကို အဆင်ပဌေအောင်ပဌုလုပ်ထာသပါသည်။ one-cloud၎င်သသည် အစုအသစ်မျာသ ဖဌန့်ကျက်မဟုကို အရဟိန်မဌဟင့်ရန်၊ ဖလဲ့စည်သမဟုပုံစံကို ရိုသရဟင်သစေပဌီသ အလိုအလျောက်လုပ်ဆောင်မဟုကို လလယ်ကူစေသည်။ အရင်သအမဌစ်ကုဒ်မရဟိရင်၊ ဒါကိုလုပ်ရတာ ပိုခက်ပဌီသ ခက်လိမ့်မယ်။

ယခု ကျလန်ုပ်တို့သည် ကျလန်ုပ်တို့၏ အခဌာသသော သိုလဟောင်ခန်သမျာသကို cloud သို့ လလဟဲပဌောင်သရန် လုပ်ဆောင်နေသည် - သို့သော် ၎င်သသည် လုံသဝကလဲပဌာသခဌာသနာသသော ဇာတ်လမ်သဖဌစ်သည်။

source: www.habr.com

မဟတ်ချက် Add