4.1 Brewer qoidalari
Erik Brewer hech qachon ma'lumotlar bazalari bo'yicha ekspert bo'lmagan. U taqsimlangan tizimlarni o'rgangan va 2000 yilda "Taqsimlangan hisoblash prinsiplari" nomli taqdimot qilib, CAP "teoremasini" namoyish qilgan. 2010 yilda u yana shu konferensiyaga chaqirilib, CAP "teoremasi" inobatga olingan tizimlar misolini keltirdi. Taqsimlangan tizimlarda, ma'lumotlar bazalarida ishlatiladigan terminlardan farq qiluvchi terminlar ishlatiladi.
Aniqroq qilib aytganda, darhol moslik deganda shuni tushunamizki, foydalanuvchi ma'lumotlar yangilanishi muvaffaqiyatli tugallanganligi haqida xabar olgandan so'ng, ushbu operatsiyaning natijasi darhol hamma uchun ko'rinadi.
Oxir-oqibat moslik deganda, uzoq vaqt yangilanmasdan turib, barcha ma'lumotlar o'zgarishlari tizim bo'ylab tarqaladi va barcha nusxalar bir xil holatda bo'ladi.
Moslik tushunchasini tahlil qilib, Brewer "teoremasi" juda oddiy va tushunarli ekanligi haqida xulosa qilishimiz mumkin: taqsimlangan tizimda taqsimlangan ma'lumotlar bilan bir vaqtda faqat uch jihatdan ikkitasi - moslik, mavjudlik va tarmoq uzilishlariga chidamliligiga erishish mumkin. Brewer ACID xususiyatlari to'plamini BASE (Basically Available, Soft-state, Eventual consistency - ko'p hollarda mavjudlik; barqaror bo'lmagan holat; kelajakda moslik) to'plamiga qarshi chiqadi.
Biroq, bu qarama-qarshilik unchalik to'g'ri emas, chunki birinchisi tranzaksiyalar ishlatilishining mantiqiy jihatlarga aloqador, ikkinchisi esa taqsimlangan tizimlarning fizik xususiyatlariga bog'liq. Shunday qilib, bunday tizimlar bilan ishlashda ikkita xil ish rejimini qo'llash kerak bo'ladi va ular bir-biriga zid talablar qo'yishi mumkin.
4.2 "Teorema"ning isboti
Ko'pchilik Brewer "teorema"si rasmiy isbotlangan deb hisoblaydi. Haqiqatan ham, Seth Gilbert va Nancy Lynch maqolasida (deyarli) rasmiy ta'riflar kiritiladi, ular doirasida "teorema" haqiqatan ham teoremaga aylanadi va isbotlanadi. Biroq, Brewer "teorema"si bo'yicha taqsimlangan tizimning uchta xususiyati qanday aniqlanganini ko'rib chiqaylik, ulardan faqat ikkisiga bir vaqtda erishish mumkin.
Moslik deb atomar yoki linearlashtirilgan moslik (atomic, or linearizable consistency) tushuniladi, bu tizimning xususiyati, bunda barcha individual ma'lumotlar ob'ektlari atomardir (linearlashtiriladir). Shu o'rinda, atomar ob'ekt - bu bir nechta operatsiyalarga ega ob'ekt bo'lib, ularning chaqirishi va javob ma'lumotlarini olish go'yoki darhol ro'y beradi, ya'ni ob'ekt keyingi operatsiya chaqiruvini oldingisi yakunlanganidan keyin qabul qiladi. Shu bilan birga, operatsiyalarni qabul qilish tartibi shunday bo'lishi kerakki, agar o'qish turi operatsiyasi ma'lum bir yozish turi operatsiyasi bajarilgandan keyin amalga oshirilsa, o'qish operatsiyasi ushbu yoki boshqa keyingi yozish operatsiyasi orqali yozilgan qiymatni qaytarmog'i kerak.
Taqsimlangan tizim doimo mavjud bo'lsa, barcha so'rovlar uchun javob olinishi kerak. Tarmoq bo'linishiga chidamlilik tizimning bir tugundan boshqasiga jo'natilgan soniyalar miqdorining yo'qotilishi holatida ham yashovchanlikni saqlashni o'z ichiga oladi.
Ushbu ta'riflarga asoslanib, Gilbert va Lynch quyidagi teoremaga keltiradi (tarmoqning asinxron modelida soatlar yo'q va tugunlar faqat olingan xabarlar va mahalliy hisob-kitoblar asosida qaror qabul qilishi kerak):
Asinxron tarmoq modelida o'qish va yozish operatsiyalari bilan ma'lumotlar ob'ektini amalga oshirish mumkin emas, bu barcha amalga oshiriladigan bajarilishlar uchun mavjudlik va atomar moslik xususiyatlarini kafolatlaydi (ular orasida xabarlar yo'qolishi holatlari
Ushbu teorema, "teskaridan" usuli bilan oddiy rasmiy tarzda isbotlanadi. Maqolada quyidagi xulosaga keladi:
Asinxron tarmoq modelida barcha bajarilishlar uchun mavjudlik va xabarlar yo'qolmagan bajarilishlar uchun atomar moslik xususiyatlarini kafolatlaydigan ma'lumotlar ob'ektini amalga oshirish mumkin emas.
Bundan tashqari, to'liq sinxron tarmoq modeli uchun asosiy teoremaning haqiqiyligi, har bir tugunda soatlar bo'lib, ulardan ko'rsatilgan vaqt bir xil tezlikda ortadi, ammo sinxronizatsiya qilingan emas, ya'ni turli vaqtda ko'rsatilishi mumkin bo'lgan vaqt ko'rsatilgan. Ushbu hol uchun o'xshash xulosa chiqarilmaydi, va demak, qisman sinxron tarmoqlar uchun "yaxshi" xususiyatlarga ega bo'lgan taqsimlangan tizimlar tashkil qilish imkoniyatlari ko'proq.
Ha, ayrim ma'noda (Brewer nazarda tutgan ma'noda bo'lmasligi mumkin) Gilbert va Lynch bitta taqsimlangan tizimda atomar moslik, mavjudlik va tarmoq bo'linishiga chidamliligini bir vaqtda ta'minlashning imkonsizligini isbotladi. Ammo bu ma'lumotlar bazalaridagi tranzaksiyalarga umuman qanday aloqasi bor va, xususan, ACID-tranzaksiyalarga qanday aloqasi bor?
4.3 ACID-tranzaksiyalar
Bu haqda "CAP teoremasi" munozarasiga bag'ishlangan o'z eslatmasida Julian Browne shunday yozadi:
O'z isbotlarida Gilbert va Lynch moslik terminining o'rniga atomarlik terminini ishlatishadi, bu texnik jihatdan ma'noliroq, chunki qat'iy aytganda, ACIDdagi moslik ma'lumotlar bazasi tranzaksiyalarining ideal xususiyatlariga tegishli va ba'zi oldindan belgilangan cheklovlarni buzmasdan uzoq muddatli saqlanadigan bo'lmasligini anglatadi.
Agar taqsimlangan tizimlarning oldindan belgilangan cheklovi bir xil ma'lumot elementi uchun bir nechta turli qiymatlar borligini taqiqlashtirish deb hisoblansa, menimcha, bu moslik abstraksiyasidagi kamchilikni ahamiyatsiz deb hisoblash mumkin (bundan tashqari, agar Brewer atomarlik terminini ishlatganida, u AAP teoremaga ega bo'lar edi, bu nomni talaffuz qilish juda noqulay bo'lardi).
Bu jiddiy emas, lekin halol yozilgan. Va, aslida, atomar moslik talabi ACID ma'nosidagi tranzaksiya mosligi talablari bilan aralashtirilmasligi kerak. Ma'lumotlar bazasi yaxlitligi cheklovlari - bu mantiqiy, xohlasangiz, biznes-talablar. Ular amaliy soha mantiqidan kelib chiqadi. Atomar moslik talabi butunlay boshqacha turdagi, ya'ni, bu an'anaviy ravishda ma'lumotlar bazalari sohasida jismoniy moslik deb ataladigan kategoriya bo'lib, masalan, indeksni o'zgartirishning har qanday operatsiyasini bajarishda barcha tegishli B+-daraxt bloki to'g'ri qiymatlar saqlashi va to'g'ri havolalar bilan bog'lanishi kerak.
Mana, jiddiy yozilgan ma'lumotlar bazalari jamiyatining vakilatlari Daniel Abadi va Alexander Thomson o'z eslatmalarida shunday yozadilar:
... o'lchovlanadigan tranzaksiyalar tizimlarida mavjudlik talabi tobora kritiklikka aylanmoqda va odatda bu replikatsiya va bitta tugunning muvaffaqiyatsizligi holatida avtomatik tarzda so'rovlarni qayta yo'naltirish orqali qondiriladi. Shuning uchun ilovalar ishlab chiquvchilari ACID tizimlarining moslik (consistency) kafolatlari (dastlab foydalanuvchi tomonidan belgilangan invariantlarni mahalliy qo'llab-quvvatlashdan iborat) qat'iy moslikni ta'minlashga yo'naltirilishini kutishadi (ya'ni, bir vaqtning o'zida bir xil ma'lumotlarning barcha nusxalari asl nusxalar bo'ladi, ya'ni bu taqdirda moslik CAP/PACELC ma'nosida nazarda tutiladi).
Qisqa aytganda, Brewer tomonidan moslik hech qanday aloqasi bo'lmagan lekin aynan yuqori darajali mavjudlikni replikatsiya orqali ta'minlashga yo'naltirilgan tizimlarda nusxalarni qat'iy moslikda saqlash maqsadga muvofiq bo'ladi. Bu ACID xususiyati emas, balki keng ko'lamli massivli-paralel DBMSlarning texnik (fizik) xususiyati bo'lib, ilovalarni ishlab chiqishda yengillik kiritadi.
Michael Stonebraker sifatida, zamonaviy sifatli DBMS qurilishi kafolati sifatli texnik kompromisslarning to'g'ri tanlanishi hisoblanadi. Aniq muhandislik yechimini tanlashda, kelajakdagi foydalanuvchi talablarini, turli xil nosozlik holatlarining ehtimollarini va boshqalarni inobatga olish kerak, umumiy nazariy ko'rsatmalarga (shu jumladan, "CAP teoremasi"ga) dogmatik tarzda rioya qilish emas.
Stonebraker hisobiga ko'ra, tranzaksiyalar massivli-paralel DBMS sohasida Brewer mosligidan voz kechib, tarmoq bo'linishiga chidamlilik va yuqori mavjudlikni qo'llab-quvvatlagan holda bu yomon kompromissdir, chunki (a) nusxalarni mosligi tizimning juda foydali xususiyatidir; (b) tranzaksiyalar massivli-paralel DBMS juda katta tugunlar soniga ega bo'lgan klasterlarga ehtiyoj sezmaydilar, shuning uchun tarmoq bo'linish holatlari kam uchraydi; (c) tizim tarmoq bo'linishidan emas, masalan, muntazam ravishda yuzaga keladigan dasturiy xatolar orqali mavjud bo'lmasligi mumkin.
Shunday qilib, NoSQL (NoACIDni o'qish) jabhasining yuqori faolligi Brewer "teoremasiga" emas, massivli-paralel tranzaksional DBMSlarni yaratishni nazariy imkonsizligiga emas, shuning uchun ham ACID-tranzaksiyalarni qo'llab-quvvatlamaydigan, lekin nusxalarni moslikda saqlamaydigan soddalashgan tizimlar tezkorlik bilan va oson yaratiladi. Ularning soddalashgan tashkiloti tufayli ular ma'lumotlarni juda tez qayta ishlash qobiliyatiga ega bo'ladilar va ayrim ilovalar uchun bu ma'lumotlar bazasi texnologiyalariga xos barcha qulayliklardan muhimroq bo'lib chiqadi.
Ko'ramiz, ma'lumotlar bazasi jamoatchiligi bu chaqiriqqa qanday javob beradi.
GO TO FULL VERSION