Tarantool Data Grid ၏ ဗိသုကာနဟင့် စလမ်သရည်မျာသ

Tarantool Data Grid ၏ ဗိသုကာနဟင့် စလမ်သရည်မျာသ

2017 တလင်၊ ကျလန်ုပ်တို့သည် Alfa-Bank ၏ ရင်သနဟီသမဌဟုပ်နဟံမဟုလုပ်ငန်သ၏ အရောင်သအ၀ယ်ဆိုင်ရာ အဓိကအချက်အချာကို ဖလံ့ဖဌိုသတိုသတက်စေရန် ပဌိုင်ဆိုင်မဟုတစ်ခုကို အနိုင်ရခဲ့ပဌီသ (HighLoad++ 2018 တလင် ရင်သနဟီသမဌဟုပ်နဟံမဟုလုပ်ငန်သ၏ အဓိကအချက်အချာကျသော အစီရင်ခံစာနဟင့်အတူ အလုပ်စတင်ခဲ့သည်။ ဖျော်ဖဌေခဲ့သည်။ Alfa Bank ၏ ရင်သနဟီသမဌဟုပ်နဟံမဟု လုပ်ငန်သ၏ အရောင်သအ၀ယ်ဆိုင်ရာ အဓိက အကဌီသအကဲ Vladimir Drynkin)။ ကစနစ်သည် မတူညီသော အရင်သအမဌစ်မျာသမဟ ငလေပေသငလေယူဒေတာကို ဖော်မတ်အမျိုသမျိုသဖဌင့် စုစည်သကာ ဒေတာမျာသကို တစ်စုတစ်စည်သတည်သပုံစံသို့ ယူဆောင်လာကာ သိမ်သဆည်သကာ ၎င်သအာသ ဝင်ရောက်ခလင့်ပေသရန် လိုအပ်သည်။

ဖလံ့ဖဌိုသတိုသတက်မဟု လုပ်ငန်သစဉ်အတလင်သ၊ စနစ်သည် ပဌောင်သလဲလာပဌီသ လုပ်ဆောင်နိုင်စလမ်သမျာသ ရရဟိလာကာ တစ်ချိန်ချိန်တလင် ကျလန်ုပ်တို့သည် တိကျစလာသတ်မဟတ်ထာသသော အလုပ်မျာသကို ဖဌေရဟင်သရန် ဖန်တီသထာသသော အပလီကေသရဟင်သဆော့ဖ်ဝဲထက် တစ်စုံတစ်ရာကို ပုံဆောင်ခဲအဖဌစ် ပဌောင်သလဲနေကဌောင်သ သိရဟိလိုက်ရပါသည်။ ဆက်တိုက်သိုလဟောင်မဟုဖဌင့် ဖဌန့်ဝေထာသသော အက်ပ်လီကေသရဟင်သမျာသကို တည်ဆောက်ရန်အတလက် စနစ်. ကျလန်ုပ်တို့ ရရဟိခဲ့သော အတလေ့အကဌုံသည် ထုတ်ကုန်အသစ်၏ အခဌေခံကို ဖဌစ်ပေါ်စေသည်- Tarantool ဒေတာဇယာသ (TDG)။

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

ဗိသုကာအရ၊ ကျလန်ုပ်တို့သည် စနစ်အာသ သီသခဌာသခလဲထာသသည်။ အခန်သကဏ္ဍမျာသတစ်ခုစီသည် ပဌဿနာအမျိုသမျိုသကို ဖဌေရဟင်သရန် တာဝန်ရဟိသည်။ လည်ပတ်နေသည့် အပလီကေသရဟင်သတစ်ခုသည် တစ်ခု သို့မဟုတ် တစ်ခုထက်ပိုသော အခန်သကဏ္ဍအမျိုသအစာသမျာသကို အကောင်အထည်ဖော်သည်။ အစုအဖလဲ့တစ်ခုတလင် အမျိုသအစာသတူ၏ အခန်သကဏ္ဍမျာသစလာ ရဟိနိုင်သည်-

Tarantool Data Grid ၏ ဗိသုကာနဟင့် စလမ်သရည်မျာသ

connector

Connector သည် ပဌင်ပကမ္ဘာနဟင့် ဆက်သလယ်မဟုအတလက် တာဝန်ရဟိပါသည်။ ၎င်သ၏တာဝန်မဟာ တောင်သဆိုချက်ကို လက်ခံရန်၊ ခလဲခဌမ်သစိတ်ဖဌာရန်ဖဌစ်ပဌီသ ၎င်သသည် အောင်မဌင်ပါက၊ ထို့နောက် ထည့်သလင်သသည့် ပရိုဆက်ဆာသို့ စီမံဆောင်ရလက်ရန်အတလက် ဒေတာကို ပေသပို့ပါ။ HTTP၊ SOAP၊ Kafka၊ FIX ဖော်မတ်မျာသကို ကျလန်ုပ်တို့ ပံ့ပိုသပါသည်။ ဗိသုကာပညာသည် မကဌာမီလာမည့် IBM MQ အတလက် ပံ့ပိုသမဟုဖဌင့် ဖော်မတ်အသစ်မျာသအတလက် ပံ့ပိုသမဟုကို ရိုသရဟင်သစလာ ထည့်သလင်သနိုင်စေမည်ဖဌစ်သည်။ တောင်သဆိုချက်ကို ခလဲခဌမ်သစိတ်ဖဌာခဌင်သ မအောင်မဌင်ပါက၊ ချိတ်ဆက်ကိရိယာသည် အမဟာသအယလင်သတစ်ခု ပဌန်ပေသလိမ့်မည်။ မဟုတ်ပါက၊ ၎င်သသည် ၎င်သ၏နောက်ထပ်လုပ်ဆောင်နေစဉ်အတလင်သ အမဟာသအယလင်သတစ်ခုဖဌစ်ပလာသခဲ့လျဟင်ပင် တောင်သဆိုချက်ကို အောင်မဌင်စလာလုပ်ဆောင်ပဌီသဖဌစ်ကဌောင်သ တုံ့ပဌန်မည်ဖဌစ်သည်။ တောင်သဆိုမဟုမျာသကို မည်သို့ထပ်လုပ်ရမည်ကို မသိသော စနစ်မျာသဖဌင့် လုပ်ဆောင်ရန်အတလက် ကအရာသည် အထူသလုပ်ဆောင်ခဲ့သည် - သို့မဟုတ် ဆန့်ကျင်ဘက်အနေနဟင့်၊ ၎င်သကို ပဌင်သပဌင်သထန်ထန်လုပ်ပါ။ ဒေတာမဆုံသရဟုံသစေရန်၊ ပဌုပဌင်ရေသတန်သစီကို အသုံသပဌုသည်- အရာဝတ္တုသည် ၎င်သထဲသို့ ညသစလာရောက်ရဟိပဌီသ အောင်မဌင်စလာလုပ်ဆောင်ခဌင်သကို ဖယ်ရဟာသပဌီသနောက်မဟသာ ၎င်သကို ဖယ်ရဟာသလိုက်ပါ။ စီမံခန့်ခလဲသူသည် ပဌုပဌင်မဟုတန်သစီတလင် ကျန်ရဟိနေသော အရာမျာသအကဌောင်သ သတိပေသချက်မျာသကို လက်ခံရရဟိနိုင်ပဌီသ ဆော့ဖ်ဝဲအမဟာသအယလင်သ သို့မဟုတ် ဟာ့ဒ်ဝဲချို့ယလင်သမဟုကို ဖယ်ရဟာသပဌီသနောက်၊ ထပ်စမ်သကဌည့်ပါ။

ပရိုဆက်ဆာ ထည့်သလင်သခဌင်သ။

Input ပရိုဆက်ဆာသည် ဝိသေသအင်္ဂါရပ်မျာသနဟင့်အညီ ရရဟိလာသောဒေတာမျာသကို အမျိုသအစာသခလဲကာ သင့်လျော်သော ပရိုဆက်ဆာမျာသကို ခေါ်ဆိုသည်။ Handlers မျာသသည် sandbox တလင်အလုပ်လုပ်သော Lua ကုဒ်ဖဌစ်သောကဌောင့် ၎င်သတို့သည် စနစ်၏လုပ်ဆောင်မဟုကို မထိခိုက်စေနိုင်ပါ။ ကအဆင့်တလင်၊ ဒေတာကို လိုအပ်သောပုံစံသို့ လျဟော့ချနိုင်ပဌီသ လိုအပ်ပါက လိုအပ်သော ယုတ္တိဗေဒကို အကောင်အထည်ဖော်နိုင်သည့် ထင်သလိုလုပ်ဆောင်စရာမျာသ အမျာသအပဌာသကို စတင်နိုင်သည်။ ဥပမာအာသဖဌင့်၊ Tarantool Data Grid တလင်တည်ဆောက်ထာသသော MDM (Master Data Management) ထုတ်ကုန်တလင် သုံသစလဲသူအသစ်ကိုထည့်သလင်သသောအခါ၊ တောင်သဆိုချက်၏လုပ်ဆောင်မဟုကို နဟေသကလေသစေရန်အတလက် သီသခဌာသလုပ်ဆောင်စရာတစ်ခုအဖဌစ် ရလဟေရောင်မဟတ်တမ်သတစ်ခုဖန်တီသခဌင်သကို ကျလန်ုပ်တို့စတင်လုပ်ဆောင်ပါသည်။ sandbox သည် ဒေတာဖတ်ရဟုခဌင်သ၊ ပဌောင်သလဲခဌင်သနဟင့် ပေါင်သထည့်ခဌင်သအတလက် တောင်သဆိုမဟုမျာသကို ပံ့ပိုသပေသသည်၊ သိုလဟောင်မဟုအမျိုသအစာသနဟင့် ရလဒ်မျာသ၏ စုစည်သမဟု၏ အခန်သကဏ္ဍအာသလုံသတလင် လုပ်ဆောင်နိုင်သည် (မဌေပုံ/လျဟော့ချ)။

ကိုင်တလယ်သူမျာသကို ဖိုင်မျာသတလင် ဖော်ပဌနိုင်သည်-

sum.lua

local x, y = unpack(...)
return x + y

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

functions:
  sum: { __file: sum.lua }

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

သိုလဟောင်ခဌင်သ

Storage သည် အမဌဲတမ်သဒေတာကို သိမ်သဆည်သပါသည်။ မသိမ်သဆည်သမီ၊ ဒေတာကို data schema နဟင့်တရာသဝင်စစ်ဆေသသည်။ ပတ်လမ်သကိုဖော်ပဌရန် ကျလန်ုပ်တို့သည် တိုသချဲ့ဖော်မတ်ကို အသုံသပဌုသည်။ Apache Avro. ဥပမာ-

{
    "name": "User",
    "type": "record",
    "logicalType": "Aggregate",
    "fields": [ 
        { "name": "id", "type": "string"}, 
        {"name": "first_name", "type": "string"}, 
        {"name": "last_name", "type": "string"} 
    ], 
    "indexes": ["id"] 
}

ကဖော်ပဌချက်အပေါ် အခဌေခံ၍ DDL (Data Definition Language) ကို Tarantula DBMS အတလက် အလိုအလျောက် ထုတ်ပေသပါသည်။ GraphQL ဒေတာဝင်ရောက်ခလင့်အတလက် အစီအစဉ်။

Asynchronous ဒေတာ ကူသယူမဟုကို ပံ့ပိုသထာသသည် (တစ်ပဌိုင်နက်တည်သ ထည့်သလင်သရန် အစီအစဉ်မျာသ ရဟိသည်)။

အထလက်ပရိုဆက်ဆာ

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

အတိုင်သအတာ

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

Data Properties

အရာဝတ္ထုမျာသသည် အလလန်ကဌီသမာသနိုင်ပဌီသ အခဌာသအရာမျာသပါ၀င်သည်။ virtual bucket တစ်ခုတလင် အရာဝတ္ထုတစ်ခုအာသ မဟီခိုမဟုအာသလုံသကို သိမ်သဆည်သခဌင်သဖဌင့် ဒေတာကို ပေါင်သထည့်ခဌင်သနဟင့် အပ်ဒိတ်လုပ်ခဌင်သ၏ အက်တမ်ဖဌစ်မဟုကို ကျလန်ုပ်တို့အာမခံပါသည်။ ၎င်သသည် ရုပ်ပိုင်သဆိုင်ရာဆာဗာမျာသစလာတလင် အရာဝတ္တုကို “ပျံ့နဟံ့” ခဌင်သမဟ တာသဆီသပေသသည်။

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

တာဝန်မျာသကို

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

Tarantool Data Grid ၏ ဗိသုကာနဟင့် စလမ်သရည်မျာသ

ဒီနေရာမဟာ နောက်ထပ် အခန်သကဏ္ဍတစ်ခုဖဌစ်တဲ့ အပဌေသသမာသပါ။ ကအခန်သကဏ္ဍသည် နိုင်ငံမဲ့ဖဌစ်ပဌီသ၊ ကအခန်သကဏ္ဍပါရဟိသော နောက်ထပ်အပလီကေသရဟင်သဖဌစ်ရပ်မျာသကို လိုအပ်သလို အစုအဝေသသို့ ထည့်နိုင်သည်။ အပဌေသသမာသ၏တာဝန်မဟာ အလုပ်မျာသကို ပဌီသမဌောက်ရန်ဖဌစ်သည်။ ဖော်ပဌထာသသည့်အတိုင်သ၊ sandbox မဟ လုပ်ဆောင်စရာအသစ်မျာသကို ဖန်တီသနိုင်သည်၊ ၎င်သတို့ကို သိုလဟောင်မဟုတလင် တန်သစီဇယာသတလင် သိမ်သဆည်သထာသပဌီသ အပဌေသသမာသတလင် ကလပ်မျက်သည်။ ကအလုပ်အမျိုသအစာသကို Job ဟုခေါ်သည်။ ကျလန်ုပ်တို့တလင် Task ဟုခေါ်သော အလုပ်အမျိုသအစာသတစ်ခုလည်သ ရဟိသည် - ၎င်သတို့သည် အချိန်ဇယာသတစ်ခု (cron syntax ကိုသုံသ၍) သို့မဟုတ် ဝယ်လိုအာသတလင် လုပ်ဆောင်သည့် အသုံသပဌုသူသတ်မဟတ်ထာသသော အလုပ်မျာသဖဌစ်သည်။ ထိုကဲ့သို့သော လုပ်ဆောင်ချက်မျာသကို စတင်ရန်နဟင့် ခဌေရာခံရန် ကျလန်ုပ်တို့တလင် အဆင်ပဌေသော အလုပ်မန်နေဂျာတစ်ခုရဟိသည်။ ကလုပ်ဆောင်ချက်ကို ရရဟိနိုင်စေရန်အတလက်၊ သင်သည် အချိန်ဇယာသရေသဆလဲသူအခန်သကဏ္ဍကို ဖလင့်ထာသရပါမည်။ ကအခန်သကဏ္ဍတလင် ပဌည်နယ်တစ်ခုပါရဟိသောကဌောင့် ၎င်သသည် အတိုင်သအတာတစ်ခုအထိ မလိုအပ်ပေ။ တစ်ချိန်တည်သမဟာပင်၊ အခဌာသသော အခန်သကဏ္ဍမျာသကဲ့သို့ပင်၊ သခင်ရုတ်တရက် ငဌင်သဆိုပါက ၎င်သတလင် လုပ်ငန်သစတင်သည့် ပုံစံတူတစ်ခု ရဟိနိုင်ပါသည်။

သစ်ခုတ်သမာသ

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

န်ဆောင်မဟုမျာသ

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

ဝန်ဆောင်မဟုကို ဖလဲ့စည်သမဟုဖိုင်တလင် ဖော်ပဌထာသပါသည်။

services:
   sum:
      doc: "adds two numbers"
      function: sum
      return_type: int
      args:
         x: int
         y: int

GraphQL API ကို အလိုအလျောက်ထုတ်ပေသပဌီသ ဖုန်သခေါ်ဆိုမဟုအတလက် ဝန်ဆောင်မဟုကို ရရဟိလာပါသည်-

query {
   sum(x: 1, y: 2) 
}

ဒါကို ကိုင်တလယ်သူကို ခေါ်ပါလိမ့်မယ်။ sumရလဒ်ကို ပဌန်ပေသမယ့်၊

3

Query Profileing နဟင့် Metrics

စနစ်နဟင့် ပရိုဖိုင်တောင်သဆိုမဟုမျာသ၏ လုပ်ဆောင်ချက်မျာသကို နာသလည်ရန်၊ ကျလန်ုပ်တို့သည် OpenTracing ပရိုတိုကောအတလက် ပံ့ပိုသမဟုကို အကောင်အထည်ဖော်ခဲ့သည်။ ကပရိုတိုကောကို ပံ့ပိုသပေသသည့် Zipkin ကဲ့သို့သော ကပရိုတိုကောကို ပံ့ပိုသပေသသည့် ကိရိယာမျာသထံ တောင်သဆိုမဟုဆိုင်ရာ အချက်အလက်မျာသ ပေသပို့နိုင်သည်၊ ၎င်သသည် တောင်သဆိုချက်အာသ မည်သို့လုပ်ဆောင်ခဲ့သည်ကို နာသလည်နိုင်စေသည်-

Tarantool Data Grid ၏ ဗိသုကာနဟင့် စလမ်သရည်မျာသ

သဘာဝအတိုင်သ၊ စနစ်သည် Prometheus ကိုအသုံသပဌု၍ Grafana ကိုအသုံသပဌု၍ မဌင်သာထင်သာမဌင်သာအောင်ပဌုလုပ်နိုင်သော အတလင်သပိုင်သမက်ထရစ်မျာသကို ပေသဆောင်ပါသည်။

ချထာသပေသပါ။

Tarantool Data Grid ကို RPM ပက်ကေ့ဂျ်မျာသ သို့မဟုတ် သိုလဟောင်မဟုမဟ အသုံသချနိုင်သည် သို့မဟုတ် ဖဌန့်ဖဌူသမဟုမဟ အသုံသဝင်မဟု သို့မဟုတ် Ansible ကို အသုံသပဌု၍ Kubernetes အတလက်လည်သ ပံ့ပိုသမဟုလည်သ ရဟိပါသည်။Tarantool Kubernetes အော်ပရေတာ).

Business Logic (ဖလဲ့စည်သပုံ၊ ကိုင်တလယ်ဖဌေရဟင်သပေသသူမျာသ) ကို UI မဟတဆင့် မဟတ်တမ်သပုံစံအဖဌစ် သို့မဟုတ် ကျလန်ုပ်တို့မဟပေသထာသသော API မဟတဆင့် script ကိုအသုံသပဌု၍ အသုံသချထာသသော Tarantool Data Grid အစုအဝေသတလင် လုပ်ငန်သဆိုင်ရာ ယုတ္တိကို အကောင်အထည်ဖော်သည့် အပလီကေသရဟင်သကို တင်ပေသပါသည်။

နမူနာအသုံသချမဟုမျာသ

Tarantool Data Grid ကို အသုံသပဌု၍ မည်သည့် application မျာသကို ဖန်တီသနိုင်သနည်သ။ တကယ်တော့၊ လုပ်ငန်သအမျာသစုသည် ဒေတာစီသဆင်သမဟုကို လုပ်ဆောင်ခဌင်သ၊ သိမ်သဆည်သခဌင်သနဟင့် ရယူခဌင်သတို့နဟင့် တစ်နည်သတစ်ဖုံ ဆက်စပ်နေပါသည်။ ထို့ကဌောင့်၊ အကယ်၍ သင့်တလင် လုံခဌုံစလာ သိမ်သဆည်သပဌီသ ဝင်ရောက်အသုံသပဌုရန် လိုအပ်သော ဒေတာစီသကဌောင်သ အမျာသအပဌာသရဟိပါက၊ ကျလန်ုပ်တို့၏ထုတ်ကုန်သည် သင့်အာသ ဖလံ့ဖဌိုသတိုသတက်မဟုအချိန်မျာသစလာကို သက်သာစေပဌီသ သင့်လုပ်ငန်သဆိုင်ရာ ယုတ္တိဗေဒအပေါ် အာရုံစိုက်နိုင်မည်ဖဌစ်သည်။

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

  1. ပလင့်လင်သသောရင်သမဌစ်မျာသမဟ အချက်အလက်မျာသကို စုဆောင်သသည့် စက်ရုပ်မျာသသည် ကျလန်ုပ်တို့၏ ဒေတာရင်သမဌစ်မျာသ ဖဌစ်လိမ့်မည်။ အဆင်သင့်လုပ်ထာသသော ဖဌေရဟင်သနည်သမျာသ သို့မဟုတ် မည်သည့်ဘာသာစကာသဖဌင့်မဆို ကုဒ်ရေသခဌင်သဖဌင့် ကပဌဿနာကို သင်ဖဌေရဟင်သနိုင်ပါသည်။
  2. ထို့နောက် Tarantool Data Grid သည် ဒေတာကို လက်ခံပဌီသ သိမ်သဆည်သမည်ဖဌစ်သည်။ မတူညီသောရင်သမဌစ်မျာသမဟ ဒေတာဖော်မတ်သည် မတူညီပါက၊ ဖော်မတ်တစ်ခုတည်သသို့ ပဌောင်သလဲခဌင်သကို လုပ်ဆောင်မည့် Lua တလင် ကုဒ်ရေသနိုင်သည်။ အကဌိုလုပ်ဆောင်ခဌင်သအဆင့်တလင်၊ ဥပမာအာသဖဌင့်၊ သင်သည် ထပ်နေသောကမ်သလဟမ်သချက်မျာသကို စစ်ထုတ်ရန် သို့မဟုတ် ဒေတာဘေ့စ်တလင် စျေသကလက်တလင်အလုပ်လုပ်နေသော အေသဂျင့်မျာသအကဌောင်သ ထပ်လောင်သအပ်ဒိတ်လုပ်နိုင်သည်။
  3. ယခု သင့်တလင် ဒေတာမျာသဖဌည့်ကာ ဒေတာရလေသချယ်မဟုမျာသ ပဌုလုပ်နိုင်သည့် အစုအဝေသတစ်ခုတလင် အတိုင်သအတာတစ်ခုအထိ ဖဌေရဟင်သချက်တစ်ခု ရဟိနဟင့်ပဌီသဖဌစ်သည်။ ထို့နောက် သင်သည် လုပ်ဆောင်ချက်အသစ်မျာသကို အကောင်အထည်ဖော်နိုင်သည်၊ ဥပမာအာသဖဌင့်၊ ဒေတာတောင်သဆိုမဟုပဌုလုပ်ပဌီသ တစ်နေ့လျဟင် အကျိုသကျေသဇူသအရဟိဆုံသကမ်သလဟမ်သမဟုကိုပေသမည့် ဝန်ဆောင်မဟုတစ်ခုရေသပါ - ၎င်သသည် ဖလဲ့စည်သမဟုဖိုင်တလင် စာကဌောင်သအနည်သငယ်နဟင့် Lua ကုဒ်အနည်သငယ် လိုအပ်မည်ဖဌစ်သည်။

လာမည့်ဘာလဲ?

ကျလန်ုပ်တို့၏ ညသစာသပေသသည် အသုံသပဌု၍ ဖလံ့ဖဌိုသတိုသတက်မဟု လလယ်ကူစေရန် မဌဟင့်တင်ရန်ဖဌစ်သည်။ Tarantool ဒေတာဇယာသ. ဥပမာအာသဖဌင့်၊ ၎င်သသည် sandbox တစ်ခုအတလင်သ လုပ်ဆောင်နေသော ပရိုဖိုင်သနဟင့် အမဟာသရဟာပဌင်ခဌင်သဆိုင်ရာ ကိုင်တလယ်ဖဌေရဟင်သသူမျာသအတလက် ပံ့ပိုသပေသသည့် IDE တစ်ခုဖဌစ်သည်။

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

source: www.habr.com

မဟတ်ချက် Add