Brojevi brojača sada se proveravaju u obe tabele
U ovom članku
Svaki brojač ovde ima broj. Nalazi se u kodu za ugradnju, u adresi statistike i na koliko god stranica ga je vlasnik stavio. Brojevi se dodeljuju biranjem slučajnog broja između 100 i 9.999.999.999 i proverom da li je već zauzet.
Provera jedne tabele.
Druga tabela
Brojači koji dugo nisu zabeležili pregled premeštaju se u arhivsku tabelu. To je uobičajeno održavanje — radna tabela ostaje mala, a upiti nad njom brzi. Dana 24. avgusta 2026. arhiva je sadržala 212.771 brojeva, a nijedan od njih nije bio u tabeli koju generator proverava.
Dakle, svaki od njih mogao je ponovo da bude dodeljen.
Naspram deset milijardi mogućih brojeva to je verovatnoća sudara od oko 0,002 odsto: otprilike jedan od 47.000 novih brojača dobio bi broj koji je pripadao nekom drugom. Retko, dakle, ali ne apstraktno. Arhivirani brojač je arhiviran upravo zato što je njegova stranica utihnula — ali utihnula stranica nije nužno obrisana. Ako stari kod za ugradnju još stoji u nekoj zaboravljenoj bočnoj traci i ta stranica dobije posetioca, pregled završava u tuđoj statistici, na brojaču napravljenom godinama kasnije.
Da li se to ikada dogodilo, ne može se utvrditi iz podataka: ništa ne razlikuje pregled koji je stigao na ovaj način od bilo kog drugog. Može se utvrditi da se to više ne može dogoditi.
Dve promene
Generator sada proverava obe tabele. A brisanje brojača — što od istog dana vlasnik može sam da uradi — ostavlja oznaku brisanja: red koji se sastoji samo od broja, da ne može nikada ponovo da se izda. Brisanje uklanja podatke iz dvadeset tabela u jednoj transakciji i ne čuva kopiju, što je smisao brisanja; broj je jedina stvar koja mora ostati spaljena.
Zašto je prošlo neopaženo
Generator je napisan kada je postojala jedna tabela. Arhiva je došla kasnije, iz drugog razloga, rešavajući drugi problem, i ništa nije povezalo te dve misli. Oba dela su sama po sebi bila ispravna.
To je oblik većine ovakvih slučajeva. Ne greška koju je neko napravio na jednom mestu, već posledica koju niko nije bio u položaju da vidi. Jedina odbrana je da se namerno ide u potragu, a pitanje koje je pronašlo ovaj slučaj bilo je dovoljno obično: pre nego što se napravi brisanje, gde još živi broj brojača?