Bosh sahifa Wiki Crash Fault

Crash Fault

Crash Fault — tugun yoki processning ishlashni to‘xtatib, keyingi protocol qadamlarini bajarmasligi bilan ifodalanadigan nosozlik. U taqsimlangan tizimdagi aniq consistency, replication yoki fault-handling masalasini ifodalaydi. Kafolatlar faqat termin nomidan emas, protocol modeli, failure farazlari va implementatsiya hujjatidan aniqlanadi.

Qo‘llanish sohasi

Crash-stop modelida tugun qaytmaydi; crash-recovery modelida u persistent state bilan qayta ishga tushishi mumkin. Boshqa tugunlar timeout yoki failure detector orqali javob yo‘qligini sezadi, ammo kechikish bilan crashni mutlaq farqlay olmaydi.

Crash Fault alohida algoritm yoki konfiguratsiya sifatida emas, client xulqi, storage persistence va tarmoq noaniqligi bilan birga ko‘riladi. Bir tugundagi muvaffaqiyat boshqa replica ham shu state’ni commit qilganini avtomatik anglatmaydi. Shu sabab acknowledgementning aniq ma’nosi va visible state chegarasi hujjatlashtiriladi.

Qaror jarayoni

Crash fault noto‘g‘ri xabar yuborishni o‘z ichiga olmaydi va Byzantine modeldan sodda. Raft hamda Paxos kabi ko‘p algoritm replica crashiga quorum mavjud bo‘lsa chidash uchun qurilgan.

Crash Fault implementatsiyasida version va epoch eski state’ni yangisidan ajratadi. Node qayta ishga tushganda identityni ehtiyotsiz qayta ishlatish delayed message yoki eski logning yangi sessionga aralashishiga sabab bo‘ladi. Persistent metadata va join protocol bu chegarani himoya qiladi.

Izchillik xususiyatlari

Qayta ishga tushganda write-ahead log, term va commit state to‘g‘ri tiklanishi kerak. Process crash, host quvvat yo‘qolishi va disk buzilishi bir xil failure emas; test har birining persistence ta’sirini ajratadi.

Crash Fault dizaynida safety va liveness ajratiladi. Safety buzilishi qarama-qarshi commit yoki noto‘g‘ri qiymatga, liveness buzilishi esa tizimning oldinga siljimasligiga olib keladi. Timeoutni qisqartirish livenessni tezlashtirishi mumkin, biroq sekin tarmoqda false failure va keraksiz leader almashishini oshiradi.

Boshqaruv

Crash Fault laboratoriya sinovida bitta nazorat operatsiyasi bilan boshlanadi. Keyin acknowledgement yo‘qolishi, replica sekinlashishi, process pause va leader almashishi navbat bilan kiritiladi. Har hodisadan oldin va keyin committed state tekshiriladi. Test tugagach eski tugun qaytib kelganda yangi tarixni buzmasligi alohida tasdiqlanadi.

Crash Faultning formal xususiyati amaliy implementatsiyada buzilmasligi uchun optimizationlar ham tekshiriladi. Cache, batch, asynchronous apply, follower read va compaction ko‘rinadigan order yoki durabilityni o‘zgartirishi mumkin. Feature flag yoqilganda avvalgi consistency testi qayta bajariladi. Hardware clock, disk cache va virtualizatsiya kabi quyi qatlam farazlari ham protocolga ta’sir qiladi. Tizim bir komponent bergan kafolatni yuqori qatlamga avtomatik ko‘chirmaydi; butun request yo‘li bo‘yicha eng zaif bo‘g‘in aniqlanadi.

Crash Fault holatini kuzatishda configuration version, role yoki epoch, commit nuqtasi, queue va log ko‘rsatkichlari birlashtiriladi. Alert operator bajara oladigan tekshiruvga bog‘lanadi: qaysi node, qaysi key yoki transaction va qaysi vaqt oralig‘i ko‘rilishi aniq yoziladi. Aggregate dashboarddan keyin xom dalil bilan tasdiqlash noto‘g‘ri tashxisni kamaytiradi.

Crash Faultga oid bahoni qayta ishlab bo‘lishi uchun test topologiyasi, software versiyasi, fault injection va kutilgan invariant saqlanadi. Yakuniy natija taxmin yoki bitta log satriga emas, bir-birini tasdiqlovchi state, history va o‘lchovlarga asoslanadi. Qabul qilingan cheklovlar ham natija bilan birga yozilib, boshqa workloadga ko‘r-ko‘rona ko‘chirilmaydi.

Bog‘liq tushunchalar

crash-stop, crash-recovery, failure detector, quorum, Raft, persistent state