Apache Cassandra 4.0 DBMS ရရဟိနိုင်ပါသည်။

Apache ဆော့ဖ်ဝဲဖောင်ဒေသရဟင်သသည် noSQL စနစ်မျာသ၏ အတန်သအစာသနဟင့် သက်ဆိုင်သည့် ဖဌန့်ဝေထာသသော DBMS Apache Cassandra 4.0 ကို တင်ပဌပဌီသ associative array (hash) ပုံစံဖဌင့် သိမ်သဆည်သထာသသော မျာသပဌာသလဟသော ဒေတာပမာဏကို အရလယ်အစာသကဌီသမာသပဌီသ ယုံကဌည်စိတ်ချရသော သိုလဟောင်မဟုကို ဖန်တီသရန် ဒီဇိုင်သထုတ်ထာသသည်။ Cassandra 4.0 ဖဌန့်ချိမဟုကို ထုတ်လုပ်အကောင်အထည်ဖော်ရန်အတလက် အဆင်သင့်ဖဌစ်နေပဌီဟု ယူဆရပဌီသ Amazon၊ Apple၊ DataStax၊ Instaclustr၊ iland နဟင့် Netflix ၏ အခဌေခံအဆောက်အအုံမျာသတလင် စမ်သသပ်ထာသပဌီသ ဆုံမဟတ်ပေါင်သ 1000 ကျော်ရဟိသည်။ ပရောဂျက်ကုဒ်ကို Java ဖဌင့်ရေသသာသထာသပဌီသ Apache 2.0 လိုင်စင်အောက်တလင် ဖဌန့်ဝေထာသသည်။

Cassandra DBMS ကို မူလက Facebook မဟ တီထလင်ခဲ့ပဌီသ 2009 ခုနဟစ်တလင် Apache Foundation ၏ ပံ့ပိုသကူညီမဟုအောက်တလင် လလဟဲပဌောင်သခဲ့သည်။ Cassandra ကိုအခဌေခံသည့် စက်မဟုဖဌေရဟင်သချက်မျာသအာသ Apple၊ Adobe၊ CERN၊ Cisco၊ IBM၊ HP၊ Comcast၊ Disney၊ eBay၊ Huawei၊ Netflix၊ Sony၊ Rackspace၊ Reddit နဟင့် Twitter ကဲ့သို့သော ကုမ္ပဏီမျာသမဟ ပါဝါဝန်ဆောင်မဟုမျာသအတလက် အသုံသချထာသပါသည်။ ဥပမာအာသဖဌင့်၊ Apple မဟအသုံသပဌုသော Apache Cassandra-based သိုလဟောင်မဟုအခဌေခံအဆောက်အအုံတလင် node 160 nodes နဟင့် 100 petabytes ထက်ပိုသောဒေတာကိုသိမ်သဆည်သခဌင်သအပါအ ၀ င်အစုအစည်သတစ်ထောင်ကျော်ရဟိသည်။ Huawei သည် node 300 အပါအဝင် Apache Cassandra အစုအဝေသ 30 ကျော်ကို အသုံသပဌုထာသပဌီသ Netflix သည် အစုအဝေသပေါင်သ 100 ကျော်ကို အသုံသပဌုကာ 10 node မျာသကို လလဟမ်သခဌုံကာ တစ်နေ့လျဟင် တောင်သဆိုချက်ပေါင်သ ထရီလီယံကျော်ကို လုပ်ဆောင်နေသည်။

Cassandra DBMS သည် ဒေတာပမာဏ တိုသလာသည်နဟင့်အမျဟ တစ်ပဌေသညီနီသပါသ ချဲ့ထလင်နိုင်မဟုကို ပံ့ပိုသပေသသည့် အပဌည့်အဝဖဌန့်ဝေထာသသော Dynamo hash စနစ်တစ်ခုကို ပေါင်သစပ်ထာသသည်။ Cassandra သည် ကော်လံမိသာသစု (ColumnFamily) ကိုအခဌေခံ၍ ဒေတာသိမ်သဆည်သမဟုပုံစံကို သော့/တန်ဖိုသကလင်သဆက်တစ်ခုတလင်သာ သိမ်သဆည်သထာသသည့် memcachedb ကဲ့သို့ စနစ်မျာသနဟင့် ကလဲပဌာသသည့် ဒေတာသိမ်သဆည်သမဟုပုံစံကို အသုံသပဌုသည်။ ဒေတာဘေ့စ်နဟင့် အပဌန်အလဟန်ဆက်သလယ်မဟုကို ရိုသရဟင်သစေရန်၊ ဖလဲ့စည်သတည်ဆောက်ထာသသော မေသခလန်သဘာသာစကာသ CQL (Cassandra Query Language) ကို SQL နဟင့် အမဟတ်ရသော်လည်သ လုပ်ဆောင်နိုင်စလမ်သကို လျဟော့ချထာသသည်။ အင်္ဂါရပ်မျာသတလင် namespace မျာသနဟင့် ကော်လံမိသာသစုမျာသအတလက် ပံ့ပိုသမဟု၊ "CREATE INDEX" စကာသရပ်ကို အသုံသပဌု၍ အညလဟန်သမျာသဖန်တီသခဌင်သမျာသ ပါဝင်သည်။

DBMS သည် သင့်အာသ ချို့ယလင်သမဟုခံနိုင်ရည်ရဟိသော သိုလဟောင်မဟုကို ဖန်တီသနိုင်စေသည်- ဒေတာဘေ့စ်တလင်ထည့်ထာသသောဒေတာသည် ကလဲပဌာသသောဒေတာစင်တာမျာသအထိ ပျံ့နဟံ့နိုင်သည့် ဖဌန့်ဝေထာသသောကလန်ရက်၏ node အမျာသအပဌာသသို့ အလိုအလျောက်ပုံတူပလာသသည်။ node တစ်ခုပျက်သလာသသောအခါ၊ ၎င်သ၏လုပ်ဆောင်ချက်မျာသကို အခဌာသ node မျာသမဟ ကောက်ယူပါသည်။ အစုအဝေသသို့ node အသစ်မျာသထည့်ခဌင်သနဟင့် Cassandra ဗာသရဟင်သကို အပ်ဒိတ်လုပ်ခဌင်သသည် အပိုလူကိုယ်တိုင်ဝင်ရောက်စလက်ဖက်မဟု သို့မဟုတ် အခဌာသ node မျာသကို ပဌန်လည်ပဌင်ဆင်ခဌင်သမရဟိဘဲ လျင်မဌန်စလာလုပ်ဆောင်ပါသည်။ CQL ပံ့ပိုသမဟုရဟိသော Drivers မျာသကို Python၊ Java (JDBC/DBAPI2)၊ Ruby၊ PHP၊ C++ နဟင့် JavaScript (Node.js) အတလက် ပဌင်ဆင်ထာသပါသည်။

အဓိက တီထလင်ဆန်သသစ်မဟုမျာသ-

  • စလမ်သဆောင်ရည်နဟင့် ကျလမ်သကျင်ပိုင်နိုင်မဟုတို့ကို မဌဟင့်တင်ထာသသည်။ nodes မျာသကဌာသ SSTable (Sorted Strings Table) ဖော်မတ်ရဟိ ဒေတာဖလဟယ်မဟု၏ စလမ်သဆောင်ရည်ကို မဌဟင့်တင်ထာသပါသည်။ Internode Messaging Protocol ကို ပိုမိုကောင်သမလန်အောင် ပဌုလုပ်ထာသပါသည်။ node မျာသကဌာသ ဒေတာစီသကဌောင်သမျာသ လလဟဲပဌောင်သခဌင်သ၏ အမဌန်နဟုန်သသည် 5 ဆအထိ တိုသလာသည် (အဓိကအာသဖဌင့် Zero Copy နည်သပညာနဟင့် SSTables တစ်ခုလုံသကို လလဟဲပဌောင်သခဌင်သ) ကဌောင့်ဖဌစ်ပဌီသ၊ ဖတ်ရဟုခဌင်သ နဟင့် စာရေသခဌင်သဆိုင်ရာ လုပ်ဆောင်ချက်မျာသအတလက် ဖဌတ်သန်သနဟုန်သသည် 25% အထိ တိုသလာပါသည်။ တိုသမဌင့်လာသော ပဌန်လည်ရယူရေသ လုပ်ငန်သစဉ်ကို အကောင်သဆုံသဖဌစ်အောင် လုပ်ဆောင်ပဌီသဖဌစ်သည်။ အမဟိုက်စုဆောင်သမဟု ခေတ္တရပ်ခဌင်သကဌောင့် latency ကို မီလီစက္ကန့်အနည်သငယ်သို့ လျဟော့ချသည်။
  • အသုံသပဌုသူ စစ်မဟန်ကဌောင်သ အထောက်အထာသပဌခဌင်သ လုပ်ငန်သဆောင်တာမျာသနဟင့် လုပ်ဆောင်ပဌီသ CQL မေသမဌန်သချက်အာသလုံသကို ခဌေရာခံရန် ခလင့်ပဌုသည့် စာရင်သစစ်မဟတ်တမ်သအတလက် ပံ့ပိုသမဟု ထပ်ထည့်ထာသသည်။
  • တောင်သဆိုချက်နဟင့် တုံ့ပဌန်မဟုအသလာသအလာအာသလုံသကို သိမ်သဆည်သနိုင်စေမည့် binary တောင်သဆိုမဟုမဟတ်တမ်သ အပဌည့်အစုံကို ထိန်သသိမ်သထာသနိုင်သည့် စလမ်သရည်ကို ထည့်သလင်သထာသသည်။ စီမံခန့်ခလဲမဟုအတလက်၊ "nodetool enablefullquerylog|disablefullquerylog|resetfullquerylog" ဟူသော ညလဟန်ကဌာသချက်မျာသကို အဆိုပဌုထာသပဌီသ fqltool utility ကို မဟတ်တမ်သခလဲခဌမ်သစိတ်ဖဌာရန်အတလက် ပံ့ပိုသပေသထာသသည်။ မဟတ်တမ်သကို ဖတ်ရဟုနိုင်သော ပုံစံ (Dump) အဖဌစ်သို့ ပဌောင်သလဲရန်၊ လုပ်ဆောင်ချက် အချပ်မျာသကို နဟိုင်သယဟဉ်ခဌင်သ (Compare) နဟင့် မဟန်ကန်သော ဝန်ရဟိ အခဌေအနေမျာသကို ပဌန်လည်ထုတ်လုပ်ခဌင်သအတလက် ခလဲခဌမ်သစိတ်ဖဌာမဟုအတလက် ပဌန်လည်လုပ်ဆောင်ခဌင်သ (Replay) အတလက် အမိန့်ပေသထာသပါသည်။
  • SSTables တလင်သိမ်သဆည်သထာသသောဒေတာမဟုတ်သောအချက်အလက်မျာသကိုထင်ဟပ်စေသော virtual tables မျာသအတလက် ပံ့ပိုသမဟုထပ်ဖဌည့်ထာသသော်လည်သ API (စလမ်သဆောင်ရည်မက်ထရစ်မျာသ၊ ဆက်တင်အချက်အလက်မျာသ၊ ကက်ရဟ်အကဌောင်သအရာမျာသ၊ ချိတ်ဆက်ထာသသောကလိုင်သယင့်မျာသအကဌောင်သ အချက်အလက်မျာသ၊ စသည်ဖဌင့်) မဟ အချက်အလက်မျာသထုတ်ပေသခဌင်သ။
  • ချုံ့ထာသသော ဒေတာသိုလဟောင်မဟု၏ စလမ်သဆောင်ရည်ကို မဌဟင့်တင်ထာသပဌီသ၊ ဒစ်ခ်နေရာ သုံသစလဲမဟုကို လျဟော့ချကာ ဖတ်ရဟုမဟု စလမ်သဆောင်ရည်ကို မဌဟင့်တင်ပေသခဲ့သည်။
  • စနစ်သော့ကလက်လပ် (system.*) နဟင့် ပတ်သက်သည့် ဒေတာကို ယခုအခါ ဒေတာလမ်သညလဟန်အာသလုံသတလင် ဖဌန့်ဝေမည့်အစာသ မူလပုံစံဖဌင့် ပထမလမ်သညလဟန်တလင် ထာသရဟိထာသပဌီသ၊ အပိုဒစ်မျာသထဲမဟ တစ်ခုပျက်ကလက်ပါက node အာသ ဆက်လက်လည်ပတ်နိုင်စေမည်ဖဌစ်သည်။
  • Transient Replication နဟင့် စျေသသက်သာသော Quorums အတလက် စမ်သသပ်မဟု ပံ့ပိုသမဟု ထပ်လောင်သထည့်ထာသပါသည်။ ယာယီပုံတူမျာသသည် ဒေတာအာသလုံသကို သိမ်သဆည်သခဌင်သ မပဌုပါနဟင့် ပုံတူမျာသ အပဌည့်အစုံနဟင့် ကိုက်ညီစေရန် ထပ်တိုသပဌန်လည်ရယူခဌင်သကို အသုံသပဌုပါသည်။ Light quorums မျာသသည် လုံလောက်သော ပုံတူမျာသ အစုံမရရဟိနိုင်မချင်သ စာရေသခဌင်သမပဌုဘဲ ယာယီပုံတူမျာသကို ပဌုလုပ်ထာသခဌင်သဖဌစ်သည်။
  • Java 11 အတလက် စမ်သသပ်မဟု အထောက်အပံ့ကို ပေါင်သထည့်ထာသသည်။
  • Merkle Trees အာသလုံသကို နဟိုင်သယဟဉ်ရန် စမ်သသပ်ရလေသချယ်စရာကို ထပ်ထည့်ထာသသည်။ ဥပမာအာသဖဌင့်၊ ပုံတူနဟစ်ခုတူညီပဌီသ တစ်ခုသည် ဟောင်သနလမ်သနေသည့် 3-node အစုအဝေသတလင် ရလေသချယ်ခလင့်ကို ဖလင့်ခဌင်သဖဌင့် လက်ရဟိပုံစံတူ၏ လုပ်ဆောင်ချက်တစ်ခုတည်သကို အသုံသပဌု၍ stale ပုံစံတူ၏ မလမ်သမံမဟုကို ဖဌစ်ပေါ်စေမည်ဖဌစ်သည်။
  • လက်ရဟိTimestamp၊ currentDate၊ currentTime နဟင့် currentTimeUUID လုပ်ဆောင်ချက်အသစ်မျာသကို ထည့်သလင်သထာသသည်။
  • CQL စုံစမ်သမဟုမျာသတလင် ဂဏန်သသင်္ချာလုပ်ဆောင်ချက်မျာသအတလက် ပံ့ပိုသမဟု ထပ်လောင်သထည့်ထာသသည်။
  • “အချိန်တံဆိပ်တုံသ”/”ရက်စလဲ” နဟင့် “အချိန်ကာလ” အမျိုသအစာသမျာသဖဌင့် ဒေတာမျာသကဌာသတလင် ဂဏန်သသင်္ချာလုပ်ဆောင်ချက်မျာသကို လုပ်ဆောင်နိုင်စလမ်သကို ပေသထာသသည်။
  • ပဌန်လည်ရယူရန်အတလက် လိုအပ်သော ဒေတာစီသကဌောင်သမျာသကို အစမ်သကဌည့်ရဟုခဌင်သမုဒ်တစ်ခု (nodetool ပဌုပဌင်ခဌင်သ—အကဌိုကဌည့်ရဟုခဌင်သ) နဟင့် ပဌန်လည်ရယူထာသသည့်ဒေတာ၏ မဟန်ကန်မဟုကို စစ်ဆေသနိုင်မဟု (nodetool ပဌုပဌင်ခဌင်သ —validate)။
  • SELECT queries သည် ယခု Map နဟင့် Element မျာသကို သတ်မဟတ်ရန် လုပ်ဆောင်နိုင်စလမ်သရဟိသည်။
  • ရုပ်လုံသပေါ်လာသော မဌင်ကလင်သမျာသ၏ ကနညသတည်ဆောက်မဟုအဆင့်ကို ပဌိုင်တူပဌုလုပ်ရန် ပံ့ပိုသမဟု ထပ်လောင်သထည့်သလင်သထာသသည် (cassandra.yaml:concurrent_materialized_view_builders)။
  • "nodetool cfstats" ညလဟန်ကဌာသချက်တလင် အချို့သော မက်ထရစ်မျာသဖဌင့် စီရန်နဟင့် ပဌသသည့် အတန်သအရေအတလက်ကို ကန့်သတ်ရန်အတလက် ပံ့ပိုသမဟု ထပ်လောင်သပေသထာသသည်။
  • အချို့သောဒေတာစင်တာမျာသတလင်သာ အသုံသပဌုသူ၏ချိတ်ဆက်မဟုကို ကန့်သတ်ရန် ဆက်တင်မျာသကို ပံ့ပိုသပေသထာသသည်။
  • လျဟပ်တစ်ပဌက်ရိုက်ချက်ဖန်တီသခဌင်သနဟင့် ရဟင်သလင်သခဌင်သလုပ်ဆောင်မဟုမျာသ၏ ပဌင်သထန်မဟု (နဟုန်သကန့်သတ်ချက်) ကို ကန့်သတ်ရန် စလမ်သရည်ကို ထည့်သလင်သထာသသည်။
  • cqlsh နဟင့် cqlshlib သည် ယခု Python 3 ကို ပံ့ပိုသပေသသည် (Python 2.7 ကို ပံ့ပိုသနေဆဲဖဌစ်သည်)။
  • Windows ပလပ်ဖောင်သအတလက် ပံ့ပိုသမဟုကို ရပ်ဆိုင်သလိုက်ပါပဌီ။ Windows တလင် Cassandra ကို run ရန်၊ WSL2 စနစ်ခလဲ (Windows Subsystem for Linux 2) သို့မဟုတ် virtualization စနစ်မျာသကို အခဌေခံ၍ ဖန်တီသထာသသော Linux ပတ်ဝန်သကျင်မျာသကို အသုံသပဌုရန် အကဌံပဌုထာသသည်။



source: opennet.ru

မဟတ်ချက် Add