Večino dni imam odprt zavihek, ki preprosto prikazuje števila virov. Nič lepotnega — brez grafov, brez filtrov, samo številka ob vsakem od 1.375 spletnih mest, s katerih pridobivamo oglase, in časovni žig, kdaj se je vsako od njih nazadnje javilo. Večino dni je dolgočasno na način, kot naj bi infrastruktura dolgočasna tudi bila. To poletje ni bilo tako, in mislim, da je zgodba o tem, kaj je šlo narobe, bolj koristna za vas, kot nekoga, ki kupuje avto, kot večina nasvetov tipa "kako kupiti rabljen avto", ki bi jih sicer lahko napisali. Gre za to, kaj "podatki v živo" dejansko pomenijo, kadar vir, ki jih napaja, sestavlja 1.375 ločenih spletnih strani, ki vam ničesar ne dolgujejo.
Sredina julija: številka, na katero sem bil ponosen
Do sredine julija smo register virov povečali na 1.190 virov v 73 regijah — rezultat nekaj tednov usklajevanja podvojenih vnosov in mrtvih povezav, ki so tiho napihovali naše lastno število. Spomnim se, da sem si mislil, da je 1.190 pravih, javljajočih se virov nekaj, na kar sem lahko ponosen. To je veliko posameznih spletnih strani trgovcev, oglasnih desk in dražbenih virov, vsaka s svojo strukturo HTML, svojimi omejitvami hitrosti, svojim mnenjem o tem, ali je pajkalnik stranka ali napad.
Nato je začela obroditi kampanja za zaostanke, ki smo jo izvajali — obdelava čakalnega seznama 683 virov, ki so mesece čakali odloženi, nekateri blokirani, nekateri preprosto še nikoli zgrajeni. V drugi polovici julija je bilo 274 od teh zgrajenih in vključenih. Do konca meseca je delujoče število naraslo na 1.464. To je teden, ki ga posnameš z zaslonsko sliko.
Zgodnji avgust: 241 virov, izginilih
Nato pride številka, ki ti pokvari teden: čez noč je 241 virov padlo v degradirano stanje. Ne zaradi česarkoli, kar smo storili mi — račun našega ponudnika proxyjev je potekel na strani zaračunavanja, velik del našega prometa pa poteka prek rotirajočih IP-jev prav zato, da nas strani, ki omejujejo pajkalnike, ne blokirajo. Brez proxyjev ni svežih strani, ni svežih oglasov. Viri ne sporočijo, da so pokvarjeni; preprosto tiho prenehajo vračati nove podatke, medtem ko njihovi stari oglasi ostajajo tam in izgledajo aktualni.
To je del, ki se ne pokaže v številu oglasov na nobeni strani z avtomobili, vključno z našo, razen če ga posebej iščete: "živ" trg lahko ima zastarele vrstice, ki ležijo poleg svežih, in od zunaj izgledajo enako. Nova dispečiranja pajkanja smo pogojili z dejansko preverbo stanja proxyjev, da mrtev nabor ne bi tiho še dodatno poslabšal kakovosti, in začasno ustavili dele urnika, ki bi stanje le še poslabšali. To ni bleščeče delo. Je tista vrsta dela, za katero, če o njej nikoli ne slišite, pomeni, da je nekdo opravil svoje delo.
Mimogrede, ker je vredno povedati naravnost: vsaka stran, ki trdi, da ima fiksno, okroglo število oglasov vsak dan, bodisi dejansko ni v živo, bodisi vam ne pove o tednih, kakršen je bil ta.
Zamrznitev
Podaljšanje naročnine na proxyje je odpravilo večino težav. Česar nisem pričakoval, je bilo, da se je nekaj tednov kasneje zataknil sam pajkalnik — zastoj (deadlock) pri zaustavljanju, osemnajst od devetnajstih delovnih niti je obtičalo v futex_wait, brez porabe CPE, kar 75 ur zapored. Brez sesutja, brez dnevnika napak, ki bi komurkoli kaj kričal. Preprosto ... nič se ni dogajalo, medtem ko je nadzorna plošča še naprej prikazovala zadnji uspešni prehod, kot da bi bil aktualen. Na tem konkretnem gostitelju še nismo namestili nadzornega programa (watchdog), kar je vrsta stavka, ki ga napišeš šele, ko se ti opisano že enkrat zgodi.
Zgradili smo nadzorni program. Urnik smo začasno ustavili, dokler se ni potrdilo, da je podaljšanje proxyjev stabilno, namesto da bi tvegali, da bi napol degradirano pajkanje tiho zamenjalo dobre vrstice s slabimi — vir, ki je bil pajkan, dobi svoje oglase zamenjane, ne združene, zato slab prehod ne le, da ne doda podatkov, temveč lahko aktivno izbriše dobre vrstice in namesto njih vstavi slabše. Prav zaradi te asimetrije raje en dan tečemo z zastarelimi podatki, kot da bi tekli degradirano.
Kje je številka pristala
Tukaj je današnje število in oblika šestih tednov, ki so nas pripeljali do tu:
Pristali smo pri 1.375 virih v 73 regijah, ki napajajo 1.108.535 oglasov v živo, od tega jih je trenutno 12.823 označenih kot cenovno pod svojo regijsko skupino. To je približno 90 virov manj kot na julijskem vrhuncu — nekateri od 241 degradiranih virov se nikoli niso povsem povrnili, peščica jih je bila strani, ki so medtem spremenile svoj pristop proti pajkalnikom, zato so potrebovale ponovno gradnjo namesto zgolj ponovne povezave. Na nekaterih od njih še vedno delamo.
Kaj je to za vas dejansko vredno
Nič od tega ne spremeni, kateri avto bi morali kupiti. Bi pa moralo spremeniti, kako berete katerokoli število "zaloge v živo" na kateri koli strani z avtomobili, ne le naši. Francija je trenutno na vrhu našega regijskega števila s 67.569 oglasi, tik za njo pa Japonska z 61.940, in ta števila se premikajo — ne zato, ker bi se trg rabljenih avtomobilov sam po sebi tako hitro nihal, temveč zato, ker se premika infrastruktura, ki ga opazuje. Oglas, ki je tri dni zastarel, ker je bil vir degradiran, izgleda povsem enako kot svež, razen če je platforma poštena glede te razlike.
Raje vam povemo o 75-urni zamrznitvi, kot da bi se pretvarjali, da naše število nikoli ne zaniha. Nabor podatkov, ki nikoli ne prizna slabega tedna, je nabor podatkov, do katerega bi morali biti bolj sumničavi, ne manj.



