Key-Range Lock — indexdagi mavjud keylar bilan birga ular orasidagi qiymat oralig‘ini ham himoya qiladigan lock. 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
Range predicate o‘qilganda DBMS tegishli index intervaliga lock qo‘yib, boshqa transactionning shu intervalga yangi row kiritishini cheklashi mumkin. Bu serializable executionda phantom row paydo bo‘lishini oldini oladi.
Key-Range Lock 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
Row lock mavjud recordni himoya qiladi; key-range lock mavjud bo‘lmagan, ammo predicate oralig‘iga tushadigan kelajak keylarni ham qamrab oladi. Table lock esa butun tablega kengroq granularityda ta’sir qiladi.
Key-Range Lock 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. Key-Range Lock uchun mas’ul komponent health signalidan tashqari, o‘zi himoya qiladigan invariant buzilmaganini ham davriy ravishda tekshiradi.
Key-Range Lock 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
Mos index bo‘lmasa lock oralig‘i keragidan kengayib concurrencyni pasaytiradi. Qarama-qarshi range acquisition deadlock tug‘dirishi mumkin; predicate, index order va isolation birga tahlil qilinadi.
Key-Range Lock 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 Key-Range Lock faqat nominal demo bilan baholanmaydi.
Kuzatuv
Key-Range Lock 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.
Key-Range Lock 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.
Key-Range Lock 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.
Key-Range Lock 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.
Key-Range Lock 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
serializable isolation, phantom read, range predicate, index, row lock, deadlock