Bosh sahifa Wiki Transaction Log

Transaction Log

Transaction Logdatabase o‘zgarishlarini tiklash va durability uchun ketma-ket qayd etadigan doimiy jurnal. U database consistency, recovery, locking, indexing yoki storage architecture doirasidagi aniq vazifani ifodalaydi. Kafolatlar DBMS implementatsiyasi, schema va workloadga bog‘liq; termin nomi correctness yoki tezlikni avtomatik ta’minlamaydi.

Asosiy tuzilma

Write-ahead loggingda o‘zgarishga oid log record data page diskka yozilishidan oldin stable storagega tushadi. Log sequence number tartibni belgilaydi; commit record transactionning durable yakunini bildiradi.

Transaction Log alohida constraint, fayl yoki mexanizmga o‘xshasa ham, transaction boundary, storage layout va query execution bilan birga ishlaydi. Authoritative state, ownership va lifecycle chegaralari hujjatlashtirilmasa, recovery yoki migrationda natija noaniq bo‘ladi.

Jarayon bosqichlari

Application audit log biznes hodisasini tushuntiradi; transaction log DBMS recovery mexanizmi uchun physical yoki logical o‘zgarishlarni saqlaydi. Binary log replication uchun ishlatilishi mumkin, lekin har mahsulotda format va vazifa bir xil emas.

Transaction Log schema va protocol versiyasi bilan boshqariladi. Rolling upgrade vaqtida eski va yangi komponent identifier, timestamp, payload hamda errorni bir xil talqin qilishi kerak. Compatibility davri va eski variantni olib tashlash sharti oldindan belgilanadi. Transaction Log uchun mas’ul komponent health signalidan tashqari, o‘zi himoya qiladigan invariant buzilmaganini ham davriy ravishda tekshiradi.

Transaction Log boshqaruvida control plane va data plane farqlanadi. Configuration yoki assignment yangilangani haqidagi muvaffaqiyat javobi barcha worker yangi qoidani qo‘llay boshlaganini anglatmasligi mumkin. Propagation kechikishi o‘lchanadi, ikki versiya birga ishlaydigan davrda esa har ikkalasi tushunadigan format va xavfsiz fallback saqlanadi.

Ishonchlilik

Log disk to‘lishi write’larni to‘xtatishi mumkin. Truncation checkpoint, backup va replica pozitsiyasiga bog‘liq; jurnalni oddiy text deb tahrirlash yoki maxfiy payloadni nazoratsiz eksport qilish xavflidir.

Transaction Log ko‘p tenantli muhitda isolation talab qiladi. Bitta tenantning katta querysi, sekin subscriptioni yoki ko‘p route’i umumiy memory va worker poolni egallamasligi uchun limit, fairness va backpressure ishlatiladi.

Correctness, concurrency, latency, storage xarajati va recovery birga baholanadi. Tez lookup, kam lock yoki kichik fayl qulaylik bersa ham, write amplification, maintenance yoki tiklashga xarajat ko‘chirishi mumkin. Shu sabab Transaction Log faqat nominal demo bilan baholanmaydi.

Kuzatuv

Transaction Log benchmarki real key distribution, schema va concurrency’ni takrorlaydi. Uniform synthetic data hot partition, skew, lock conflict yoki yomon query planni yashirishi mumkin; warm-up va failure recovery natijalari alohida qayd etiladi.

Transaction Log fault-injection sinovida delay, duplicate, process restart, disk full va partial network failure bittadan kiritiladi. Har tajriba boshlang‘ich state, software versiyasi va kutilgan invariant bilan qayta ishlab bo‘ladigan shaklda saqlanadi.

Transaction Log samaradorligi percentile bo‘yicha baholanadi. O‘rtacha latency kam uchraydigan, ammo muhim lock wait, compaction pause yoki broker failoverni yashiradi; p95 va p99 qiymatlari error hamda queue metrikalari bilan birga tahlil qilinadi.

Transaction Log bo‘yicha incidentdan keyin faqat kod xatosi emas, aniqlash va cheklash nega kechikkani ham tahlil qilinadi. Metrika, alert, runbook va ownershipdagi bo‘shliq alohida action itemga aylanadi. Tuzatish fault-injection bilan qayta sinovdan o‘tmaguncha muammo yopilgan deb hisoblanmaydi.

Transaction Log o‘zgartirilgach normal oqim bilan birga concurrent write, restart, partial failure, skewed data va katta hajm tekshiriladi. Qabul qilingan cheklovlar hujjatlashtiriladi va boshqa DBMSga ko‘r-ko‘rona ko‘chirilmaydi.

Bog‘liq tushunchalar

write-ahead logging, recovery, log sequence number, commit, redo, undo