Kontaktirajte podršku

Odgovaramo e-poštom, obično u roku od dva dana.

Radi zaštite od zloupotrebe, Google reCAPTCHA proverava ovo slanje. Pritom se podaci prenose Googleu. Skripta se učitava tek kada otvorite ovaj formular.

← Sve objave

Tri kolone zaostale iz Stats4U 2

O sadržaju i njegovoj proveri

U ovom članku

Glavna tabela brojača ovde ima 166.436 redova i niz kolona koje izgledaju kao da su važne. Tri od njih su lastdomain, firstdomain i userdomain. Sadrže podatke:

lastdomainnije prazno u 15.525 redova
firstdomainnije prazno u 15.457 redova
userdomainnije prazno u 2.982 reda
redovi brojača: 166.436lastdomain15.525firstdomain15.457userdomain2.982166.436

Ništa ih ne upisuje. Nijedan iskaz nigde u kodu ne postavlja nijednu od te tri. Vrednosti potiču iz prethodne generacije ove usluge, zamrznute na onome što su bile kada je prestala da radi, a svaki red napravljen od tada je prazan.

Zašto napola popunjena kolona zbunjuje više od prazne

Potpuno prazna kolona je očigledno mrtva. Niko na njoj ne gradi, niko iz nje ne izveštava, niko ne troši popodne pitajući se šta znači.

Kolona popunjena kod 9% redova je zamka. Izgleda kao polje koje se ponekad popunjava, a ponekad ne — što je potpuno obična stvar za kolonu. Svako ko je nađe razumno zaključuje da postoji pravilo koje odlučuje kada se postavlja i počinje da ga traži. Pravila nema.

A zastarele vrednosti nisu sklonjene u uspavane redove gde ne bi mogle da naškode. Od redova koji nose lastdomain, 1.613 pripada brojačima koji su ažurirani još ove godine. Živ brojač sa domenom zabeleženim pre deset godina izgleda potpuno isto kao živ brojač sa aktuelnim.

Još gore, podaci su verodostojni. To su domeni, liče na domene brojača, a upit koji se njima spaja vraća redove. Odgovarao bi na pitanje o vebu koji je otišao dalje.

Kako brzo proveriti

Tražite upise, a ne ime. Ime kolone pojavljuje se u SELECT listama, u dumpovima šeme, u starim migracijama, u komentarima — što ništa ne dokazuje. Odlučuje to da li je pominje bilo koji INSERT ili UPDATE . Ta pretraga traje minut i neosporna je na način na koji čitanje oko koda nije.

Druga provera su sami podaci: ako je najnoviji red sa vrednošću star godinama, kolona je fosil bez obzira na ono što kod naizgled kaže.

Zašto su još tu

Brisanje kolone je jeftino, ali nije besplatno. Svaki od tih redova pripada nečijem brojaču, neki rade neprekidno od 2006, a bezbedan korak pre promene šeme na ovakvoj tabeli jeste dump koji je zaista jednom vraćen, a ne samo napravljen. Ta vežba je od tada obavljena. Dok brisanje nije vredno samo po sebi, tri neupotrebljene kolone ne koštaju ništa osim trenutka zbunjenosti, a beleška opisana ispod uklanja i to.

Zato su umesto toga dokumentovane. Nema očiglednog mesta za tu belešku — šema ove baze postoji samo u bazi koja radi, a ne u nijednoj datoteci u repozitorijumu — pa je otišla tamo gde bi neko zaista naleteo na nju: u klasu koja čita red brojača, tačno tamo gde kolone prolaze. Beleška u datoteci koju niko ne otvara nije dokumentacija. Zamku pretvara u fusnotu samo ako stoji na putu.

Oglas