513 episodes

Welcome to the Backend Engineering Show podcast with your host Hussein Nasser. If you like software engineering you’ve come to the right place. I discuss all sorts of software engineering technologies and news with specific focus on the backend. All opinions are my own.

Most of my content in the podcast is an audio version of videos I post on my youtube channel here http://www.youtube.com/c/HusseinNasser-software-engineering

Buy me a coffee
https://www.buymeacoffee.com/hnasr

🧑‍🏫 Courses I Teach
https://husseinnasser.com/courses

The Backend Engineering Show with Hussein Nasser Hussein Nasser

    • Technology

Welcome to the Backend Engineering Show podcast with your host Hussein Nasser. If you like software engineering you’ve come to the right place. I discuss all sorts of software engineering technologies and news with specific focus on the backend. All opinions are my own.

Most of my content in the podcast is an audio version of videos I post on my youtube channel here http://www.youtube.com/c/HusseinNasser-software-engineering

Buy me a coffee
https://www.buymeacoffee.com/hnasr

🧑‍🏫 Courses I Teach
https://husseinnasser.com/courses

    How Apache Kafka got faster by switching ext4 to XFS

    How Apache Kafka got faster by switching ext4 to XFS

    https://oscourse.win



    Allegro improved their Kafka produce tail latency by over 80% when they switched from ext4 to xfs. What I enjoyed most about this article is the detailed analysis and tweaking the team made to ext4 before considering switching to xfs. This is a classic case of how a good tech blog looks like in my opinion. 



    0:00 Intro

    0:30 Summary

    2:35 How Kafka Works?

    5:00 Producers Writes are Slow

    7:10 Tracing Kafka Protocol 

    12:00 Tracing Kernel System Calls

    16:00 Journaled File Systems

    21:00 Improving ext4

    26:00 Switching to XFS





    Blog

    https://blog.allegro.tech/2024/03/kafka-performance-analysis.html

    • 33 min
    Google Patches Linux kernel with 40% TCP performance

    Google Patches Linux kernel with 40% TCP performance

    Get my backend course https://backend.win



    Google submitted a patch to Linux Kernel 6.8 to improve TCP performance by 40%, this is done via rearranging the tcp structures for better cpu cache lines, I explore this here.

    0:00 Intro
    0:30 Google improves Linux Kernel TCP by 40%
    1:40 How CPU Cache Line Works
    6:45 Reviewing the Google Patch

    https://www.phoronix.com/news/Linux-6.8-Networking
    https://lore.kernel.org/netdev/20231129072756.3684495-1-lixiaoyan@google.com/


    Discovering Backend Bottlenecks: Unlocking Peak Performance
    https://performance.husseinnasser.com

    • 14 min
    Database Torn pages

    Database Torn pages

    0:00 Intro

    2:00 File System Block vs Database Pages

    4:00 Torn pages or partial page

    7:40 How Oracle Solves torn pages

    8:40 MySQL InnoDB Doublewrite buffer

    10:45 Postgres Full page writes

    • 15 min
    Cloudflare Open sources Pingora (NGINX replacement)

    Cloudflare Open sources Pingora (NGINX replacement)

    Get my backend course https://backend.win



    Cloudflare has announced they are opening sources Pingora as a networking framework! Big news, let us discuss 



    0:00 Intro

    0:30 Reasons why Cloudflare built Pingora?

    3:00 It is a framework! 

    7:30 What in Pingora?

    11:50 Security in Pingora

    13:45 Multi-threading in Pingora

    21:00 Customization vs Configuration

    25:00 Summary







    ⁠https://blog.cloudflare.com/pingora-open-source/?utm_campaign=cf_blog&utm_content=20240228&utm_medium=organic_social&utm_source=twitter⁠

    • 31 min
    The Internals of MongoDB

    The Internals of MongoDB

    https://backend.win

    https://databases.win



    I’m a big believer that database systems share similar core fundamentals at their storage layer and understanding them allows one to compare different DBMS objectively. For example, How documents are stored in MongoDB is no different from how MySQL or PostgreSQL store rows. 

    Everything goes to pages of fixed size and those pages are flushed to disk. 



    Each database define page size differently based on their workload, for example MongoDB default page size is 32KB, MySQL InnoDB is 16KB and PostgreSQL is 8KB.



    The trick is to fetch what you need from disk efficiently with as fewer I/Os as possible, the rest is API.  



    In this video I discuss the evolution of MongoDB internal architecture on how documents are stored and retrieved focusing on the index storage representation. I assume the reader is well versed with fundamentals of database engineering such as indexes, B+Trees, data files, WAL etc, you may pick up my database course to learn the skills.

    Let us get started.

    • 44 min
    The Beauty of Programming Languages

    The Beauty of Programming Languages

    In this video I explore the type of languages, compiled, garbage collected, interpreted, JIT and more. 

    • 18 min

Top Podcasts In Technology

No Priors: Artificial Intelligence | Technology | Startups
Conviction | Pod People
Lex Fridman Podcast
Lex Fridman
All-In with Chamath, Jason, Sacks & Friedberg
All-In Podcast, LLC
Acquired
Ben Gilbert and David Rosenthal
The Neuron: AI Explained
The Neuron
Hard Fork
The New York Times