Pidän useimpina päivinä auki välilehteä, joka näyttää pelkät lähdemäärät. Ei mitään hienoa — ei kaavioita, ei suodattimia, vain luku jokaisen 1 375 sivuston vieressä, joilta haemme ilmoituksia, sekä aikaleima siitä, milloin kukin niistä viimeksi ilmoittautui. Useimpina päivinä se on tylsää tavalla, jolla infrastruktuurin kuuluukin olla tylsää. Tänä kesänä se ei ollut, ja uskon, että tarina siitä, mikä meni pieleen, on sinulle autoa etsivänä hyödyllisempi kuin suurin osa "näin ostat käytetyn auton" -neuvoista, joita voisimme sen sijaan kirjoittaa. Kyse on siitä, mitä "reaaliaikainen data" oikeasti tarkoittaa, kun sitä syöttävä asia on 1 375 erillistä verkkosivustoa, jotka eivät ole sinulle mitään velkaa.
Heinäkuun puoliväli: luku, josta olin ylpeä
Heinäkuun puoliväliin mennessä olimme kasvattaneet lähderekisterin 1 190 lähteeseen 73 alueella — tulosta muutaman viikon työstä, jossa täsmäytimme päällekkäisiä merkintöjä ja kuolleita linkkejä, jotka olivat hiljalleen paisuttaneet omaa lukuamme. Muistan ajatelleeni, että 1 190 aitoa, ilmoittautunutta lähdettä oli jotain, josta kannatti olla ylpeä. Se on paljon yksittäisiä jälleenmyyjäsivustoja, ilmoitustauluja ja huutokauppasyötteitä, joista jokaisella on oma HTML-rakenteensa, omat rajoituksensa pyyntömäärille ja oma näkemyksensä siitä, onko scraperi asiakas vai hyökkääjä.
Sitten alkoi tuottaa tulosta kampanja, jota olimme ajaneet taustalla — käytiin läpi 683 lähteen jonolistaa, joka oli seissyt lykättynä kuukausia, osa estettynä, osa vain koskaan rakentamatta. Heinäkuun jälkipuoliskolla 274 niistä saatiin rakennettua ja kytkettyä mukaan. Kuun loppuun mennessä toimivien lähteiden määrä oli noussut 1 464:ään. Se on sellainen viikko, josta otetaan kuvakaappaus.
Elokuun alku: 241 lähdettä, poissa
Sitten tuli viikon pilaava luku: yhdessä yössä 241 lähdettä ajautui heikentyneeseen tilaan. Ei minkään meidän tekemämme takia — proxy-palveluntarjoajamme tili oli rauennut laskutuspuolella, ja valtava osa liikenteestämme reititetään kiertävien IP-osoitteiden kautta juuri siksi, ettemme joutuisi estetyiksi sivustoilla, jotka rajoittavat scrapereiden pyyntömääriä. Ei proxyja, ei tuoreita sivuja, ei tuoreita ilmoituksia. Lähteet eivät ilmoita olevansa rikki; ne vain lakkaavat hiljaa palauttamasta uutta dataa, kun taas niiden vanhat ilmoitukset makaavat siellä näyttäen ajantasaisilta.
Tämä on se osa, joka ei näy minkään automarkkinapaikan — meidän mukaan lukien — ilmoitusmäärässä, ellei sitä erikseen lähde etsimään: "reaaliaikainen" markkinapaikka voi sisältää vanhentuneita rivejä tuoreiden vierellä ja näyttää ulospäin identtiseltä. Otimme käyttöön ehdon, jonka mukaan uusia haku-ajoja ei lähetetä ilman todellista proxy-terveystarkastusta, jotta kuollut pooli ei pääsisi hiljaa heikentämään laatua entisestään, ja keskeytimme ne aikataulun osat, jotka olisivat pahentaneet tilannetta. Se ei ole näyttävää työtä. Se on sellaista työtä, josta jos et koskaan kuule mitään, joku teki työnsä.
Sivuhuomautus, koska se kannattaa sanoa suoraan: mikä tahansa sivusto, joka väittää kiinteää, pyöreää ilmoitusmäärää joka ikinen päivä, ei joko ole todellisuudessa reaaliaikainen tai ei kerro sinulle tämän kaltaisista viikoista.
Jäätyminen
Proxy-tilin uusiminen korjasi suurimman osan ongelmasta. Sitä en osannut odottaa, että itse crawler jumiutuisi muutamaa viikkoa myöhemmin — teardown-lukkiutuma, jossa yhdeksästätoista työsäikeestä kahdeksantoista jäi jumiin futex_wait-tilaan, nolla prosessorikuormaa, 75 tunnin ajaksi yhtäjaksoisesti. Ei kaatumista, ei kenellekään huutavaa virhelokia. Vain... ei mitään tapahtunut, kun hallintapaneeli näytti edelleen viimeisintä onnistunutta ajoa ikään kuin se olisi ajan tasalla. Emme olleet vielä asentaneet valvontakoiraa juuri sille palvelimelle, mikä on sellainen lause, jonka kirjoittaa vasta sen jälkeen kun sen kuvaama asia on jo kerran tapahtunut.
Rakensimme valvontakoiran. Keskeytimme aikataulun, kunnes proxy-tilin uusiminen oli varmistettu vakaaksi, sen sijaan että olisimme riskeerineet puoliksi heikentyneen haku-ajon hiljaa korvaavan hyviä rivejä huonoilla — haetusta lähteestä sen ilmoitukset korvataan, ei yhdistetä, joten huono ajo ei vain epäonnistu lisäämään dataa, vaan voi aktiivisesti poistaa hyviä rivejä ja laittaa huonompia niiden tilalle. Tämä epäsymmetria on syy siihen, miksi ajamme mieluummin vanhentunutta dataa päivän kuin heikentynyttä.
Mihin luku päätyi
Tässä on tämänpäiväinen luku ja kuuden viikon kaari, joka toi meidät tähän:
Päädyimme 1 375 lähteeseen 73 alueella, jotka syöttävät 1 108 535 reaaliaikaista ilmoitusta, joista 12 823 on tällä hetkellä merkitty alueellista vertailuryhmäänsä alemmin hinnoitelluiksi. Se on noin 90 lähdettä vähemmän kuin heinäkuun huippulukema — osa niistä 241 heikentyneestä lähteestä ei koskaan palautunut täysin, kourallinen oli sivustoja, jotka olivat sillä välin muuttaneet bottien vastaista suojaustaan ja vaativat uudelleenrakentamista pelkän uudelleenyhdistämisen sijaan. Työstämme yhä muutamaa niistä.
Mitä tämä oikeasti merkitsee sinulle
Mikään tästä ei muuta sitä, minkä auton sinun kannattaisi ostaa. Mutta sen pitäisi muuttaa tapaa, jolla luet minkä tahansa autosivuston "reaaliaikainen varasto" -lukua, ei vain meidän. Ranska on tällä hetkellä alueellisen lukumäärämme kärjessä 67 569 ilmoituksella, Japani lähellä perässä 61 940 ilmoituksella, ja nuo luvut liikkuvat — ei siksi, että käytettyjen autojen markkina itsessään heilahtelisi niin nopeasti, vaan siksi, että sitä seuraava infrastruktuuri heilahtelee. Ilmoitus, joka on kolme päivää vanhentunut lähteen heikentyneen tilan vuoksi, näyttää täsmälleen tuoreelta, ellei alusta ole rehellinen erosta.
Kerromme mieluummin sinulle 75 tunnin jäätymisestä kuin teeskentelemme, ettei lukumme koskaan horju. Datasetti, joka ei koskaan myönnä huonoa viikkoa, on datasetti, johon kannattaa suhtautua epäilevämmin, ei vähemmän epäilevästi.



