Redis-Stampede bei einer Liste mit drei Locales
Nach einem Deploy bauten zwanzig PHP-Worker dieselbe Notizenliste dreimal neu. Redis lief voll und verdrängte danach die Keys, die gerade geschrieben waren.
Notizen zu Lösungen, Code und Kompromissen. Geschrieben, solange das Problem noch frisch ist.
Nach einem Deploy bauten zwanzig PHP-Worker dieselbe Notizenliste dreimal neu. Redis lief voll und verdrängte danach die Keys, die gerade geschrieben waren.
Der Vue-SSR-Prozess cachete volles HTML in Memcached. Große Artikelseiten sperrten RAM in dicken Slabs. Kleine Kachelfragmente hatten keinen Platz, die Hit-Rate fiel bei hohem RSS.
Listenendpunkte lasen die ganze Notizzeile. Die Body-Spalte ist JSON mit HTML auf Englisch, Russisch und Deutsch. Der Buffer Pool füllte sich mit Text, den das Raster nie rendert.
Ein 10-Sekunden-HTML-Microcache im Shared Memory ist billig. Er ist falsch, sobald auth_token am Request hängt. Bypass über das Cookie, nicht über eine Vermutung.
Der Server nahm Russisch aus der URL. Der erste Client-Lauf las navigator.language. Vue warf den Baum weg. Die Seite lief, der Fehler blieb versteckt, bis der Header sprang.
Sanctum schreibt auth_token als httpOnly. Das Login-JSON hat kein Token-Feld. Kann die Seite die Session lesen, schickt XSS sie weg.
LaraBoom hält Resource, Felder und Service nebeneinander. Host-routes und app/Http sind Ordner, die ich nicht anlege.
Der Worker kann nach dem Provider-Call und vor dem Commit sterben. Redis liefert den Job erneut. Der zweite Lauf muss leer sein.
memory_get_usage() sank am Ende des Requests. Der Host wuchs trotzdem. Copy-on-Write machte geteilte OPcache-Seiten nach Eloquent-Hydrate zu privatem RSS.
Ein GIN auf payload wirkt vollständig. WHERE title->>'ru' macht trotzdem Seq Scan. Containment und Extract sind andere Jobs.
Redis-Transport liefert nach einem Crash erneut. Horizon hat dieselbe Regel. Ack nach dem Provider-Call ist die zweite Abbuchung.
Compose wartet, bis php-fpm lauscht. Kubelet tötet einen Pod, der noch OPcache kompiliert. Readiness und Liveness sind andere Knöpfe.
Die Public-Site ist Vue-SSR. Das CMS oft React. Ein Webpack-Graph schickt beides. TTI im Katalog zahlt den Editor.
Laravel besitzt /api/login und das httpOnly auth_token. Nest mappt DTOs. Ein zweites JWT im Speicher ist eine zweite Identität.