Кәсіпорын үшін таратылған ДҚБЖ

CAP теоремасы бөлінген жүйелер теориясының негізі болып табылады. Әрине, оның төңірегіндегі дау-дамай азаймайды: ондағы анықтамалар канондық емес, қатаң дәлел де жоқ... Соған қарамастан, күнделікті жалпы сана™ ұстанымдарына берік бола отырып, біз теореманың ақиқат екенін интуитивті түрде түсінеміз.

Кәсіпорын үшін таратылған ДҚБЖ

Бір ғана анық емес нәрсе – «Р» әрпінің мағынасы. Кластер бөлінгенде, ол кворумға жеткенше жауап бермеуді немесе қолжетімді деректерді қайтаруды шешеді. Осы таңдаудың нәтижелеріне байланысты жүйе CP немесе AP болып жіктеледі. Мысалы, Кассандра кластер параметрлеріне емес, әрбір нақты сұраудың параметрлеріне байланысты кез келген жолмен әрекет ете алады. Бірақ егер жүйе «P» болмаса және ол бөлінсе, онда не істеу керек?

Бұл сұраққа жауап күтпеген: CA кластері бөлінбейді.
Бөлінбейтін бұл қандай кластер?

Мұндай кластердің таптырмас атрибуты ортақ деректерді сақтау жүйесі болып табылады. Жағдайлардың басым көпшілігінде бұл SAN инфрақұрылымын қолдауға қабілетті ірі кәсіпорындарға CA шешімдерін пайдалануды шектейтін SAN арқылы қосылуды білдіреді. Бірнеше серверлер бір деректермен жұмыс істеуі үшін кластерленген файлдық жүйе қажет. Мұндай файлдық жүйелер HPE (CFS), Veritas (VxCFS) және IBM (GPFS) портфолиоларында қол жетімді.

Oracle RAC

Нақты қолданбалы кластер опциясы алғаш рет 2001 жылы Oracle 9i шығарылымымен пайда болды. Мұндай кластерде бірнеше сервер даналары бір дерекқормен жұмыс істейді.
Oracle кластерленген файлдық жүйемен де, өз шешімімен де жұмыс істей алады - ASM, Автоматты сақтауды басқару.

Әрбір көшірме өз журналын жүргізеді. Мәміле бір инстанция арқылы орындалады және жасалады. Дана сәтсіз болса, аман қалған кластер түйіндерінің (даналары) бірі оның журналын оқиды және жоғалған деректерді қалпына келтіреді, осылайша қолжетімділікті қамтамасыз етеді.

Барлық даналар өздерінің кэштерін сақтайды және бірдей беттер (блоктар) бір уақытта бірнеше дананың кэштерінде болуы мүмкін. Сонымен қатар, егер бір данаға бет қажет болса және ол басқа дананың кэшінде болса, ол оны дискіден оқудың орнына кэш біріктіру механизмін пайдаланып көршісінен ала алады.

Кәсіпорын үшін таратылған ДҚБЖ

Бірақ даналардың біреуі деректерді өзгерту қажет болса не болады?

Oracle ерекшелігі, оның арнайы құлыптау қызметі жоқ: егер сервер жолды құлыптағысы келсе, онда құлыптау жазбасы құлыпталған жол орналасқан жад бетінде тікелей орналастырылады. Осы тәсілдің арқасында Oracle монолитті дерекқорлар арасында өнімділік чемпионы болып табылады: құлыптау қызметі ешқашан тығырыққа тірелмейді. Бірақ кластер конфигурациясында мұндай архитектура қарқынды желілік трафикке және тығырыққа әкелуі мүмкін.

Жазба құлыпталғаннан кейін дана барлық басқа даналарға жазбаны сақтайтын беттің эксклюзивті сақтауы бар екенін хабарлайды. Егер басқа данаға сол бетте жазбаны өзгерту қажет болса, ол бетке өзгертулер жасалғанша күтуі керек, яғни өзгерту туралы ақпарат дискідегі журналға жазылады (және транзакция жалғасуы мүмкін). Сондай-ақ, бет бірнеше көшірмелер бойынша дәйекті түрде өзгертілуі мүмкін, содан кейін бетті дискіге жазған кезде осы беттің ағымдағы нұсқасын кім сақтайтынын білуге ​​тура келеді.

Әртүрлі RAC түйіндерінде бірдей беттерді кездейсоқ жаңарту дерекқор өнімділігінің кластер өнімділігі бір данаға қарағанда төмен болуы мүмкін нүктеге дейін күрт төмендеуіне әкеледі.

Oracle RAC дұрыс пайдалану деректерді физикалық түрде бөлу (мысалы, бөлінген кесте механизмін пайдалану) және бөлінген түйін арқылы бөлімдердің әрбір жинағына қол жеткізу болып табылады. RAC негізгі мақсаты көлденең масштабтау емес, ақауларға төзімділікті қамтамасыз ету болды.

Егер түйін жүрек соғуына жауап беруді тоқтатса, оны анықтаған түйін алдымен дискіде дауыс беру процедурасын бастайды. Егер бұл жерде жетіспейтін түйін белгіленбесе, онда түйіндердің бірі деректерді қалпына келтіру жауапкершілігін алады:

  • жетіспейтін түйіннің кэшінде болған барлық беттерді «қатырып тастайды»;
  • жетіспейтін түйіннің журналдарын оқиды (қайталау) және осы журналдарда жазылған өзгерістерді қайта қолданады, бір уақытта басқа түйіндерде өзгертілетін беттердің соңғы нұсқалары бар-жоғын тексереді;
  • күтудегі транзакцияларды кері қайтарады.

Түйіндер арасында ауысуды жеңілдету үшін Oracle сервис концепциясына ие - виртуалды данасы. Дана бірнеше қызметтерге қызмет көрсете алады және қызмет түйіндер арасында жылжи алады. Дерекқордың белгілі бір бөлігіне қызмет көрсететін қолданба данасы (мысалы, клиенттер тобы) бір қызметпен жұмыс істейді және түйін сәтсіз болған кезде дерекқордың осы бөлігіне жауапты қызмет басқа түйінге ауысады.

Транзакцияларға арналған IBM Pure деректер жүйелері

ДҚБЖ үшін кластерлік шешім Blue Giant портфолиосында 2009 жылы пайда болды. Идеологиялық тұрғыдан бұл «тұрақты» жабдыққа салынған Parallel Sysplex кластерінің мұрагері. 2009 жылы DB2 pureScale бағдарламалық құрал жинағы ретінде шығарылды, ал 2012 жылы IBM транзакцияларға арналған таза деректер жүйелері деп аталатын құрылғыны ұсынды. Оны Analytics үшін таза деректер жүйелерімен шатастырмау керек, бұл Netezza атауынан басқа ештеңе емес.

Бір қарағанда, pureScale архитектурасы Oracle RAC-қа ұқсайды: дәл осылай бірнеше түйіндер жалпы деректерді сақтау жүйесіне қосылған және әрбір түйін өзінің жеке жад аумақтарымен және транзакция журналдарымен ДҚБЖ данасын іске қосады. Бірақ, Oracle-дан айырмашылығы, DB2 жүйесінде db2LLM* процестерінің жиынтығымен ұсынылған арнайы құлыптау қызметі бар. Кластер конфигурациясында бұл қызмет жеке түйінге орналастырылады, ол Parallel Sysplex жүйесінде біріктіру құралы (CF) және таза деректерде PowerHA деп аталады.

PowerHA келесі қызметтерді ұсынады:

  • құлыптау менеджері;
  • жаһандық буферлік кэш;
  • процессаралық коммуникациялар аймағы.

Деректерді PowerHA жүйесінен дерекқор түйіндеріне және кері тасымалдау үшін жадқа қашықтан кіру рұқсаты пайдаланылады, сондықтан кластердің өзара байланысы RDMA протоколын қолдауы керек. PureScale Ethernet арқылы Infiniband және RDMA екеуін де пайдалана алады.

Кәсіпорын үшін таратылған ДҚБЖ

Егер түйінге бет қажет болса және бұл бет кэште болмаса, онда түйін ғаламдық кэштегі бетті сұрайды және ол жоқ болса ғана оны дискіден оқиды. Oracle-дан айырмашылығы, сұрау көрші түйіндерге емес, тек PowerHA-ға жіберіледі.

Егер дана жолды өзгертетін болса, ол оны эксклюзивті режимде және жол орналасқан бетті ортақ режимде құлыптайды. Барлық құлыптар жаһандық құлыптау менеджерінде тіркелген. Транзакция аяқталғанда, түйін өзгертілген бетті жаһандық кэшке көшіретін, құлыптарды босатқан және басқа түйіндердің кэштеріндегі өзгертілген бетті жарамсыз ететін құлыптау менеджеріне хабарлама жібереді.

Егер өзгертілген жол орналасқан бет әлдеқашан құлыпталған болса, құлыптау менеджері өзгертілген бетті өзгертуді жасаған түйін жадынан оқиды, құлыпты босатады, басқа түйіндердің кэштеріндегі өзгертілген бетті жарамсыз етеді және оны сұраған түйінге бет құлпын беріңіз.

«Кір», яғни өзгертілген беттерді дискіге кәдімгі түйіннен де, PowerHA (castout) арқылы да жазуға болады.

Егер pureScale түйіндерінің бірі сәтсіз болса, қалпына келтіру сәтсіздік кезінде әлі аяқталмаған транзакциялармен шектеледі: аяқталған транзакциялардағы осы түйінмен өзгертілген беттер PowerHA жүйесіндегі жаһандық кэште болады. Түйін кластердегі серверлердің бірінде азайтылған конфигурацияда қайта іске қосылады, күтудегі транзакцияларды кері қайтарады және құлыптарды шығарады.

PowerHA екі серверде жұмыс істейді және негізгі түйін оның күйін синхронды түрде қайталайды. Негізгі PowerHA түйіні сәтсіз болса, кластер сақтық көшірме түйінімен жұмысын жалғастырады.
Әрине, деректер жинағына бір түйін арқылы қол жеткізсеңіз, кластердің жалпы өнімділігі жоғары болады. PureScale тіпті белгілі бір деректер аймағы бір түйінмен өңделетінін байқай алады, содан кейін осы аймаққа қатысты барлық құлыптар PowerHA-мен байланыспай түйін арқылы жергілікті түрде өңделеді. Бірақ қолданба бұл деректерге басқа түйін арқылы қол жеткізуге тырысқанда, орталықтандырылған құлыпты өңдеу қайта жалғасады.

90% оқу және 10% жазу жұмыс жүктемесі бойынша IBM ішкі сынақтары, бұл нақты өндірістік жұмыс жүктемелеріне өте ұқсас, 128 түйінге дейін дерлік сызықтық масштабтауды көрсетеді. Сынақ шарттары, өкінішке орай, ашылмаған.

HPE NonStop SQL

Hewlett-Packard Enterprise портфолиосының да өзінің жоғары қолжетімді платформасы бар. Бұл Tandem Computers компаниясы 1976 жылы нарыққа шығарған NonStop платформасы. 1997 жылы компанияны Compaq сатып алды, ол өз кезегінде 2002 жылы Hewlett-Packard-пен біріктірілді.

NonStop маңызды қолданбаларды құру үшін пайдаланылады - мысалы, HLR немесе банк картасын өңдеу. Платформа компьютерлік түйіндерді, деректерді сақтау жүйесін және байланыс жабдығын қамтитын бағдарламалық-аппараттық кешен (құрал) түрінде жеткізіледі. ServerNet желісі (қазіргі жүйелерде - Infiniband) түйіндер арасында алмасу үшін де, деректерді сақтау жүйесіне кіру үшін де қызмет етеді.

Жүйенің алғашқы нұсқаларында бір-бірімен синхрондалған меншікті процессорлар қолданылды: барлық операцияларды бірнеше процессорлар синхронды түрде орындады және процессорлардың бірі қате жіберген бойда ол өшірілді, ал екіншісі жұмысын жалғастырды. Кейінірек жүйе кәдімгі процессорларға (алдымен MIPS, содан кейін Itanium және соңында x86) ауысты және синхрондау үшін басқа механизмдер қолданыла бастады:

  • хабарламалар: әрбір жүйелік процестің «көлеңкелі» егізі бар, оған белсенді процесс оның күйі туралы хабарламаларды мерзімді түрде жібереді; егер негізгі процесс сәтсіз болса, көлеңкелі процесс соңғы хабарламамен анықталған сәттен бастап жұмыс істей бастайды;
  • дауыс беру: сақтау жүйесінде бірнеше бірдей рұқсаттарды қабылдайтын және рұқсаттар сәйкес болған жағдайда ғана оларды орындайтын арнайы аппараттық құрамдас бар; Физикалық синхронизацияның орнына процессорлар асинхронды түрде жұмыс істейді және олардың жұмыс нәтижелері тек енгізу/шығару сәтінде ғана салыстырылады.

1987 жылдан бастап NonStop платформасында реляциялық ДҚБЖ жұмыс істейді - алдымен SQL/MP, кейінірек SQL/MX.

Бүкіл дерекқор бөліктерге бөлінген және әрбір бөлік өзінің Data Access Manager (DAM) процесіне жауап береді. Ол деректерді жазу, кэштеу және құлыптау механизмдерін қамтамасыз етеді. Деректерді өңдеуді сәйкес деректер менеджерлерімен бірдей түйіндерде жұмыс істейтін Орындаушы сервер процестері жүзеге асырады. SQL/MX жоспарлаушы орындаушылар арасында тапсырмаларды бөледі және нәтижелерді біріктіреді. Келісілген өзгертулер енгізу қажет болғанда, TMF (транзакцияны басқару құралы) кітапханасы ұсынған екі кезеңді міндеттеме хаттамасы пайдаланылады.

Кәсіпорын үшін таратылған ДҚБЖ

NonStop SQL ұзақ аналитикалық сұраулар транзакцияны орындауға кедергі жасамайтындай процестерге басымдық бере алады. Дегенмен, оның мақсаты аналитика емес, дәл қысқа транзакцияларды өңдеу болып табылады. Әзірлеуші ​​бес «тоғыздық» деңгейінде NonStop кластерінің қолжетімділігіне кепілдік береді, яғни тоқтау уақыты жылына небәрі 5 минутты құрайды.

SAP-HANA

HANA ДҚБЖ (1.0) бірінші тұрақты шығарылымы 2010 жылдың қарашасында болды, ал SAP ERP пакеті 2013 жылдың мамырында HANA-ға ауысты. Платформа сатып алынған технологияларға негізделген: TREX Search Engine (бағаналық жадта іздеу), P*TIME ДҚБЖ және MAX DB.

«HANA» сөзінің өзі аббревиатура, Жоғары өнімділік аналитикалық құрылғы. Бұл ДҚБЖ кез келген x86 серверлерінде жұмыс істей алатын код түрінде жеткізіледі, бірақ өнеркәсіптік қондырғыларға тек сертификатталған жабдықта рұқсат етіледі. HP, Lenovo, Cisco, Dell, Fujitsu, Hitachi, NEC қол жетімді шешімдер. Кейбір Lenovo конфигурациялары тіпті SAN жоқ жұмыс істеуге мүмкіндік береді - жалпы сақтау жүйесінің рөлін жергілікті дискілердегі GPFS кластері атқарады.

Жоғарыда аталған платформалардан айырмашылығы, HANA жадтағы ДҚБЖ болып табылады, яғни бастапқы деректер кескіні жедел жадта сақталады және апат жағдайында қалпына келтіру үшін дискіге журналдар мен мерзімді суреттер ғана жазылады.

Кәсіпорын үшін таратылған ДҚБЖ

Әрбір HANA кластер түйіні деректердің өз бөлігіне жауап береді, ал деректер картасы арнайы құрамдас бөлікте – Үйлестіруші түйінінде орналасқан атау серверінде сақталады. Деректер түйіндер арасында қайталанбайды. Құлыптау ақпараты да әрбір түйінде сақталады, бірақ жүйеде жаһандық тұйықталу детекторы бар.

HANA клиенті кластерге қосылғанда, ол өзінің топологиясын жүктеп алады, содан кейін қандай деректер қажет екеніне байланысты кез келген түйінге тікелей қол жеткізе алады. Егер транзакция бір түйіннің деректеріне әсер етсе, онда оны сол түйін жергілікті түрде орындауы мүмкін, бірақ егер бірнеше түйіннің деректері өзгерсе, бастаушы түйін үйлестіруші түйінмен байланысады, ол таратылған транзакцияны ашады және үйлестіреді, оны қолдана отырып жасайды. оңтайландырылған екі фазалы орындау протоколы.

Үйлестіруші түйін қайталанады, сондықтан үйлестіруші сәтсіз болса, сақтық көшірме түйіні бірден қабылданады. Бірақ деректері бар түйін сәтсіз болса, оның деректеріне қол жеткізудің жалғыз жолы - түйінді қайта іске қосу. Әдетте, HANA кластерлері жоғалған түйінді мүмкіндігінше жылдам қайта іске қосу үшін қосалқы серверді қолдайды.

Ақпарат көзі: www.habr.com

пікір қалдыру