Distributed Transaction — bitta mantiqiy operatsiya doirasida bir nechta mustaqil service, database yoki resource manager state’ini muvofiqlashtiradigan tranzaksiya. U taqsimlangan data, tranzaksiya, consensus, partitioning yoki cache tizimlaridagi muayyan vazifani ifodalaydi. Aniq kafolatlar protocol va platforma hujjatiga bog‘liq; o‘xshash nomlangan implementatsiyalar bir xil failure semantikasini bermasligi mumkin.
Model
Klassik model global atomic commit uchun coordinator va participantlardan foydalanadi. Zamonaviy mikroxizmatlarda local transactionlar, eventlar va compensationdan iborat saga ham qo‘llanadi. Tanlov business invariant va failure semantikasiga bog‘liq.
Distributed Transaction alohida feature emas, client, tarmoq, persistent storage va boshqaruv qoidalari bilan birga ishlaydi. Bir qatlamdagi muvaffaqiyat keyingi qatlamda effect commit bo‘lganini avtomatik bildirmaydi. Shu sabab request qabul qilinishi, durable yozuv va visible natija nuqtalari alohida qayd etiladi.
Ma’lumot oqimi
Bitta database transactionidan farqli ravishda network timeout noaniq natija yaratadi: participant commit qilgan, lekin javob yo‘qolgan bo‘lishi mumkin. Global lock va coordinator dependency latency hamda availabilityga ta’sir qiladi.
Distributed Transaction implementatsiyasida identity va version yashirin faraz emas. Message ID, transaction ID, epoch yoki schema version scope bilan birga saqlanadi. Node qayta ishga tushganda eski identityni qayta ishlatish delayed xabarni yangi sessionga aralashtirishi mumkin.
Nosozlik xulqi
Transaction ID, durable log, idempotency va recovery jarayoni zarur. Partial failure laboratoriyada kiritilib, clientga qaytariladigan holat va operator recovery vakolati oldindan belgilanadi.
Distributed Transactionga oid data retention correctnessga ta’sir qiladi. Deduplication ID, tombstone, log yoki version metadata juda erta o‘chirilsa eski xabar qayta tirilishi mumkin; cheksiz saqlansa storage ortadi. Tozalash xavfsiz nuqtasi membership va replication progressdan kelib chiqadi.
Distributed Transaction dizaynida correctness, latency va availability o‘rtasidagi muvozanat workload bilan birga tanlanadi. Qat’iyroq guarantee ko‘proq coordination talab qilishi, zaifroq model esa merge yoki compensation vazifasini applicationga yuklashi mumkin. Nominal throughput bunday semantik xarajatni to‘liq ko‘rsatmaydi.
Sinov mezonlari
Distributed Transaction recovery runbooki muntazam mashq qilinadi. Backup yoki replica borligi restore to‘g‘ri ishlashini kafolatlamaydi. Qaytgan node trafficga qo‘shilishidan oldin version, log boundary va consistency tekshiruvidan o‘tadi, vaqtinchalik diagnostic credentiallar esa yakunda olib tashlanadi.
Distributed Transaction bilan bog‘liq operatsion qaror ownershipni ham belgilaydi. Application jamoasi business key va idempotency semantikasini, platforma jamoasi broker, cache yoki storage limitini boshqarishi mumkin. Incident paytida qaysi metrika qayerdan olinishi runbookda yoziladi. Bir xil “timeout” atamasi client deadline, queue kutishi yoki backend lockini anglatishi mumkin; ular alohida nomlanadi. Shu aniqlik muammoni noto‘g‘ri qatlamda tuzatish va foydali retrylarni bloklash xavfini kamaytiradi.
Distributed Transaction holatini kuzatish uchun configuration version, key yoki transaction scope, resource counter, error log va zarur trace birlashtiriladi. Natija qayta tekshirilishi uchun software versiyasi, test topologiyasi, kiritilgan fault va kutilgan invariant saqlanadi. Baholash bitta log satriga emas, o‘zaro mos state hamda o‘lchovlarga asoslanadi.
Distributed Transaction bo‘yicha qabul qilingan cheklovlar hujjatlashtiriladi va boshqa workloadga avtomatik ko‘chirilmaydi. O‘zgarishdan keyin muvaffaqiyatli oqim bilan birga timeout, duplicate, restart, stale state va partial failure javobi ham tasdiqlanadi.
Bog‘liq tushunchalar
atomic transaction, two-phase commit, saga, resource manager, coordinator, compensation