Ders 14 / 22
Kurtarma
Kurtarmanın yeniden bulaşma riski ekseninde ölçülmesi: yedi geri dönüş noktasının üçünün temiz olması ve en yenisinin dokuz buçuk gün geride kalması, temiz yedeğe dönüşün 94.715 kalem veri ve 44 elle kalem tutması, sıfırdan kurmanın aynı temizliği 2.493 kalem kayıpla 190 dakika fazlasına vermesi, kirli yedeğe dönüşün temizlemeyi baştan koşturup toplam süreyi 1.347 dakikaya çıkarması ve dört aşamalı denetimli geri getirmenin üretime geçen nokta beklentisini 5,00'ten 0,10'a indirmesi.
İçindekiler
Önceki ders 22 tutunma noktasından beşinin hiçbir keşif yöntemiyle bulunamadığını saydı ve kaçırılanı sıfıra indirmenin tek yolunun varlığı yeniden kurmak olduğunu gösterdi. Yeniden kurulan varlık boş dönmez; bir yedekten ya da bir imajdan doldurulur. Bu ders o seçimi ölçer.
Kurtarmanın ölçüsü hizmetin ne kadar sürede açıldığı değildir. Ölçülen şey yeniden bulaşma riskidir: hangi geri dönüş noktası ilk tutunmadan önce alınmıştır, temiz olana dönmek kaç kalemi kaybettirir, kaç kalem elle yeniden kurulur ve hizmet üretime dönerken kaç aşamada gözlenir. Yedek türleri, zincir yapısı ve depolama hesabı Bilgi Teknolojileri ve Sistem Temelleri kursunda ölçüldü; burada yedek yalnız bir zaman noktası olarak ele alınır.
Geri Dönüş Noktaları
OM27: İlk tutunma dokuz gün öncedir; bir geri dönüş noktası ancak o andan önce alınmışsa temizdir. OM28: Yirmi iki tutunma noktasının her birinin kurulduğu gün bir veridir; bir yedek, alındığı anda kurulmuş olan bütün noktaları içerir. OM29: Günlük işlem hacmi 9.970 kalemdir — 8.400 sayaç okuması, 1.250 fatura kalemi, 320 iş emri; kayıp kalem geri dönülen günden bugüne kadarki hacimdir. OM30: Yedeğin dışında kalan yapılandırma elle yeniden kurulur: taban altı kalem, geri dönülen gün başına dört kalem. OM31: Kirli bir yedeğe dönüldüğünde temizleme baştan koşar — önceki dersin tam keşif düzeni, 642 dakika — ve beş nokta yine kaçırılır. OM32: Denetimli geri getirme dört aşamadır; her aşamanın bir gözlem penceresi ve yeniden etkinleşen bir noktayı yakalama olasılığı vardır. OM33: Sıfırdan kurmada sistem imajı temizdir ve veri en yeni yedekten alınır; dokuz varlığı imajdan kurmak 430 dakika ve 34 elle kalem tutar.
// kurtarma/model.mjs — denetimli geri getirme modeli: gercek bir yedek ya da sistem yok. // Geri donus noktalari, tutunma noktasi kurulus gunleri ve asamalar veri yapisidir. export const ILK_TUTUNMA = 9; // ilk tutunma kac gun once gerceklesti export const NOKTA_SAY = 22, KACIRILAN = 5; // onceki dersten: toplam ve kacirilan nokta // tutunma noktasinin kuruldugu gun (kac gun once) — 22 nokta (veri) export const KURULUS = [9, 9, 9, 8, 8, 7, 7, 6, 6, 6, 5, 5, 4, 4, 4, 3, 3, 2, 2, 1, 1, 1]; // gunluk islem hacmi: hizmet -> kalem (veri) export const HACIM = { "sayac okumasi": 8400, "fatura kalemi": 1250, "is emri": 320 }; export const GUNLUK = Object.values(HACIM).reduce((s, v) => s + v, 0); // geri donus noktasi: kac gun once alindi, geri getirme dakikasi export const NOKTALAR = [[21, 260], [14, 245], [9.5, 240], [7, 215], [3, 190], [1, 175], [0.25, 165]]; // elle yeniden kurulacak kalem: yedek disinda kalan yapilandirma, gun basina (veri) export const ELLE_GUNLUK = 4, ELLE_TABAN = 6; export const kirliNokta = (gunOnce) => KURULUS.filter((k) => k >= gunOnce).length; // o an zaten kurulmus noktalar yedektedir export const kayip = (gunOnce) => Math.round(gunOnce * GUNLUK); export const elle = (gunOnce) => ELLE_TABAN + Math.round(gunOnce * ELLE_GUNLUK); // denetimli geri getirme asamasi: ad, gozlem dakikasi, yeniden etkinlesen noktayi yakalama export const ASAMA = [["yalitilmis agda acma", 120, 0.55], ["denetimli sinirli trafik", 180, 0.70], ["kismi trafik", 240, 0.85], ["tam trafik", 0, 0]]; export function asamali(sayi) { // ilk `sayi` asama uygulanir const kume = ASAMA.slice(0, sayi); const kacan = kume.reduce((p, [, , y]) => p * (1 - y), 1); return { dk: kume.reduce((s, [, d]) => s + d, 0), yakalama: 1 - kacan, kacan }; } // kurtarma duzeni: ad, geri donus noktasi (gun once) ya da null (sifirdan kurma), // sifirdan kurmada veri en yeni yedekten alinir ve sistem imaji temizdir export const DUZEN = [ ["en yeni yedege donus", 0.25, false], ["1 gun oncesine donus", 1, false], ["3 gun oncesine donus", 3, false], ["temiz yedege donus", 9.5, false], ["sifirdan kurma + veri", 0.25, true], ]; export const SIFIRDAN_DK = 430, SIFIRDAN_ELLE = 34; // dokuz varligi imajdan kurma // kirli yedege donuldugunde temizleme bastan kosar (onceki dersin tam kesif duzeni) export const TEMIZLEME_DK = 642; export function olc([ad, gun, sifirdan], asamaSay) { const yedekNokta = sifirdan ? 0 : kirliNokta(gun); const kalan = yedekNokta > 0 ? KACIRILAN : 0; // temizleme tekrar kossa da kacirilan kalir const a = asamali(asamaSay); const geri = NOKTALAR.find(([g]) => g === gun)[1]; return { ad, gun, yedekNokta, kalan, kayip: sifirdan ? kayip(0.25) : kayip(gun), elle: sifirdan ? SIFIRDAN_ELLE : elle(gun), dk: (sifirdan ? SIFIRDAN_DK : geri) + (yedekNokta ? TEMIZLEME_DK : 0) + a.dk, yakalanan: +(kalan * a.yakalama).toFixed(1), gecen: +(kalan * a.kacan).toFixed(2), asama: asamaSay, gozlem: a.dk, oran: a.yakalama }; }
Ölçüm dosyası önce yedi geri dönüş noktasını sıralar, sonra beş kurtarma düzenini aynı olayda koşturur ve aşama sayısını tarar.
// kurtarma/olc.mjs — hangi yedege donmek temiz, kac kalem kaybediliyor, kac kalem elle // yeniden kuruluyor ve denetimli geri getirmenin asamalari yeniden bulasmayi nerede yakaliyor. import { ILK_TUTUNMA, KURULUS, HACIM, GUNLUK, NOKTALAR, ASAMA, DUZEN, TEMIZLEME_DK, KACIRILAN, kirliNokta, kayip, elle, asamali, olc } from "./model.mjs"; const yaz = (g, ...s) => console.log(s.map((v, i) => (g[i] < 0 ? String(v).padEnd(-g[i]) : String(v).padStart(g[i]))).join("")); const t0 = process.hrtime.bigint(); const TEMIZ_GUN = NOKTALAR.find(([g]) => kirliNokta(g) === 0 && g < ILK_TUTUNMA + 1)[0]; console.log(`ilk tutunma ${ILK_TUTUNMA} gun once; ${KURULUS.length} tutunma noktasi, ` + `gunluk islem hacmi ${GUNLUK} kalem (` + Object.entries(HACIM).map(([a, v]) => `${a} ${v}`).join(", ") + ")"); console.log("\n1. geri donus noktalari"); const A = [-10, 8, 17, 14, 8, 15]; yaz(A, "gun once", "temiz", "yedekteki nokta", "kayip kalem", "elle", "geri getirme"); for (const [g, dk] of NOKTALAR) yaz(A, g, kirliNokta(g) === 0 ? "evet" : "hayir", kirliNokta(g), kayip(g), elle(g), dk + " dk"); console.log(`\n2. bes kurtarma duzeni (kirli yedekte temizleme ${TEMIZLEME_DK} dk bastan kosar, ` + `${KACIRILAN} nokta yine kacirilir)`); const B = [-24, 10, 8, 14, 8, 12, 14]; yaz(B, "duzen", "yedekte", "kalan", "kayip kalem", "elle", "toplam dk", "gecen nokta"); const R = DUZEN.map((d) => olc(d, ASAMA.length)); for (const r of R) yaz(B, r.ad, r.yedekNokta, r.kalan, r.kayip, r.elle, r.dk, r.gecen.toFixed(2)); console.log("\n3. denetimli geri getirme asamalari"); const C = [-26, 10, 12, 18, 16]; yaz(C, "asama", "gozlem dk", "yakalama", "kumul. yakalama", "kumul. dakika"); for (const [i, [ad, dk, y]] of ASAMA.entries()) { const a = asamali(i + 1); yaz(C, ad, dk, y.toFixed(2), a.yakalama.toFixed(4), a.dk); } console.log("\n4. asama sayisi ile uretime gecen nokta beklentisi"); const D = [-8, 12, 18, 16, 14, 14]; yaz(D, "asama", "gozlem dk", "kumul. yakalama", "en yeni yedek", "temiz yedek", "sifirdan"); for (let n = 0; n <= ASAMA.length; n++) { const a = asamali(n); yaz(D, n, a.dk, a.yakalama.toFixed(4), olc(DUZEN[0], n).gecen.toFixed(2), olc(DUZEN[3], n).gecen.toFixed(2), olc(DUZEN[4], n).gecen.toFixed(2)); } console.log("\n5. iki temiz secenek arasindaki fark"); const t = olc(DUZEN[3], ASAMA.length), s = olc(DUZEN[4], ASAMA.length); const E = [-22, 14, 12, 12]; yaz(E, "olcu", "temiz yedek", "sifirdan", "fark"); yaz(E, "kayip kalem", t.kayip, s.kayip, t.kayip - s.kayip); yaz(E, "elle kalem", t.elle, s.elle, t.elle - s.elle); yaz(E, "toplam dakika", t.dk, s.dk, t.dk - s.dk); yaz(E, "uretime gecen nokta", t.gecen.toFixed(2), s.gecen.toFixed(2), (t.gecen - s.gecen).toFixed(2)); console.log("\n6. temiz yedege donusun hizmet basina kaybi"); const F = [-18, 12, 14, 10]; yaz(F, "hizmet", "gunluk", `${TEMIZ_GUN} gunluk`, "pay"); for (const [ad, v] of Object.entries(HACIM)) yaz(F, ad, v, Math.round(v * TEMIZ_GUN), (100 * v / GUNLUK).toFixed(1) + "%"); const ms = Number(process.hrtime.bigint() - t0) / 1e6; // ham olcum basilmaz, bant denetlenir console.log(`\nbes duzen ve bes asama sayisi 500 ms bandinda: ${ms < 500 ? "evet" : "hayir"}`);
ilk tutunma 9 gun once; 22 tutunma noktasi, gunluk islem hacmi 9970 kalem (sayac okumasi 8400, fatura kalemi 1250, is emri 320) 1. geri donus noktalari gun once temiz yedekteki nokta kayip kalem elle geri getirme 21 evet 0 209370 90 260 dk 14 evet 0 139580 62 245 dk 9.5 evet 0 94715 44 240 dk 7 hayir 7 69790 34 215 dk 3 hayir 17 29910 18 190 dk 1 hayir 22 9970 10 175 dk 0.25 hayir 22 2493 7 165 dk 2. bes kurtarma duzeni (kirli yedekte temizleme 642 dk bastan kosar, 5 nokta yine kacirilir) duzen yedekte kalan kayip kalem elle toplam dk gecen nokta en yeni yedege donus 22 5 2493 7 1347 0.10 1 gun oncesine donus 22 5 9970 10 1357 0.10 3 gun oncesine donus 17 5 29910 18 1372 0.10 temiz yedege donus 0 0 94715 44 780 0.00 sifirdan kurma + veri 0 0 2493 34 970 0.00 3. denetimli geri getirme asamalari asama gozlem dk yakalama kumul. yakalama kumul. dakika yalitilmis agda acma 120 0.55 0.5500 120 denetimli sinirli trafik 180 0.70 0.8650 300 kismi trafik 240 0.85 0.9798 540 tam trafik 0 0.00 0.9798 540 4. asama sayisi ile uretime gecen nokta beklentisi asama gozlem dk kumul. yakalama en yeni yedek temiz yedek sifirdan 0 0 0.0000 5.00 0.00 0.00 1 120 0.5500 2.25 0.00 0.00 2 300 0.8650 0.68 0.00 0.00 3 540 0.9798 0.10 0.00 0.00 4 540 0.9798 0.10 0.00 0.00 5. iki temiz secenek arasindaki fark olcu temiz yedek sifirdan fark kayip kalem 94715 2493 92222 elle kalem 44 34 10 toplam dakika 780 970 -190 uretime gecen nokta 0.00 0.00 0.00 6. temiz yedege donusun hizmet basina kaybi hizmet gunluk 9.5 gunluk pay sayac okumasi 8400 79800 84.3% fatura kalemi 1250 11875 12.5% is emri 320 3040 3.2% bes duzen ve bes asama sayisi 500 ms bandinda: evet
Sayılar ölçüm sınıfındadır; girdileri yukarıdaki varsayımlardır.
Hangi Yedek Temiz
Birinci tablo yedi geri dönüş noktasını temizlik ekseninde ayırır. Üçü temizdir: 21, 14 ve 9,5 gün öncesi. En yeni temiz nokta 9,5 gün geridedir ve ona dönmek 94.715 kalem veri ile 44 elle kalem tutar. Dört nokta kirlidir ve içerdikleri tutunma noktası sayısı yeniye doğru artar: yedi gün öncesinde 7, üç gün öncesinde 17, bir gün öncesinde 22. Kayıp kalem ile yedekteki nokta sayısı ters yönde hareket eder — bu tablonun tek satırında iyi bir seçenek yoktur.
Geri getirme dakikası bu ayrımı hiç yansıtmaz: en eski nokta 260, en yeni nokta 165 dakikadır. Kurtarma süresi tek başına ölçüldüğünde en yeni yedek en iyi seçenek görünür. Karar, geri getirme dakikasına değil yedeğin içeriğine bağlıdır.
Beş Düzen
İkinci tablo beş düzeni birlikte koşturur. Kirli yedeğe dönen üç düzende temizleme baştan koşar ve 642 dakika ekler; toplam süre 1.347 ile 1.372 dakika arasındadır ve üçünde de beş nokta kaçırılmış olarak kalır. En yeni yedeğe dönmek yalnız 2.493 kalem veri kaybettirir, ama 1.347 dakika sürer ve temizlemenin bütün işini yeniden yaptırır. Kurtarma, temizlemenin yaptığı işi geri alabilir.
İki düzen temizdir. Temiz yedeğe dönmek 780 dakikayla en hızlısıdır ve hiç nokta getirmez, ama 94.715 kalem veri ile 44 elle kalem bedeli vardır. Sıfırdan kurma aynı temizliği 970 dakikada verir; kayıp kalem 2.493’e, elle kalem 34’e iner. Beşinci tablo farkı tek tek yazar: 190 dakika fazlasına 92.222 kalem veri ve 10 elle kalem kazanılır. Kurtarmada ödenen 190 dakika, dokuz buçuk günlük işlem verisinden ucuzdur.
Aşamalı Geri Getirme
Üçüncü tablo denetimli geri getirmeyi aşamalara böler. Yalıtılmış ağda açma 120 dakika gözlem ile 0,55, denetimli sınırlı trafik 180 dakikayla 0,70, kısmi trafik 240 dakikayla 0,85 yakalar; kümülatif yakalama sırasıyla 0,5500, 0,8650 ve 0,9798’dir. Dördüncü aşama tam trafiktir, gözlem penceresi sıfırdır ve hiçbir şey eklemez — üretimin kendisi bir gözlem aşaması değildir.
Dördüncü tablo aşama sayısını üretime geçen nokta beklentisine çevirir. En yeni yedeğe dönen düzende beş nokta kalır; hiç aşama uygulanmazsa beşi de üretime geçer, bir aşamayla 2,25’e, ikiyle 0,68’e, üçle 0,10’a iner. Bedeli 540 dakika gözlemdir. Temiz düzenlerde kalan nokta sıfırdır ve aşama sayısı hiçbir şeyi değiştirmez.
Buradan iki ayrı karar çıkar. Kirli bir yedeğe dönüldüyse aşamalı geri getirme zorunludur ve 540 dakika gözlem, üretime geçen nokta beklentisini beşte birden ellide bire indirir. Temiz bir kaynaktan gelindiyse aşamalar bu ölçüde hiçbir şey kazandırmaz — kazandırdıkları başka bir eksende, temizliğin gerçekten sağlandığının doğrulanmasındadır ve bu model onu ölçmez.
Aşamaların dakikası kurtarmanın kendisiyle karşılaştırıldığında büyüktür. Sıfırdan kurmanın 970 dakikasının 540’ı gözlemdir; geri getirmenin kendisi 430 dakika tutar. Gözlem penceresi kısaltılırsa hizmet daha erken açılır ama yakalama oranı düşer: iki aşamada 300 dakika ile 0,8650, üç aşamada 540 dakika ile 0,9798. Son aşamanın 240 dakikası, kümülatif yakalamayı 0,8650’den 0,9798’e taşır — kirli bir düzende bu, üretime geçen nokta beklentisini 0,68’den 0,10’a indirmek demektir.
Kaybın Nereye Düştüğü
Altıncı tablo temiz yedeğe dönüşün 94.715 kalemlik kaybını hizmete böler. Sayaç okuması günlük 8.400 kalemle payın yüzde 84,3’ünü tutar ve 9,5 günde 79.800 kalem eder; fatura kalemi 11.875, iş emri 3.040 kalemdir. Üç hizmetin kaybı aynı ağırlıkta değildir ve bu model onları eşit sayar. Sayaç okuması sonradan yeniden okunabilir bir ölçümdür; fatura kalemi ve iş emri ise dışarıya verilmiş bir sözün kaydıdır. Kayıp kalem sayısı bu ayrımı taşımaz — kararı veren, sayının hangi hizmetten geldiğini de görmek zorundadır.
Özet
- Yedi geri dönüş noktasının üçü temizdir; en yeni temiz nokta 9,5 gün geridedir ve 94.715 kalem veri ile 44 elle kalem tutar.
- Kirli yedeğe dönen üç düzende temizleme 642 dakika ile baştan koşar, toplam süre 1.347–1.372 dakikaya çıkar ve beş nokta yine kaçırılır.
- Sıfırdan kurma temiz yedeğe göre 190 dakika fazlaya 92.222 kalem veri ve 10 elle kalem kazandırır.
- Denetimli geri getirmenin üç gözlem aşaması 540 dakikada kümülatif 0,9798 yakalar; dördüncü aşama tam trafiktir ve hiçbir şey eklemez.
- Üretime geçen nokta beklentisi kirli düzende aşamasız 5,00, bir aşamayla 2,25, üç aşamayla 0,10’dur; temiz düzenlerde aşama sayısından bağımsız olarak sıfırdır.
Sonraki Adım
Hizmet döndü ve yeniden bulaşma beklentisi 0,10’a indi. Geriye olayın kendisi kaldı: ne oldu, ne zaman başladı, hangi karar hangi dakikada verildi ve bir dahakine hangi kalem farklı olsaydı süre kısalırdı. Sonraki ders çıkarılan dersleri kanıt ve kapsam ekseninde ele alır: hangi soru yanıtlanabiliyor, hangisi kayıt olmadığı için yanıtsız kalıyor ve açılan iyileştirme kalemlerinin kaçı doğrudan bir eksik kayda dayanıyor.
İlerlemeni kaydetmek ve not almak için Giriş yap
Notlarım
Not almak için giriş yapmalısın.