Engineering Kiosk
Warum werden Systeme langsam, obwohl die Hardware doch immer schneller wird? Und warum endet die vermeintlich einfache Lösung so oft in einem Stack-Wechsel, der neue Probleme schafft statt alte zu lösen? Genau da setzen wir in dieser Episode an. Wir schauen auf Indexstrukturen, Datenstrukturen und die oft übersehene Frage, wie Workload, Hardware, Lese- und Schreibzugriffe und Algorithmen zusammenhängen. Denn häufig ist nicht die Datenbank schuld, sondern die falsche Struktur für den falschen Job. In dieser Episode sprechen wir über Red Black Trees, B-Bäume, B-Plus-Bäume, Hash-Indizes, Trie, Radix Tree, Bitmap Index und Bloomfilter. Wir machen das nicht abstrakt, sondern mit konkreten Beispielen aus der Praxis. Etwa mit Nginx und Timeout-Management im Event-Loop, mit HTTP-Routern und Prefix-Suche, mit Git und Bloom Filtern für schnellere Dateipfad-Abfragen oder mit Alerting-Systemen und Hashmaps. Dabei geht es auch um Big O, Cache Lines, Range Queries, Rehashing, Performance-Basics und die Frage, wann Optimierung sinnvoll ist und wann sie nur Overengineering produziert. Wenn du besser verstehen willst, warum manche Software unter Last einknickt und wie du mit dem richtigen Datenmodell, sauberen Metriken und etwas Architekturverständnis deutlich weiter kommst, ist diese Folge für dich. Und vielleicht ist die wichtigste Erkenntnis am Ende gar nicht, welche Indexstruktur die beste ist, sondern dass du sie in deiner eigenen Codebase vermutlich längst benutzt, oft nur ohne es zu merken. Bonus: Blumenfilter sind keine Blumen und streng genommen nicht mal ein richtiger Index. Unsere aktuellen Werbepartner findest du auf https://engineeringkiosk.dev/partners [https://engineeringkiosk.dev/partners] Das schnelle Feedback zur Episode: 👍 (top) [https://api.openpodcast.dev/feedback/273/upvote] 👎 (geht so) [https://api.openpodcast.dev/feedback/273/downvote] ANREGUNGEN, GEDANKEN, THEMEN UND WÜNSCHE Dein Feedback zählt! Erreiche uns über einen der folgenden Kanäle … * EngKiosk Community: https://engineeringkiosk.dev/join-discord [https://engineeringkiosk.dev/join-discord] * LinkedIn: https://www.linkedin.com/company/engineering-kiosk/ [https://www.linkedin.com/company/engineering-kiosk/] * Email: stehtisch@engineeringkiosk.dev [stehtisch@engineeringkiosk.dev] * Mastodon: https://podcasts.social/@engkiosk [https://podcasts.social/@engkiosk] * Bluesky: https://bsky.app/profile/engineeringkiosk.bsky.social [https://bsky.app/profile/engineeringkiosk.bsky.social] * Instagram: https://www.instagram.com/engineeringkiosk/ [https://www.instagram.com/engineeringkiosk/] UNTERSTÜTZE DEN ENGINEERING KIOSK Wenn du uns etwas Gutes tun möchtest … Kaffee schmeckt uns immer * Buy us a coffee: https://engineeringkiosk.dev/kaffee [https://engineeringkiosk.dev/kaffee] LINKS * Engineering Kiosk Episode #146 Warum ist Doom so faszinierend für die Software-Entwicklung?: https://engineeringkiosk.dev/podcast/episode/146-warum-ist-doom-so-faszinierend-f%C3%BCr-die-software-entwicklung/ [https://engineeringkiosk.dev/podcast/episode/146-warum-ist-doom-so-faszinierend-f%C3%BCr-die-software-entwicklung/] * Engineering Kiosk Episode #28 O(1), O(log n), O(n^2) - Ist die Komplexität von Algorithmen im Entwickler-Alltag relevant?: https://engineeringkiosk.dev/podcast/episode/28-o1-olog-n-on2-ist-die-komplexit%C3%A4t-von-algorithmen-im-entwickler-alltag-relevant/ [https://engineeringkiosk.dev/podcast/episode/28-o1-olog-n-on2-ist-die-komplexit%C3%A4t-von-algorithmen-im-entwickler-alltag-relevant/] * Engineering Kiosk Episode #269 Performance-Basics: Indexstrukturen, Cache-Lokalität & Zugriffsmuster: https://engineeringkiosk.dev/podcast/episode/269-performance-basics-indexstrukturen-cache-lokalit%C3%A4t-zugriffsmuster/ [https://engineeringkiosk.dev/podcast/episode/269-performance-basics-indexstrukturen-cache-lokalit%C3%A4t-zugriffsmuster/] * Engineering Kiosk Episode #73 Cache-freundliches Programmieren, CPU-Caches, Ersetzungsstrategien und Cache-Invalidierung: https://engineeringkiosk.dev/podcast/episode/73-cache-freundliches-programmieren-cpu-caches-ersetzungsstrategien-und-cache-invalidierung/ [https://engineeringkiosk.dev/podcast/episode/73-cache-freundliches-programmieren-cpu-caches-ersetzungsstrategien-und-cache-invalidierung/] * Engineering Kiosk Episode #265 One Billion Row Challenge: Java mit mmap, Unsafe & richtig vielen Bit-Tricks: https://engineeringkiosk.dev/podcast/episode/265-one-billion-row-challenge-java-mit-mmap-unsafe-richtig-vielen-bit-tricks/ [https://engineeringkiosk.dev/podcast/episode/265-one-billion-row-challenge-java-mit-mmap-unsafe-richtig-vielen-bit-tricks/] * julienschmidt/httprouter - A high performance HTTP request router that scales well: https://github.com/julienschmidt/httprouter [https://github.com/julienschmidt/httprouter] * Engineering Kiosk Episode #151 Räumliche Indexstrukturen: Grundpfeiler in Geo-Systemen, Games und Machine Learning: https://engineeringkiosk.dev/podcast/episode/151-r%C3%A4umliche-indexstrukturen-grundpfeiler-in-geo-systemen-games-und-machine-learning/ [https://engineeringkiosk.dev/podcast/episode/151-r%C3%A4umliche-indexstrukturen-grundpfeiler-in-geo-systemen-games-und-machine-learning/] * Alertmanager: https://github.com/prometheus/alertmanager [https://github.com/prometheus/alertmanager] * NGinx Source Code: https://github.com/nginx/nginx [https://github.com/nginx/nginx] * Redis Bloom Filter: https://redis.io/docs/latest/develop/data-types/probabilistic/bloom-filter/ [https://redis.io/docs/latest/develop/data-types/probabilistic/bloom-filter/] SPRUNGMARKEN (00:00:00) Indexstrukturen und Skalierung: Warum Datenstrukturen entscheidend sind (00:04:17) Info/Werbung (00:05:17) Indexstrukturen und Skalierung: Warum Datenstrukturen entscheidend sind (00:07:13) Workload, Hardware und Big O: Wie du Performance richtig einordnest (00:12:47) Bäume als Indexstrukturen: RAM, Festplatte und moderne Hardware (00:21:26) Red Black Trees in der Praxis: Sortierung, Balance und Nginx-Timeouts (00:24:34) B-Bäume und B+ Bäume in Datenbanken und Hauptspeicher (00:28:39) Hashindex und Hashmap: Punktabfragen, Kollisionen und Rehashing (00:34:09) Redis, Incremental Rehashing und Hashing-Fallen in der Praxis (00:39:51) Trie und Radix Tree: Textsuche, Routing und URL-Präfixe (00:45:29) Bitmap Index und Bloomfilter: Kompakte Strukturen für schnelle Filter (00:50:44) Bloomfilter in Git, verteilten Systemen und Tiered Storage (00:54:51) Challenge für die eigene Codebase, gewinne einen Kaffee HOSTS * Wolfgang Gassler (https://gassler.dev [https://gassler.dev]) * Andy Grunwald (https://andygrunwald.com/ [https://andygrunwald.com/]) COMMUNITY Diskutiere mit uns und vielen anderen Tech-Spezialist⋅innen in unserer Engineering Kiosk Community unter https://engineeringkiosk.dev/join-discord [https://engineeringkiosk.dev/join-discord]
275 episodios
Comentarios
0Sé la primera persona en comentar
¡Regístrate ahora y únete a la comunidad de Engineering Kiosk!