Korxona uchun tarqatilgan DBMS

CAP teoremasi taqsimlangan tizimlar nazariyasining asosidir. Albatta, uning atrofidagi bahs-munozaralar susaymaydi: undagi ta'riflar kanonik emas va qat'iy isbot ham yo'q... Shunday bo'lsa-da, kundalik sog'lom fikr™ pozitsiyalarida qat'iy turib, biz teoremaning haqiqat ekanligini intuitiv ravishda tushunamiz.

Korxona uchun tarqatilgan DBMS

Aniq bo'lmagan yagona narsa - "P" harfining ma'nosi. Klaster bo'linganda, u kvorumga erishilmaguncha javob bermaslik yoki mavjud ma'lumotlarni qaytarib berish to'g'risida qaror qabul qiladi. Ushbu tanlov natijalariga ko'ra, tizim CP yoki AP sifatida tasniflanadi. Kassandra, masalan, klaster sozlamalariga emas, balki har bir aniq so'rovning parametrlariga qarab, har qanday yo'l bilan harakat qilishi mumkin. Ammo agar tizim "P" bo'lmasa va u bo'linsa, unda nima bo'ladi?

Bu savolga javob biroz kutilmagan: CA klasteri bo'linib bo'lmaydi.
Bu qanday klaster bo'lib bo'linmaydi?

Bunday klasterning ajralmas atributi umumiy ma'lumotlarni saqlash tizimidir. Aksariyat hollarda bu SAN orqali ulanishni anglatadi, bu esa SAN infratuzilmasini saqlashga qodir yirik korxonalar uchun CA yechimlaridan foydalanishni cheklaydi. Bir nechta serverlar bir xil ma'lumotlar bilan ishlashi uchun klasterli fayl tizimi talab qilinadi. Bunday fayl tizimlari HPE (CFS), Veritas (VxCFS) va IBM (GPFS) portfellarida mavjud.

Oracle RAC

Haqiqiy ilovalar klasteri opsiyasi birinchi marta 2001 yilda Oracle 9i chiqarilishi bilan paydo bo'lgan. Bunday klasterda bir nechta server namunalari bir xil ma'lumotlar bazasi bilan ishlaydi.
Oracle ham klasterli fayl tizimi, ham o'zining yechimi - ASM, Avtomatik saqlash boshqaruvi bilan ishlashi mumkin.

Har bir nusxa o'z jurnalini saqlaydi. Tranzaktsiya bitta instansiya tomonidan amalga oshiriladi va amalga oshiriladi. Agar namuna muvaffaqiyatsiz bo'lsa, omon qolgan klaster tugunlaridan biri (nasollar) o'z jurnalini o'qiydi va yo'qolgan ma'lumotlarni tiklaydi - shu bilan mavjudligini ta'minlaydi.

Barcha misollar o'z keshini saqlaydi va bir xil sahifalar (bloklar) bir vaqtning o'zida bir nechta nusxalarning keshlarida bo'lishi mumkin. Bundan tashqari, agar bitta nusxa sahifaga muhtoj bo'lsa va u boshqa nusxaning keshida bo'lsa, u diskdan o'qish o'rniga kesh sintezi mexanizmidan foydalanib, uni qo'shnisidan olishi mumkin.

Korxona uchun tarqatilgan DBMS

Ammo misollardan biri ma'lumotlarni o'zgartirishi kerak bo'lsa nima bo'ladi?

Oracle-ning o'ziga xosligi shundaki, unda maxsus qulflash xizmati mavjud emas: agar server qatorni bloklashni xohlasa, u holda blokirovka yozuvi to'g'ridan-to'g'ri qulflangan qator joylashgan xotira sahifasiga joylashtiriladi. Ushbu yondashuv tufayli Oracle monolit ma'lumotlar bazalari orasida ishlash chempioni hisoblanadi: qulflash xizmati hech qachon muammoga aylanmaydi. Ammo klaster konfiguratsiyasida bunday arxitektura kuchli tarmoq trafigiga va boshi berk ko'chaga olib kelishi mumkin.

Yozuv bloklangandan so'ng, namuna boshqa barcha holatlarga ushbu yozuvni saqlaydigan sahifa eksklyuziv ushlab turishga ega ekanligi haqida xabar beradi. Agar boshqa misol xuddi shu sahifadagi yozuvni o'zgartirishi kerak bo'lsa, u sahifaga o'zgartirishlar kiritilguncha kutishi kerak, ya'ni o'zgartirish ma'lumotlari diskdagi jurnalga yoziladi (va tranzaktsiya davom etishi mumkin). Shuningdek, sahifa bir necha nusxada ketma-ket o'zgartirilishi mumkin, keyin sahifani diskka yozishda siz ushbu sahifaning joriy versiyasini kim saqlayotganini bilib olishingiz kerak bo'ladi.

Turli xil RAC tugunlari bo'ylab bir xil sahifalarni tasodifiy yangilash ma'lumotlar bazasi ishlashining keskin pasayishiga olib keladi, klaster ishlashi bitta misoldan past bo'lishi mumkin.

Oracle RAC-dan to'g'ri foydalanish ma'lumotlarni jismoniy qismlarga ajratish (masalan, bo'lingan jadval mexanizmi yordamida) va har bir bo'lim to'plamiga ajratilgan tugun orqali kirishdir. RAC ning asosiy maqsadi gorizontal masshtablash emas, balki xatolarga chidamlilikni ta'minlash edi.

Agar tugun yurak urishiga javob berishni to'xtatsa, uni aniqlagan tugun birinchi navbatda diskda ovoz berish jarayonini boshlaydi. Agar etishmayotgan tugun bu erda qayd etilmasa, tugunlardan biri ma'lumotlarni tiklash uchun javobgarlikni o'z zimmasiga oladi:

  • etishmayotgan tugun keshida bo'lgan barcha sahifalarni "muzlatadi";
  • etishmayotgan tugunning jurnallarini o'qiydi (qayta bajarish) va ushbu jurnallarda qayd etilgan o'zgarishlarni qayta qo'llaydi, bir vaqtning o'zida boshqa tugunlarda o'zgartirilayotgan sahifalarning yangiroq versiyalari bor-yo'qligini tekshiradi;
  • kutilayotgan tranzaktsiyalarni orqaga qaytaradi.

Tugunlar o'rtasida almashishni soddalashtirish uchun Oracle xizmat tushunchasiga ega - virtual misol. Namuna bir nechta xizmatlarga xizmat qilishi mumkin va xizmat tugunlar orasida harakatlanishi mumkin. Ma'lumotlar bazasining ma'lum bir qismiga xizmat ko'rsatadigan dastur namunasi (masalan, mijozlar guruhi) bitta xizmat bilan ishlaydi va ma'lumotlar bazasining ushbu qismi uchun mas'ul bo'lgan xizmat tugun ishlamay qolganda boshqa tugunga o'tadi.

Tranzaksiyalar uchun IBM Pure Data Systems

DBMS uchun klaster yechimi 2009 yilda Blue Giant portfelida paydo bo'ldi. Mafkuraviy jihatdan u "muntazam" uskunada qurilgan Parallel Sysplex klasterining vorisi hisoblanadi. 2009 yilda DB2 pureScale dasturiy ta'minot to'plami sifatida chiqarildi va 2012 yilda IBM Tranzaksiyalar uchun Pure Data Systems deb nomlangan qurilmani taklif qildi. Uni Analytics uchun sof ma'lumotlar tizimlari bilan aralashtirib yubormaslik kerak, bu Netezza nomidan boshqa narsa emas.

Bir qarashda pureScale arxitekturasi Oracle RAC ga o‘xshaydi: xuddi shu tarzda bir nechta tugunlar umumiy ma’lumotlarni saqlash tizimiga ulangan va har bir tugun o‘z xotira maydonlari va tranzaksiya jurnallari bilan o‘zining DBMS namunasini boshqaradi. Ammo, Oracle'dan farqli o'laroq, DB2 db2LLM* jarayonlar to'plami bilan ifodalangan maxsus qulflash xizmatiga ega. Klaster konfiguratsiyasida ushbu xizmat Parallel Sysplex-da ulanish ob'ekti (CF) va Pure Data-da PowerHA deb ataladigan alohida tugunga joylashtirilgan.

PowerHA quyidagi xizmatlarni taqdim etadi:

  • qulf menejeri;
  • global bufer kesh;
  • jarayonlararo aloqalar sohasi.

PowerHA-dan ma'lumotlar bazasi tugunlariga va orqaga ma'lumotlarni uzatish uchun masofaviy xotiraga kirishdan foydalaniladi, shuning uchun klaster o'zaro ulanishi RDMA protokolini qo'llab-quvvatlashi kerak. PureScale chekilgan tarmoq orqali ham Infiniband, ham RDMA-dan foydalanishi mumkin.

Korxona uchun tarqatilgan DBMS

Agar tugunga sahifa kerak bo'lsa va bu sahifa keshda bo'lmasa, tugun global keshdagi sahifani so'raydi va agar u mavjud bo'lmasa, uni diskdan o'qiydi. Oracle-dan farqli o'laroq, so'rov qo'shni tugunlarga emas, balki faqat PowerHA-ga yuboriladi.

Agar misol qatorni o'zgartirmoqchi bo'lsa, u uni eksklyuziv rejimda, qator joylashgan sahifani esa umumiy rejimda bloklaydi. Barcha qulflar global qulf menejerida ro'yxatga olingan. Tranzaktsiya tugagach, tugun blokirovka menejeriga xabar yuboradi, u o'zgartirilgan sahifani global keshga ko'chiradi, qulflarni chiqaradi va boshqa tugunlarning keshlarida o'zgartirilgan sahifani bekor qiladi.

Agar o'zgartirilgan qator joylashgan sahifa allaqachon qulflangan bo'lsa, blokirovka menejeri o'zgartirilgan sahifani o'zgartirishni amalga oshirgan tugun xotirasidan o'qiydi, qulfni bo'shatadi, boshqa tugunlarning keshlarida o'zgartirilgan sahifani bekor qiladi va sahifa blokirovkasini talab qilgan tugunga bering.

"Nopok", ya'ni o'zgartirilgan sahifalar diskka oddiy tugundan ham, PowerHA (castout) dan ham yozilishi mumkin.

Agar pureScale tugunlaridan biri ishlamay qolsa, tiklash faqat muvaffaqiyatsizlik vaqtida tugallanmagan tranzaktsiyalar bilan cheklanadi: tugallangan tranzaksiyalarda ushbu tugun tomonidan o'zgartirilgan sahifalar PowerHA-ning global keshida bo'ladi. Tugun klasterdagi serverlardan birida qisqartirilgan konfiguratsiyada qayta ishga tushadi, kutilayotgan tranzaksiyalarni orqaga qaytaradi va qulflarni chiqaradi.

PowerHA ikkita serverda ishlaydi va asosiy tugun o'z holatini sinxron ravishda takrorlaydi. Agar asosiy PowerHA tugunlari ishlamay qolsa, klaster zaxira tugun bilan ishlashda davom etadi.
Albatta, agar siz bitta tugun orqali ma'lumotlar to'plamiga kirsangiz, klasterning umumiy ishlashi yuqori bo'ladi. PureScale hatto ma'lumotlarning ma'lum bir sohasi bitta tugun tomonidan qayta ishlanayotganini sezishi mumkin va keyin ushbu sohaga tegishli barcha qulflar PowerHA bilan bog'lanmasdan tugun tomonidan mahalliy ravishda qayta ishlanadi. Ammo dastur ushbu ma'lumotlarga boshqa tugun orqali kirishga harakat qilishi bilanoq, markazlashtirilgan qulfni qayta ishlash qayta boshlanadi.

IBMning 90% o'qish va 10% yozish ish yuki bo'yicha ichki testlari, bu haqiqiy ishlab chiqarish yuklariga juda o'xshash, 128 tugungacha deyarli chiziqli masshtabni ko'rsatadi. Sinov shartlari, afsuski, oshkor etilmagan.

HPE NonStop SQL

Hewlett-Packard Enterprise portfeli ham o'zining yuqori darajada mavjud platformasiga ega. Bu 1976 yilda Tandem Computers tomonidan bozorga chiqarilgan NonStop platformasi. 1997 yilda kompaniya Compaq tomonidan sotib olindi, u o'z navbatida 2002 yilda Hewlett-Packard bilan birlashdi.

NonStop muhim ilovalarni yaratish uchun ishlatiladi - masalan, HLR yoki bank kartalarini qayta ishlash. Platforma hisoblash tugunlari, ma'lumotlarni saqlash tizimi va aloqa uskunalarini o'z ichiga olgan dasturiy-apparat majmuasi (apparat) shaklida taqdim etiladi. ServerNet tarmog'i (zamonaviy tizimlarda - Infiniband) ham tugunlar o'rtasida almashish uchun, ham ma'lumotlarni saqlash tizimiga kirish uchun xizmat qiladi.

Tizimning dastlabki versiyalarida bir-biri bilan sinxronlashtirilgan xususiy protsessorlardan foydalanilgan: barcha operatsiyalar bir nechta protsessorlar tomonidan sinxron bajarilgan va protsessorlardan biri xatoga yo'l qo'ygan zahoti u o'chirilgan, ikkinchisi esa ishlashda davom etgan. Keyinchalik tizim an'anaviy protsessorlarga (avval MIPS, keyin Itanium va nihoyat x86) o'tdi va sinxronizatsiya uchun boshqa mexanizmlar qo'llanila boshlandi:

  • xabarlar: har bir tizim jarayoni "soya" egizakiga ega, unga faol jarayon vaqti-vaqti bilan uning holati haqida xabarlar yuboradi; agar asosiy jarayon muvaffaqiyatsiz bo'lsa, soya jarayoni oxirgi xabar bilan aniqlangan paytdan boshlab ishlay boshlaydi;
  • ovoz berish: saqlash tizimida bir nechta bir xil kirishlarni qabul qiluvchi va ularni faqat kirishlar mos kelsa, bajaradigan maxsus apparat komponenti mavjud; Jismoniy sinxronizatsiya o'rniga protsessorlar asinxron ishlaydi va ularning ish natijalari faqat kiritish-chiqarish momentlarida taqqoslanadi.

1987 yildan boshlab NonStop platformasida relyatsion DBMS ishlamoqda - avval SQL/MP, keyinroq esa SQL/MX.

Butun ma'lumotlar bazasi qismlarga bo'lingan va har bir qism o'zining Ma'lumotlarga kirish menejeri (DAM) jarayoni uchun javobgardir. U ma'lumotlarni yozib olish, keshlash va qulflash mexanizmlarini taqdim etadi. Ma'lumotlarni qayta ishlash tegishli ma'lumotlar menejerlari bilan bir xil tugunlarda ishlaydigan Ijrochi server jarayonlari tomonidan amalga oshiriladi. SQL/MX rejalashtiruvchisi vazifalarni bajaruvchilar orasida taqsimlaydi va natijalarni umumlashtiradi. Kelishilgan o'zgartirishlar kiritish zarur bo'lganda, TMF (Transaction Management Facility) kutubxonasi tomonidan taqdim etilgan ikki bosqichli majburiyat protokoli qo'llaniladi.

Korxona uchun tarqatilgan DBMS

NonStop SQL uzoq analitik so'rovlar tranzaksiya bajarilishiga xalaqit bermasligi uchun jarayonlarga ustuvorlik berishi mumkin. Biroq, uning maqsadi tahliliy emas, balki qisqa muddatli operatsiyalarni qayta ishlashdir. Ishlab chiquvchi NonStop klasterining beshta "to'qqizlik" darajasida mavjudligini kafolatlaydi, ya'ni ishlamay qolish yiliga atigi 5 minut.

SAP XANA

HANA DBMS (1.0) ning birinchi barqaror versiyasi 2010 yil noyabr oyida bo'lib o'tdi va SAP ERP paketi 2013 yil may oyida HANA-ga o'tdi. Platforma sotib olingan texnologiyalarga asoslangan: TREX Search Engine (ustunli xotirada qidirish), P*TIME DBMS va MAX DB.

"HANA" so'zining o'zi qisqartma bo'lib, yuqori unumdor ANAlitik asbobdir. Ushbu DBMS har qanday x86 serverlarida ishlashi mumkin bo'lgan kod shaklida taqdim etiladi, ammo sanoat o'rnatishga faqat sertifikatlangan uskunalarda ruxsat beriladi. Yechimlar HP, Lenovo, Cisco, Dell, Fujitsu, Hitachi, NEC. Ba'zi Lenovo konfiguratsiyalari hatto SANsiz ishlashga imkon beradi - umumiy saqlash tizimining rolini mahalliy disklardagi GPFS klasteri bajaradi.

Yuqorida sanab o'tilgan platformalardan farqli o'laroq, HANA - bu xotiradagi ma'lumotlar bazasi, ya'ni asosiy ma'lumotlar tasviri RAMda saqlanadi va falokat yuz berganda tiklash uchun diskka faqat jurnallar va davriy suratlar yoziladi.

Korxona uchun tarqatilgan DBMS

Har bir HANA klaster tuguni ma'lumotlarning o'ziga xos qismi uchun javobgardir va ma'lumotlar xaritasi koordinator tugunida joylashgan maxsus komponent - Name Serverda saqlanadi. Ma'lumotlar tugunlar o'rtasida takrorlanmaydi. Qulflash ma'lumotlari har bir tugunda ham saqlanadi, ammo tizimda global blokirovka detektori mavjud.

HANA mijozi klasterga ulanganda, u o'z topologiyasini yuklab oladi va keyin kerakli ma'lumotlarga qarab istalgan tugunga to'g'ridan-to'g'ri kirishi mumkin. Agar tranzaktsiya bitta tugunning ma'lumotlariga ta'sir qilsa, u holda u ushbu tugun tomonidan mahalliy ravishda bajarilishi mumkin, lekin agar bir nechta tugunlarning ma'lumotlari o'zgarsa, boshlang'ich tugun koordinator tuguniga murojaat qiladi, u tarqatilgan tranzaktsiyani ochadi va muvofiqlashtiradi va uni amalga oshiradi. optimallashtirilgan ikki fazali majburiyat protokoli.

Koordinator tuguni takrorlanadi, shuning uchun agar koordinator muvaffaqiyatsiz bo'lsa, zaxira tugun darhol o'z zimmasiga oladi. Ammo agar ma'lumotlarga ega tugun muvaffaqiyatsiz bo'lsa, uning ma'lumotlariga kirishning yagona yo'li tugunni qayta ishga tushirishdir. Qoida tariqasida, HANA klasterlari yo'qolgan tugunni iloji boricha tezroq qayta ishga tushirish uchun zaxira serverga ega.

Manba: www.habr.com

a Izoh qo'shish