16 percről 3,5 másodpercre — adatpipeline skálázása
Egy lassú, akadozó adatfeldolgozó pipeline-t hangoltunk újra: a szűk keresztmetszet megtalálása és célzott indexelés után a feldolgozás 16 percről másodpercekre csökkent.
A kihívás
A platform leadeket dolgozott fel és gazdagított nagy tételben, de a pipeline egyre lassabb lett. Egy-egy futás már 16 percig tartott, ami blokkolta a downstream folyamatokat, és a növekvő adatmennyiséggel csak romlott a helyzet. A tünet egyértelmű volt; az ok nem.
A megoldás
A probléma nem a hardver volt, hanem egy rosszul támogatott adatbázis-művelet:
- Gyökérok-elemzés. A dedup-lekérdezés minden futásnál teljes szekvenciális végigolvasást (seq scan) végzett a tábla minden során — a tábla növekedésével négyzetesen romló költséggel.
- Célzott indexelés. A teljes átindexelés helyett egy szűk, a konkrét lekérdezésre szabott parciális indexet vezettünk be, ami pontosan a forró úton segít.
- Mérés, nem tippelés. Minden lépést a tényleges lekérdezési tervhez (query plan) mértünk, nem feltételezésekhez.
Az eredmény
A feldolgozási idő 16 percről 3,5 másodpercre esett — nagyjából 270-szeres gyorsulás, kód-újraírás és drágább szerver nélkül. A pipeline azóta a növekvő adatmennyiséggel is stabil.
Ez a fajta munka a védjegyünk: nem több erőforrást veszünk, hanem megkeressük a tényleges szűk keresztmetszetet — és pontosan ott avatkozunk be.