There are only two hard things in Computer Science: cache invalidation and naming things.
Caches sind einfach überall. Jede Aktion auf einem Computer nutzt eine Vielzahl an Caches. Sei es der Browser Cache, DNS-Cache, In-Memory Cache auf dem Server oder dein lokaler CPU Cache L1-L4. Doch was sind Caches eigentlich? Welche Cache-Layer und Cache-Hierarchien gibt es? Wie funktionieren Caches? Wie kann ich Cache-freundlich programmieren? Was passiert, wenn der Cache voll ist und was sind Eviction-Policies? Wie relevant sind heutzutage eigentlich die CPU-Caches L1 bis L4 für die normalen Software-Entwickler*innen? Wie kann ich verifizieren, ob mein Code Cache-freundlich ist? Und warum ist Cache Invalidation eigentlich ein hartes Problem?
Bonus: Was Bandlaufwerke mit Caching und niederländisches Hähnchen mit Queues zu tun haben.
Das schnelle Feedback zur Episode:
Feedback (gerne auch als Voice Message)
Gerne behandeln wir auch euer Audio Feedback in einer der nächsten Episoden, einfach Audiodatei per Email oder WhatsApp Voice Message an +49 15678 136776
(00:00:00) Intro
(00:01:02) Es gibt nur zwei harte Probleme in der Informatik
(00:06:56) Caching und Cache Invalidierung
(00:07:25) Was ist ein Cache?
(00:10:36) Jeder nutzt Caches jeden Tag: Cache-Layer
(00:12:34) Cache-Hierarchien und wie relevant sind CPU Caches (L1 bis L4) heute noch?
(00:16:39) Wie funktioniert eigentlich ein Cache? Cache Hit, Cache Miss, Cache Ratio
(00:21:27) Ersetzungsstrategien / Eviction-Policies: FIFO, LIFO, LRU, TTL, MRU, LFU
(00:31:57) Wie kann ich Cache-Freundlich programmieren um den L1 bis L4 Cache richtig zu nutzen und Monitoring von L1 bis L4 Caches
(00:48:39) Ist die Funktionsweise von L1 bis L4 Caches valide für andere Arten von Caches?
(00:51:12) Warum ist Cache Invalidierung ein hartes Problem?