O'zbek

Tarqatilgan tranzaksiyalar va Ikki Fazali Tasdiqlash (2PC) protokolini chuqur o'rganish. Uning arxitekturasi, afzalliklari, kamchiliklari va global tizimlardagi amaliy qo'llanilishi haqida bilib oling.

Tarqatilgan Tranzaksiyalar: Ikki Fazali Tasdiqlashga (2PC) Chuqur Sho'ng'ish

Bugungi kunda tobora o'zaro bog'langan dunyoda ilovalarga ko'pincha bir nechta mustaqil tizimlarda saqlanadigan ma'lumotlar bilan o'zaro aloqada bo'lish kerak. Bu tarqatilgan tranzaksiyalar tushunchasiga olib keladi, bu erda bitta mantiqiy operatsiya bir nechta ma'lumotlar bazalari yoki xizmatlarda o'zgarishlar kiritishni talab qiladi. Bunday stsenariylarda ma'lumotlar izchilligini ta'minlash juda muhim va bunga erishish uchun eng mashhur protokollardan biri Ikki Fazali Tasdiqlash (2PC) hisoblanadi.

Tarqatilgan Tranzaksiya nima?

Tarqatilgan tranzaksiya - bu bir nechta geografik jihatdan tarqalgan tizimlarda bajariladigan, bitta atom birlik sifatida ko'rib chiqiladigan operatsiyalar seriyasi. Bu shuni anglatadiki, tranzaksiya ichidagi barcha operatsiyalar muvaffaqiyatli bo'lishi (tasdiqlanishi) yoki hech biri bo'lmasligi kerak (bekor qilinishi). Ushbu "hammasi yoki hech narsa" printsipi butun tarqatilgan tizim bo'ylab ma'lumotlar yaxlitligini ta'minlaydi.

Tokiodagi mijoz bir aviakompaniya tizimida Tokiodan Londonga reysga buyurtma bergan va bir vaqtning o'zida Londonda boshqa mehmonxona bron qilish tizimida mehmonxona xonasini bron qilgan stsenariyni ko'rib chiqing. Ushbu ikki operatsiya (reysga buyurtma berish va mehmonxona xonasini bron qilish) ideal holda bitta tranzaksiya sifatida ko'rib chiqilishi kerak. Agar reysga buyurtma berish muvaffaqiyatli bo'lsa, lekin mehmonxona xonasini bron qilish muvaffaqiyatsiz bo'lsa, tizim ideal holda mijozni Londonda turar joyisiz qoldirmaslik uchun reysga buyurtmani bekor qilishi kerak. Ushbu muvofiqlashtirilgan xatti-harakat tarqatilgan tranzaksiyaning mohiyatidir.

Ikki Fazali Tasdiqlash (2PC) Protokoli bilan tanishing

Ikki Fazali Tasdiqlash (2PC) protokoli - bu bir nechta resurs menejerlari (masalan, ma'lumotlar bazalari) bo'ylab atomlikni ta'minlaydigan tarqatilgan algoritm. Unda markaziy muvofiqlashtiruvchi va har biri ma'lum bir resursni boshqarish uchun mas'ul bo'lgan bir nechta ishtirokchilar ishtirok etadi. Protokol ikki xil bosqichda ishlaydi:

1-bosqich: Tayyorgarlik bosqichi

Ushbu bosqichda muvofiqlashtiruvchi tranzaksiyani boshlaydi va har bir ishtirokchidan tranzaksiyani tasdiqlashga yoki bekor qilishga tayyorlanishni so'raydi. Qo'shilgan qadamlar quyidagilar:

  1. Muvofiqlashtiruvchi Tayyorlash So'rovini yuboradi: Muvofiqlashtiruvchi barcha ishtirokchilarga "tayyorlash" xabarini yuboradi. Ushbu xabar muvofiqlashtiruvchi tranzaksiyani tasdiqlashga tayyor ekanligini bildiradi va har bir ishtirokchidan buni qilishga tayyorlanishni so'raydi.
  2. Ishtirokchilar Tayyorlanadi va Javob Beradi: Har bir ishtirokchi tayyorlash so'rovini oladi va quyidagi harakatlarni bajaradi:
    • U tranzaksiyani tasdiqlashi yoki bekor qilishi mumkinligini ta'minlash uchun zarur choralarni ko'radi (masalan, qayta bajarish/bekor qilish jurnallarini yozish).
    • U muvofiqlashtiruvchiga "tasdiqlashga tayyor" ("ha" ovozi) yoki "tasdiqlay olmaydi" ("yo'q" ovozi) ekanligini ko'rsatuvchi "ovoz"ni yuboradi. "Yo'q" ovozi resurs cheklovlari, ma'lumotlarni tekshirishdagi nosozliklar yoki boshqa xatoliklar tufayli bo'lishi mumkin.

Ishtirokchilar "ha" ovoz berganidan so'ng, o'zgarishlarni tasdiqlash yoki bekor qilishni kafolatlashlari juda muhimdir. Bu odatda o'zgarishlarni barqaror xotirada (masalan, diskda) saqlashni o'z ichiga oladi.

2-bosqich: Tasdiqlash yoki Bekor Qilish bosqichi

Ushbu bosqich muvofiqlashtiruvchi tomonidan tayyorgarlik bosqichida ishtirokchilardan olingan ovozlarga asoslanib boshlanadi. Ikki xil natija bo'lishi mumkin:

1-natija: Tasdiqlash

Agar muvofiqlashtiruvchi barcha ishtirokchilardan "ha" ovozlarini olsa, u tranzaksiyani tasdiqlashni davom ettiradi.

  1. Muvofiqlashtiruvchi Tasdiqlash So'rovini yuboradi: Muvofiqlashtiruvchi barcha ishtirokchilarga "tasdiqlash" xabarini yuboradi.
  2. Ishtirokchilar Tasdiqlaydi: Har bir ishtirokchi tasdiqlash so'rovini oladi va tranzaksiya bilan bog'liq o'zgarishlarni o'z resursiga doimiy ravishda qo'llaydi.
  3. Ishtirokchilar Tasdiqlaydi: Har bir ishtirokchi tasdiqlash operatsiyasi muvaffaqiyatli bo'lganligini tasdiqlash uchun muvofiqlashtiruvchiga tasdiqlash xabarini yuboradi.
  4. Muvofiqlashtiruvchi Yakunlaydi: Barcha ishtirokchilardan tasdiqlashlarni olgandan so'ng, muvofiqlashtiruvchi tranzaksiyani yakunlangan deb belgilaydi.

2-natija: Bekor Qilish

Agar muvofiqlashtiruvchi har qanday ishtirokchidan bitta "yo'q" ovozini olsa yoki ishtirokchidan javob kutish uchun vaqt tugasa, u tranzaksiyani bekor qilishga qaror qiladi.

  1. Muvofiqlashtiruvchi Bekor Qilish So'rovini yuboradi: Muvofiqlashtiruvchi barcha ishtirokchilarga "bekor qilish" xabarini yuboradi.
  2. Ishtirokchilar Bekor Qiladi: Har bir ishtirokchi bekor qilish so'rovini oladi va tranzaksiyaga tayyorgarlik ko'rishda qilingan barcha o'zgarishlarni bekor qiladi.
  3. Ishtirokchilar Tasdiqlaydi: Har bir ishtirokchi bekor qilish operatsiyasi muvaffaqiyatli bo'lganligini tasdiqlash uchun muvofiqlashtiruvchiga tasdiqlash xabarini yuboradi.
  4. Muvofiqlashtiruvchi Yakunlaydi: Barcha ishtirokchilardan tasdiqlashlarni olgandan so'ng, muvofiqlashtiruvchi tranzaksiyani yakunlangan deb belgilaydi.

Misol: E-tijorat Buyurtmasini Qayta Ishlash

E-tijorat tizimini ko'rib chiqing, bu erda buyurtma inventarizatsiya ma'lumotlar bazasini yangilashni va to'lovni alohida to'lov shlyuzi orqali qayta ishlashni o'z ichiga oladi. Bular tarqatilgan tranzaksiyada ishtirok etishi kerak bo'lgan ikkita alohida tizim.

  1. Tayyorgarlik bosqichi:
    • E-tijorat tizimi (muvofiqlashtiruvchi) inventarizatsiya ma'lumotlar bazasiga va to'lov shlyuziga tayyorlash so'rovini yuboradi.
    • Inventarizatsiya ma'lumotlar bazasi so'ralgan mahsulotlar zaxirada ekanligini tekshiradi va ularni zahiralaydi. Keyin u muvaffaqiyatli bo'lsa "ha" ovozini beradi yoki mahsulotlar zaxiradan tugagan bo'lsa "yo'q" ovozini beradi.
    • To'lov shlyuzi to'lovni oldindan avtorizatsiya qiladi. Keyin u muvaffaqiyatli bo'lsa "ha" ovozini beradi yoki avtorizatsiya muvaffaqiyatsiz bo'lsa "yo'q" ovozini beradi (masalan, mablag'lar etarli emas).
  2. Tasdiqlash/Bekor Qilish bosqichi:
    • Tasdiqlash stsenariysi: Agar inventarizatsiya ma'lumotlar bazasi ham, to'lov shlyuzi ham "ha" ovozini bersa, muvofiqlashtiruvchi ikkalasiga ham tasdiqlash so'rovini yuboradi. Inventarizatsiya ma'lumotlar bazasi zaxira sonini doimiy ravishda kamaytiradi va to'lov shlyuzi to'lovni oladi.
    • Bekor qilish stsenariysi: Agar inventarizatsiya ma'lumotlar bazasi yoki to'lov shlyuzi "yo'q" ovozini bersa, muvofiqlashtiruvchi ikkalasiga ham bekor qilish so'rovini yuboradi. Inventarizatsiya ma'lumotlar bazasi zahiralangan mahsulotlarni chiqaradi va to'lov shlyuzi oldindan avtorizatsiyani bekor qiladi.

Ikki Fazali Tasdiqlashning Afzalliklari

Ikki Fazali Tasdiqlashning Kamchiliklari

Ikki Fazali Tasdiqlashga Alternativlar

2PC ning cheklovlari tufayli tarqatilgan tranzaksiyalarni boshqarish uchun bir nechta muqobil yondashuvlar paydo bo'ldi. Bularga quyidagilar kiradi:

Ikki Fazali Tasdiqlashning Amaliy Qo'llanilishi

Cheklovlariga qaramay, 2PC hali ham kuchli izchillik muhim talab bo'lgan turli stsenariylarda qo'llaniladi. Ba'zi misollar quyidagilarni o'z ichiga oladi:

Ikki Fazali Tasdiqlashni Amalga Oshirish

2PC-ni amalga oshirish turli omillarni diqqat bilan ko'rib chiqishni talab qiladi, jumladan:

Tarqatilgan Tranzaksiyalar uchun Global Mulohazalar

Global muhitda tarqatilgan tranzaksiyalarni loyihalash va amalga oshirishda bir nechta qo'shimcha omillarni hisobga olish kerak:

Xulosa

Tarqatilgan tranzaksiyalar va Ikki Fazali Tasdiqlash (2PC) protokoli mustahkam va izchil tarqatilgan tizimlarni qurish uchun muhim tushunchalardir. 2PC atomlikni ta'minlash uchun oddiy va keng tarqalgan echimni taqdim etsa-da, uning cheklovlari, ayniqsa blokirovka va nosozlikning yagona nuqtasi bilan bog'liq, Saga va yakuniy izchillik kabi muqobil yondashuvlarni ehtiyotkorlik bilan ko'rib chiqishni talab qiladi. Kuchli izchillik, mavjudlik va ishlash o'rtasidagi kelishuvlarni tushunish sizning maxsus ilova ehtiyojlaringiz uchun to'g'ri yondashuvni tanlash uchun juda muhimdir. Bundan tashqari, global muhitda ishlaganda tarmoq kechikishi, vaqt zonalari, ma'lumotlarni mahalliy qilish va me'yoriy hujjatlarga muvofiqlik bilan bog'liq qo'shimcha mulohazalarni hal qilish kerak, bu tarqatilgan tranzaksiyalarning muvaffaqiyatini ta'minlash uchun.