The Backend Engineering Show with Hussein Nasser

The Backend Engineering Show with Hussein Nasser

By Hussein NasserTechnology
Download on the App Store

The Backend Engineering Show with Hussein Nasser episodes

  • All Postgres Locks Explained | A Deep Dive

    Get my database engineering course https://database.husseinnasser.com


    In this video I do a deep dive in all locks obtained by postgres, I learned a lot while making this video and hope you enjoy it. 


    0:00 Intro 

    2:30 What are Locks? 

    5:30 Overview of Postgres Locks

    9:10 Table-Level Locks

    11:40 ACCESS EXCLUSIVE

    17:40 ACCESS SHARE

    19:00 ROW SHARE

    20:15 ROW EXCLUSIVE

    21:15 SHARE UPDATE EXCLUSIVE

    23:30 SHARE

    24:50 SHARE ROW EXCLUSIVE

    25:18 EXCLUSIVE

    25:30 Table Lock Conflict Matrix

    28:30 Row-Level Locks

    30:00 FOR UPDATE

    33:00 FOR NO KEY UPDATE

    34:00 FOR SHARE

    34:40 FOR KEY SHARE

    35:10 Row Lock Conflict Matrix

    39:25 Page-Level Locks

    42:00 Deadlocks

    46:00 Advistory Locks

    47:20 Summary



    https://www.postgresql.org/docs/current/explicit-locking.html


    50 min
  • Pinterest moves to HTTP/3
    Pinterest moves to HTTP/3 on all their clients and edge CDNs this year. They witnessed interesting gains but not without good lesson learned. The main one was the mismatch of alt-svc vs DNS ttls.
    I cover this on the next episode of the backend engineering course.
    0:00 Intro
    2:00 Moving h2 to h3 through alt-svc
    5:00 Why HTTP/3
    6:00 HTTP/1 vs HTTP/2
    9:00 TCP Head of Line blocking in HTTP/2
    11:00 How HTTP/3 addresses HOL
    12:15 Connection Migration
    13:30 Stream level congestion control
    14:10 1-RTT - 0-RTT
    15:41 Pinterest challenges moving HTTP/3
    19:00 Migration
    21:15 Future work
    22:30 Summary
    article https://medium.com/pinterest-engineering/pinterest-is-now-on-http-3-608fb5581094
    Fundamentals of Backend Engineering Design patterns udemy course (link redirects to udemy with coupon) https://backend.husseinnasser.com
    26 min
  • Why Loom Users got each others’ sessions on March 7th 2023

    On March 7 2023, Loom users started seeing each others data as a result of cookies getting leaked from the CDN. This loom security breach is really critical. Let us discuss   0:00 Intro 1:00 Why Cookies 2:00 How this happens 5:50 What caused it? 7:30 How Loom solved it? 8:20 Reading the RCA 10:30 Remedies

    15 min
  • How Discord Stores Trillions of Messages - A deep dive

    Discord engineering goes into details of how they migrated from Cassandra to ScyllaDB, improved the performance of their reads and writes and rearchitected their backend to support the new load. It is an interesting episode lets get into it

    0:00 Intro

    1:50 Relational vs Distributed

    7:00 The Cassandra Troubles

    11:00 SnowFlake vs UUID

    14:30 B+Tree

    19:20 B+Tree and SSDs

    25:30 LSM Trees

    31:00 Hot partitions

    36:00 Cassandra Garbage Collector Pauses

    40:00 Changing the Architecture

    45:00 The Data Services

    55:00 The Migration

    1:02:00 Zoned Named Spaces

    1:04:00 Summary

    Article here How Discord Stores Trillions of Messages

    https://discord.com/blog/how-discord-stores-trillions-of-messages

    1 hr 10 min
  • Postgres Architecture | The Backend Engineering Show

    Creating a listener on the backend application that accepts connections is simple. You listen on an address-port pair, connection attempts to that address and port will get added to an accept queue; The application accepts connections from the queue and start reading the data stream sent on the connection.

    However, what part of your application does the accepting and what part does the reading and what part does the execution? You can architect your application in many ways based on your use cases. I have a medium post just exploring the different options.

    In this video I explore the PostgreSQL process architecture in details. Please note that the information here is derived from both the Postgres doc and code. Discussions about scalability and performance are solely based on my opinions.

    0:00 Intro

    1:30 Overview

    3:30 Postgres MVCC

    5:30 Processes vs Threads

    7:40 Postmaster Process

    8:00 Backend Processes

    13:30 Shared Buffers

    14:52 Background Workers

    17:18 Auxiliary Processes

    17:45 Background Writer

    22:30 Checkpointer

    23:40 Logger

    24:06 Autovacuum Launcher and Workers

    25:30 WAL Processes

    28:53 Startup Process

    Read full article

    https://medium.com/@hnasr/postgresql-process-architecture-f21e16459907

    35 min
  • How Alt-Svc switches HTTP/2 clients to use HTTP/3 | The Backend Engineering Show

    The Alt-Svc header/frame is a capability that allows the server to adverse alternative services to the connected application available in protocols, ports or domains. It is available as a response header alt-svc and also as an HTTP/2 frame. Let us discuss this capability.

    0:00 Intro

    1:38 what is alt-svc?

    5:30 uses of h3 in alt-svc

    8:00 alt-svc header

    10:00 Alt-svc header with 103 early hints

    14:48 h2 altsvc frame

    18:30 SVCB DNS record

    21:20 Summary

    Fundamentals of Backend Engineering Design patterns udemy course (link redirects to udemy with coupon)

    https://backend.husseinnasser.com

    24 min
  • Your DNS queries will eventually look like this (0x20 DNS encoding)

    Correction: Google is implementing the proposal originally submitted by researchers from Georgia institute of tech. I incorrectly said in the video that google is proposing this .

    Google is finally implementing a proposal from 2008 by researchers from Georgia institute of technology to make DNS cache poisoning .

    https://astrolavos.gatech.edu/articles/increased_dns_resistance.pdf

    https://datatracker.ietf.org/doc/html/draft-vixie-dnsext-dns0x20-00

    0:00 Intro

    2:00 How DNS Work

    5:00 DNS Cache Poisoning

    14:00 gOoGLe dot CoM

    16:20 ASCII 0x20 casing

    18:30 Randomizing the casing with encryption

    22:30 limitations of this proposal

    24:00 Credits

    27 min
  • DropBox Removed their SSDs, got 20% faster writes

    https://dropbox.tech/infrastructure/increasing-magic-pocket-write-throughput-by-removing-our-ssd-cache-disks

    In this episode of the backend engineering show I’ll discuss how Dropbox improved their write through put by 20% by removing all their SSDs (yes I was surprised too). DropBox uses an SSD layer as a write-back cache with SMR drives as their backend persistent storage. They changed their model to write directly to the hard drives.

    0:00 Intro

    2:00 Article Summary

    3:00 SMR Drives

    6:00 SSD Cache & WriteBack

    8:00 Replacing Cache

    9:30 Storage Engine Background

    14:30 Why did they do it

    15:00 The limitation of SSDs & Zoned Namespaces

    19:30 Updating the Storage Engine

    22:30 Tradeoffs

    26:00 Rollout

    28:00 Summary

    32 min
  • MySQL on HTTP/3 | The Backend Engineering Show

    The communication between backend applications and database systems always fascinated me. The protocols keep evolving and we are in constant search for an efficient protocol that best fit the workload of Backend-DB communication.

    In this episode of the backend engineering show I go through a blog written by  @PlanetScale  doing an experimentation of using HTTP/3 and HTTP/2 comparing it with MySQL Binary protocol.

    https://planetscale.com/blog/faster-mysql-with-http3

    0:00 Intro

    7:45 MySQL Binary vs HTTP

    10:20 The Tests

    15:00 Connection Cost + Select 1

    22:00 Parallel Select

    26:00 The cost of H2 and H3

    38 min
  • How Shopify’s engineering improved writes by 50% with ULID | The Backend Engineering Show

    Fundamentals of Database Engineering udemy course (link redirects to udemy with coupon)

    https://database.husseinnasser.com

    Shopify posted a blog on tips to for scalable payment system, one tip peeked my interest related to switching from UUID to ULID. I explore the reasoning behind this in this video.

    https://shopify.engineering/building-resilient-payment-systems

    0:00 Intro

    1:30 idempotency

    6:30 UUID vs ULID

    9:50 Clustered Index

    13:30 Why UUID4 Inserts are slow

    17:15 How ULID helps Shopify

    22:00 Problem with tail pages

    25:00 Does ULID help in all cases?

    Fundamentals of Backend Engineering Design patterns udemy course (link redirects to udemy with coupon)

    https://backend.husseinnasser.com

    33 min

About The Backend Engineering Show with Hussein Nasser

From the publisher's feed

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.

More shows like The Backend Engineering Show with Hussein Nasser

Freakonomics Radio by Freakonomics Radio + Stitcher

Freakonomics Radio

31,929 Listeners

Software Engineering Radio - the podcast for professional software developers by team@se-radio.net (SE-Radio Team)

Software Engineering Radio - the podcast for professional software developers

274 Listeners

Risky Business by Risky Business Media

Risky Business

373 Listeners

Science Vs by Spotify Studios

Science Vs

12,159 Listeners

Syntax - Tasty Web Development Treats by Wes Bos & Scott Tolinski - Full Stack JavaScript Web Developers

Syntax - Tasty Web Development Treats

987 Listeners

Darknet Diaries by Jack Rhysider

Darknet Diaries

8,070 Listeners

Practical AI by Daniel Whitenack and Chris Benson

Practical AI

210 Listeners

Within Reason by Alex J O'Connor

Within Reason

1,626 Listeners

All-In with Chamath, Jason, Sacks & Friedberg by All-In Podcast, LLC

All-In with Chamath, Jason, Sacks & Friedberg

10,106 Listeners

Dwarkesh Podcast by Dwarkesh Patel

Dwarkesh Podcast

550 Listeners

Big Technology Podcast by Alex Kantrowitz

Big Technology Podcast

513 Listeners

Hard Fork by The New York Times

Hard Fork

5,565 Listeners

The AI Daily Brief: Artificial Intelligence News and Analysis by Nathaniel Whittemore

The AI Daily Brief: Artificial Intelligence News and Analysis

671 Listeners

Prof G Markets by Vox Media Podcast Network

Prof G Markets

1,439 Listeners

The Pragmatic Engineer by Gergely Orosz

The Pragmatic Engineer

74 Listeners