Кіріспе

MySQL деректер қорын автоматты түрде бөлу технологиясы

MySQL Cluster – MySQL деректерді басқару жүйесі үшін ортақ ресурстық кластерлеу және автоматты бөлуді қамтамасыз ететін технология. Ол төмен жауап уақытымен жоғары қолжетімділік пен жоғары өнімділікті қамтамасыз етуге, сонымен қатар дерлік сызықтық масштабтауға мүмкіндік беру үшін жасалған. MySQL Cluster, MySQL үшін NDB немесе NDBCLUSTER сақтау механизмі арқылы іске асырылады ("NDB" – Желілік деректер қоры дегенді білдіреді).

Сәулет

MySQL кластері жеке сәтсіздік нүктесі жоқ, көп мастерлі, ACID талаптарына сай келетін таратылған архитектура бойынша құрылған. MySQL кластері стандартты аппараттық құралдарда оқу және жазу операцияларын кеңейту үшін автоматты шамалауды (бөлуді) пайдаланады және SQL және SQL емес (NoSQL) API арқылы қолжетімді.

Көшіру

MySQL кластері деректердің бірнеше түйіндерге жазылуын қамтамасыз ету үшін екі кезеңді коммит механизмі арқылы синхронды репликацияны қолданады. (Бұл әдетте асинхронды "MySQL репликациясы" деп аталатын нәрседен өзгеше.) Деректердің екі көшірмесі (репликасы) қолжетімділікті қамтамасыз ету үшін қажет. MySQL кластері пайдаланушы көрсеткен репликалар мен деректер түйіндерінің санынан автоматты түрде "түйін топтарын" құрайды. Жаңартулар дерек жоғалтудан қорғау және түйіндер арасында жылдам ауысуды қолдау үшін түйін тобының мүшелері арасында синхронды түрде репликацияланады. Кластерлер арасында асинхронды репликация да мүмкін; бұл кейде "MySQL кластерлік репликациясы" немесе "географиялық репликация" деп аталады. Бұл көбінесе апатты жағдайларда деректерді қалпына келтіру үшін деректер орталықтары арасында кластерлерді репликациялауға немесе деректерді пайдаланушылар тобына физикалық жақын орналастыру арқылы желілік задерденудің әсерін азайтуға қолданылады. Стандартты MySQL репликациясынан айырмашылығы, MySQL кластерінің географиялық репликациясы оптимистік параллелизмді басқару және Эпохалар тұжырымын пайдаланады, бұл қақтығыстарды анықтау және шешу механизмін қамтамасыз етеді, соның арқасында деректер орталықтары арасындағы белсенді/белсенді кластерлеу мүмкін болады. MySQL кластерінің 7.2 нұсқасынан бастап, деректер орталықтары арасындағы синхронды репликацияға қолдау Multi Site Clustering мүмкіндігі арқылы берілді.

Деректерді көлденең бөлу (автоматты түрде бөлу)

MySQL кластері толыққанды үлестірілген, көптеген бас серверлі деректер базасы ретінде іске асырылады, бұл кез келген қосымша немесе SQL түйіні жасаған өзгерістердің кластерге қосылған барлық басқа түйіндерге дереу қолжетімді болуын қамтамасыз етеді, және әрбір дерек түйіні жазу операцияларын қабылдай алады. MySQL кластерлік (NDB) кестелеріндегі деректер жүйедегі барлық дерек түйіндері арасында автоматты түрде бөлінеді. Бұл кестедегі бірінші кілтке негізделген хэштелген алгоритм арқылы жасалады және соңғы қолданушыға көрінбейді. Клиенттер кластердегі кез келген түйінге қосыла алады және сұраулар сұрауды қанағаттандыру немесе транзакцияны аяқтау үшін қажетті дұрыс бөліктерге автоматты түрде кіре алады. MySQL кластері бөліктер аралық сұраулар мен транзакцияларды қолдай алады. Пайдаланушылар өздерінің бөлу схемаларын анықтай алады. Бұл әзірлеушілерге жоғары жылдамдықпен орындалатын транзакцияларға қатысты барлық қатарларға ортақ кілт негізінде бөлу арқылы қосымшаларға «тарату туралы хабардар болу» мүмкіндігін қосуға мүмкіндік береді. Бұл транзакцияны аяқтау үшін қолданылатын деректердің бір бөлікте орналасуын қамтамасыз етеді, соның арқасында желілік байланыстар саны азаяды.

Гибридті сақтау

MySQL кластері бір машинаның сыйымдылығынан артық деректер жиынтығын бірнеше машинада сақтауға және оларға қол жеткізуге мүмкіндік береді. MySQL кластері барлық индекстелген бағандарды үлестірілген жадта сақтайды. Индекстелмеген бағандар да үлестірілген жадта немесе жадтағы беттік кэшті пайдалана отырып дискіде сақталуы мүмкін. Дискіде индекстелмеген бағандарды сақтау, MySQL кластеріне кластерленген машиналардың жалпы жадынан үлкен деректер жиынтығын сақтауға мүмкіндік береді. MySQL кластері барлық деректер өзгерістері үшін Redo журналдарын дискіге жазады, сондай-ақ деректерді дискіге үнемі тексеру нүктелеріне (checkpoints) сақтайды. Бұл кластерге толық кластер істен шыққаннан кейін дискіден тұрақты түрде қалпына келтіруге мүмкіндік береді. Redo журналдары транзакциялар бекітілгеннен кейін асинхронды түрде жазылатындықтан, егер толық кластер сәтсіз болса, шамалы мөлшерде транзакциялар жоғалуы мүмкін, бірақ бұл жоғарыда талқыланған географиялық репликация немесе көп сайтты кластерді пайдалану арқылы азайтылуы мүмкін. Қазіргі әдепкі асинхронды жазу кешігуі 2 секундты құрайды және конфигурацияланады. Кластердегі синхронды деректерді көшіруге байланысты, әдеттегі жекелей іс сәтсіздік сценарийлері деректердің жоғалуына әкелмейді. MySQL кластерлік кестесі жадыда сақталғанда, кластер тек Redo жазбаларын және тексеру нүктелерін жазу үшін дискідегі сақтау орнына кіреді. Бұл жазулар реттілікпен орындалатындықтан және шектеулі кездейсоқ қол жеткізу үлгілері қатысқандықтан, MySQL кластері дәстүрлі дискіге негізделген кэштік СҚБД-ға (RDBMS) қарағанда шектеулі дискілік аппараттық қамтамасыз етумен жоғары жазу өткізу қабілетіне қол жеткізе алады. Жадыдағы кесте деректерінің дискіге тексеру нүктесін (checkpoint) қосу (кесте бойынша) дискідегі тұрақтылық қажет болмаса, өшірілуі мүмкін.

Бір-бірімен бөліспеген

MySQL кластері бірде-бір сәтсіздік нүктесі болмайтындай етіп жобаланған. Егер кластер дұрыс орнатылған болса, кез келген түйін, жүйе немесе аппараттық құралдың істен шығуы кластердің толығымен тоқтауына әкелмейді. Ортақ диск (SAN) қажет емес. Түйіндер арасындағы байланыс стандартты Ethernet, Gigabit Ethernet, InfiniBand немесе SCI желілері арқылы жүзеге асырылуы мүмкін.

MySQL кластер менеджері

MySQL Cluster CGE коммерциялық MySQL Cluster CGE құрамының бір бөлігі болып табылатын MySQL Cluster Manager – MySQL Cluster CGE дерекқорын құру және басқаруды жеңілдетуге арналған құрал. Ол, оның ішінде желідегі масштабтау, жаңартулар, сақтық көшірмесін жасау/қалпына келтіру және қайта конфигурациялау сияқты, жиі кездесетін басқару міндеттерін автоматтандыру арқылы осы процесті жеңілдетеді. MySQL Cluster Manager сонымен қатар MySQL Server қолданбалық және басқару түйіндерін, сондай-ақ MySQL Cluster дерек түйіндерін бақылайды және автоматты түрде қалпына келтіреді.

Тарих

MySQL AB, MySQL Cluster технологиясын Ericsson бастаған шағын кәсіпорын Alzato компаниясынан сатып алды. NDB бастапқыда телекоммуникация нарығы үшін жоғары сенімділік және жоғары өнімділік талаптарымен құрастырылған. NDB сақтау қозғалтқышы негізіндегі MySQL Cluster кейіннен MySQL өніміне енгізілді, алғашқы нұсқасы MySQL 4.1-де жарық көрді.

Қолдау

MySQL Cluster GPLv2 лицензиясымен лицензияланған. Коммерциялық қолдау MySQL Cluster CGE аясында қолжетімді, соған қоса MySQL Cluster Manager, MySQL Enterprise Monitor, MySQL Enterprise Security және MySQL Enterprise Audit сияқты ашық кодты емес қосымшалар да кіреді.

Басқа

Телекоммуникациялық қосымшаларға арналған параллель деректер серверін жобалау және модельдеу (1997) MySQL кластерінің бастапқы жобалау себептері.