Lekcije iz produkcije.
Terenske beleške iz pravih sistema — debug priče, arhitektonski kompromisi, anti-patterni koje smo platili kroz ispade. Bez tutorijala, bez hot take-ova. Samo ono što je držalo u 3 ujutru.
Simptom ≠ Uzrok: Kako je auto-healer postao pravi problem
PostgreSQL primary na 91 % CPU. Auto-healer ubija najglasniji query. Sat kasnije: opet 91 %. Lekcija: brza rešenja mogu se zaključati u petlju ako niko ne pita koji se obrazac ponavlja.
Keš bez lock-a je thundering herd: 14 endpoint-a, 8 worker-a, jedna mrtva baza
Istek keša je jedini trenutak kada paralelni worker-i istovremeno postaju skupi. Ko nema lock po ključu, pri svakom isteku šalje kompletnu load na najsporiji put.
Expression index ignorisan: Zašto COALESCE u indeksu nije išao uz ORDER BY — 29 500× speedup
Funkcionalni indeks na COALESCE(column, 0) nije imao nikakav efekat. Planner ga nije koristio jer je ORDER BY imao minimalno drugačiju ekspresiju. Lekcija: ekspresioni identitet nije preporuka, to je uslov.
UPDATE sa subquery i LIMIT: Kada daemon samo mlati vazduh
Jednostavan UPDATE obrazac koji izgleda ispravno na malim količinama i u produkciji tiho stagnira. Uzrok: filter na pogrešnom mestu ubija napredak.