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

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

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

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

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

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

Oracle RAC

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

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

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

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

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

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

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

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

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

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

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

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

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

ДҚБЖ үшін кластерлік шешім Big Blue портфолиосында 2009 жылы пайда болды. Идеологиялық тұрғыдан ол «жалпы» аппараттық құралға негізделген Parallel Sysplex кластерінің мұрагері болып табылады. 2009 жылы DB2 pureScale бағдарламалық жасақтамасы шығарылды, ал 2012 жылы IBM транзакцияларға арналған Pure Data Systems деп аталатын аппараттық және бағдарламалық құралды ұсынды. Мұны 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-де де өзінің жоғары қолжетімді платформасы бар. Бұл 1976 жылы Tandem Computers шығарған 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 кластерінің қолжетімділігіне кепілдік береді, яғни тоқтау уақыты жылына бес минутты құрайды.

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 конфигурациялары тіпті ортақ сақтау орны ретінде қызмет ететін жергілікті дискілердегі GPFS кластерімен SAN жүйесінсіз жұмыс істеуге мүмкіндік береді.

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

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

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

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

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

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

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