Ką iš tiesų paliečia skaitiklio ištrynimas
Šiame straipsnyje
Ištrynus skaitiklį čia ištuštinamos 33 lentelės. Vakar buvo ištuštinamos 25.
Aštuonios praleistosios buvo sukurtos išvakarėse, tarp 11:10 ryto ir 15:10 popiet.
Kaip veikia ištrynimas
Savininkas gali ištrinti savo skaitiklį. Reikia POST užklausos, savininko prieigos rakto ir ranka įrašyto skaitiklio numerio, nes atšaukti neįmanoma. Niekas neatidedama: šešėlinė kopija būtų priešinga tam, ko paprašyta, o eksporto nuorodos yra virš mygtuko tiems, kurie kopijos nori.
Tada vienoje transakcijoje ištuštinamas lentelių sąrašas, pagrindinė lentelė paskutinė, o į archyvą įrašoma žymė, kad numerio niekada nebūtų galima duoti kitam. Jei nepavyksta kuri nors dalis, viskas atšaukiama. Nieko neištrinti geriau nei ištrinti pusę.
Virš to sąrašo faile yra komentaras:
„Kiekviena lentelė, kuri ką nors žino apie šį skaitiklį. Sąrašu, o ne išbarstyta po kodą: visa, ko čia trūksta, lieka kaip našlaitė eilutė, ir niekas nepastebi.“
Komentaras aprašė spragą likus dienai iki jos atsiradimo
Vakar atsirado šešios naujos lentelės naujai funkcijai — laikui puslapyje, slinkimo gyliui, išėjimo puslapiams — ir dar dvi kitos. Tarp 11:10 ir 15:10.
Ištrynimo sąrašas tą pačią dieną redaguotas, kad būtų pridėta kita nauja lentelė. Aštuonios atsirado po to, o sąrašas daugiau nejudėjo. Todėl vieną popietę ištrynus skaitiklį likdavo 4 840 elgsenos duomenų eilučių per aštuonias lenteles. Spraga rasta kitą dieną ir užverta; ji parodė, kad sąrašo išsamumui palaikyti reikia ko nors daugiau nei atminties.
Tai ne istorija apie aplaidumą. Kažkas parašė sąrašą, tiksliai suprato, kodėl tai sąrašas, užrašė, kas nutinka jam atsiliekant, ir tą pačią dieną papildė viena lentele. O jis vis tiek atsiliko, nes du dalykus suderinti prisimenant žmonėms patikimai sekasi iki tos popietės, kai nebepavyksta.
Pataisymas ir kitas pataisymas
Aštuoni pavadinimai dabar sąraše. Jie įterpti abėcėlinėse vietose, o ne pridėti pabaigoje, nes surikiuotas sąrašas leidžia pamatyti spragą, o vien papildomas pabaigoje – ne.
Tai mažasis pataisymas. Svarbusis – scenarijus, kuris klausia duomenų bazės, kurios lentelės turi skaitiklio numerį, perskaito sąrašą iš kodo failo, užuot jį kartojęs, ir palygina. Pridėjęs lentelę žmogus jį vieną kartą paleidžia. Jo neįmanoma pamiršti taip, kaip sąrašo, nes jis nieko nesaugo — kaskart išveda atsakymą iš schemos.
Pirmu paleidimu rado ir kita: 25 eilutes dar aštuoniose lentelėse, kurių skaitiklio numerio nėra nei veikiančioje lentelėje, nei archyve. Ne ištrinti skaitikliai — tie palieka žymę. Niekam nepriklausantys numeriai, dauguma akivaizdžiai bandomieji iš laikų prieš archyvo patikrą. Jie įrašyti į failą už žiniatinklio šaknies ribų ir tada pašalinti.
Kam tai taikoma plačiau
Kiekvienas sąrašas, kurį reikia derinti su kuo nors kitu, galiausiai išsiderins, o spraga bus nematoma, nes sąrašas, kuriam trūksta įrašo, atrodo tiksliai kaip išsamus.
Apsauga – ne disciplina. Ją suteikia vienos pusės išvedimas iš kitos ir jų sutapimo patikra — atliekama tada, kai kas nors prideda dalyką, o ne tada, kai kas nors susimąsto.
Komentaras virš sąrašo buvo teisus viskuo, išskyrus vieną žodį. Jis sakė, kad niekas nepastebi. Kažkas pastebėjo po dienos, nes ieškojo scenarijumi, o ne savo atmintimi.