Bosh sahifa Wiki Lease

Lease

Leaseresource, lock, leadership yoki huquqni cheklangan vaqt uchun beradigan distributed systems mexanizmi. Lease egasi faqat muddati tugamaguncha resource ustida amal qilish huquqiga ega. Huquqni davom ettirish uchun lease yangilanadi.

Oddiy lock egasi yo‘qolsa cheksiz qolib ketishi mumkin. Lease esa vaqt tugagach avtomatik yaroqsiz bo‘ladi.

Lease egasi

Client yoki node lease olish uchun coordinator yoki storage’ga murojaat qiladi.

Lease record:

  • resource ID;
  • owner ID;
  • expiration;
  • fencing token;
  • version;
  • status

saqlashi mumkin.

Bir vaqtda faqat bitta active owner bo‘lishi talab qilinishi mumkin.

Expiration

Lease ma’lum muddatgacha amal qiladi.

Masalan:

lease duration = 30 soniya

Owner 30 soniya ichida yangilamasa boshqa node lease olishi mumkin.

Expiration coordinatorning ishonchli vaqtiga asoslanadi.

Renewal

Owner lease tugashidan oldin heartbeat yoki renew request yuboradi.

Renew muvaffaqiyatli bo‘lsa expiration oldinga suriladi.

Network muammosida owner renew javobini ololmasligi mumkin.

U lease hali active deb taxmin qilmasligi kerak.

TTL

Lease Time To Live bilan bog‘liq.

TTL tugashi ownership tugaganini bildiradi.

Cleanup darhol fizik recordni o‘chirmasligi mumkin.

Authorization har operationda current lease holatini tekshiradi.

Distributed lock

Lease distributed lock sifatida ishlatilishi mumkin.

Masalan:

Critical section lease durationdan uzun davom etsa renewal kerak.

Leader election

Node’lardan biri leader lease oladi.

Leader:

  • schedule;
  • partition assignment;
  • metadata update;
  • coordination

vazifasini bajaradi.

Lease tugasa boshqa node leader bo‘lishi mumkin.

Split-brain xavfi

Eski leader network partition sabab renew qila olmaydi, ammo o‘zini leader deb o‘ylashda davom etishi mumkin.

Yangi leader lease oladi.

Ikkalasi bir vaqtda write qilsa split-brain yuz beradi.

Faqat expiration yetarli himoya emas.

Fencing token

Har yangi lease uchun monoton oshuvchi token beriladi.

Masalan:

lease A → token 41
lease B → token 42

Storage faqat eng katta valid tokenli write’ni qabul qiladi.

Eski owner token 41 bilan kech request yuborsa rad etiladi.

Clock muammosi

Client local soati noto‘g‘ri yoki sakrashi mumkin.

Lease expirationini faqat client wall clock bilan baholash xavfli.

Coordinator server va monotonic timer ishlatadi.

Client renew muvaffaqiyatsiz bo‘lsa xavfsiz tomonni tanlaydi.

Lease duration

Juda qisqa lease:

  • ko‘p renewal traffic;
  • vaqtinchalik network kechikishida leadership almashishi;
  • thrashing.

Juda uzun lease:

Duration network va operation latency’siga mos tanlanadi.

Safety margin

Owner lease tugashiga juda yaqin critical operation boshlamaydi.

Masalan, 30 soniyalik lease’da qolgan 1 soniya bilan 10 soniyalik write boshlash xavfli.

Renew oldindan bajariladi yoki operation deadline lease’dan qisqa bo‘ladi.

Session

Lease client session yoki ephemeral membership sifatida ishlatilishi mumkin.

Heartbeat yo‘qolsa:

Session va network partition semantikasi bir xil emas.

Resource cleanup

Lease tugaganda reservation yoki temporary resource tozalanadi.

Ammo egasi hali ishlayotgan bo‘lishi mumkin.

Cleanup operationlari fencing token bilan himoyalanadi.

Lease va lock

Oddiy lock explicit release talab qiladi.

Lease vaqt bilan avtomatik tugaydi.

Lease availabilityni yaxshilaydi, ammo time va stale owner muammosini kiritadi.

Ikkalasi local transaction lockidan farq qiladi.

Lease va heartbeat

Heartbeat owner tirikligini taxmin qiladi.

Lease esa heartbeat kelmasa ownershipni tugatish qoidasi beradi.

Pause, overload yoki network delay tirik nodeni o‘lik deb baholashi mumkin.

Failure detector perfect emas.

Garbage collection pause

Runtime uzoq pause qilsa owner renewal yubora olmaydi.

Lease boshqa node’ga o‘tadi.

Pause tugagach eski node critical sectionni davom ettirishi mumkin.

Fencing token aynan shu holatdan himoya qiladi.

Persistent task

Worker task lease oladi.

Agar worker crash qilsa lease tugagach boshqa worker taskni oladi.

Task qayta bajarilishi mumkin.

Handler idempotent va checkpointli bo‘lishi kerak.

Storage

Lease state strong consistencyga ega coordinator’da saqlanishi kerak.

Eventual replicated cache ikki ownerga bir vaqtda lease berishi mumkin.

Consensusga asoslangan key-value store yoki database conditional update ishlatilishi mumkin.

Observability

Kuzatiladi:

  • active lease;
  • owner;
  • expirationgacha vaqt;
  • renewal failure;
  • leadership change;
  • token;
  • expired task;
  • split-brain rad etilgan write.

Tez-tez lease almashishi network yoki resource muammosini ko‘rsatadi.

Monotonic vaqt

Lease durationni o‘lchash uchun wall clockdan ko‘ra monotonic clock xavfsizroq.

Wall clock administrator yoki synchronization sabab orqaga sakrashi mumkin.

Distributed expirationning authoritative qiymati baribir coordinator tomonida saqlanadi.

Lease transfer

Ba’zan owner lease’ni muddat tugashini kutmasdan boshqa node’ga topshiradi.

Transfer eski ownerni fencing qilib, yangi token yaratadi.

Faqat “release” message’iga ishonish network delay sabab xavfli bo‘lishi mumkin.

Quorum

Lease coordinator replicated bo‘lsa ownership qarori majority orqali commit qilinadi.

Minority partition yangi lease bera olmaydi.

Bu availabilityni kamaytiradi, ammo ikki active owner xavfini cheklaydi.

Bog‘liq tushunchalar

Distributed lock, Leader election, TTL, Heartbeat, Fencing token, Split-brain, Consensus, Session, Failure detector, Idempotency