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

  • when indexes are useless | The Backend Engineering Show

    head to https://database.husseinnasser.com to get a discount coupon for my Introduction to Database Engineering course

    In this episode of the backend engineering show, I’ll discuss three instances where indexes can be useless and might add overhead to your operations. Let us discuss.

    0:00 Intro

    1:34 What is an Index?

    4:00 The Cost of Indexes

    6:40 Most values are the similar

    13:00 WHERE UPPER(NAME)=‘RICK’

    17:10 Composite Index

    23:00 How do I know if I’m using an Index

    28 min
  • The cost rolling back transactions (postgres/mysql)
    The cost of a long-running update transaction that eventually failed in Postgres (or any other database for that matter.
    In Postgres, any DML transaction touching a row creates a new version of that row. if the row is referenced in indexes, those need to be updated with the new tuple id as well. There are exceptions with optimization such as heap only tuples (HOT) where the index doesn’t need to be updated but that doesn’t always happens.
    If the transaction rolls back, then the new row versions created by this transaction (millions in my case) are now invalid and should NOT be read by any new transaction. You have two solutions to address this, do you clean all dead rows eagerly on transaction rollback? Or do you do it lazily as a post process?
    Postgres does the lazy approach, a command called vacuum which is called periodically Postgres attempts to remove those dead rows and free up space in the page.
    Whats the harm of leaving those dead rows in? Its not really correctness issues at all, in fact transactions know not to read those dead rows by checking the state of the transaction that created them. This is however expensive, the check to see of the transaction that created this row is committed or rolled-back. Also the fact that those dead rows live in disk pages with alive rows makes an IO not efficient as the database has to filter out dead rows. For example, a page may have contained 1000 rows, but only 1 live row and 999 dead rows, the database will make that IO but only will get a single row of it. Repeat that and you end up making more IOs. More IOs = slower performance.
    Other databases do the eager approach and won’t let you even start the database before rolling back is successfully complete, using undo logs. Which one is right and which one is wrong? Here is the fun part! Nothing is wrong or right, its all decisions that we engineers make. Its all fundamentals. Its up to you to understand and pick. Anything can work. You can make anything work if you know what you are dealing with.
    If you want to learn about the fundamentals of databases and demystify it check out my udemy course 
    https://database.husseinnasser.com
    10 min
  • TLS and HTTPS Options in Microsoft IIS
    In this episode of the backend engineering show, I’ll discuss all HTTPS/TLS binding options in Microsoft IIS and also explain why every web server and reverse proxy should have some of these fine level control.
    Chapters
    0:00 Intro
    1:00 Require Server Name Indication (SNI)
    5:00 Disable TLS 1.3 Over TCP
    8:30 Disable Legacy TLS
    10:00 Disable OCSP Stapling
    12:00 Disable QUIC
    14:30 Disable HTTP/2
    17:30 Certificate
    Get my database course https://database.husseinnasser.com
    Get my NGINX course https://nginx.husseinnasser.com
    Get my Python on the Backend course https://python.husseinnasser.com
    21 min
  • On Graph Databases | The Backend Engineering Show

    I get a lot of emails asking me to talk about graph databases, so I want to start researching them, but I wanted to give you guys the framework of how I think about any databases to defuse any “magic” that might be there.

    In this video, I discuss what constrains a database and how the use cases try to work around them.

    0:00 Intro

    1:50 What constrains a database?

    4:00 Indexing Techniques

    5:30 Storage Engines - Row-Store

    9:00 Columnar Databases

    12:00 Graph use cases

    16:00 Graph Storage Engines

    Learn the fundamentals of databases, grab my my Introduction to Database Engineering udemy course here for a discount coupon https://database.husseinnasser.com 🧑‍🏫

    23 min
  • Certificates gone bad | The Backend Engineering Show

    Certificates contain useful metadata including the public key, domain name, signature, etc. However, the private key can be leaked which causes the certificate to be invalid/dangerous to keep around. In that particular situation, we need a mechanism to revoke certificates and that is what I’m going to discuss in this show.


    0:00 Intro

    0:30 Why Certificates

    12:00 Certificates can go bad

    14:50 Certificate Revocation Lists (CRLs)

    18:30 OCSP (Online Certificate Status Protocol)

    20:40 OCSP Stapling

    24:30 Best certificates are short

    26:30 Summary

    Become a Member on YouTube

    https://www.youtube.com/channel/UC_ML5xP23TOWKUcc-oAE_Eg/join

    🔥 Members Only Content

    https://www.youtube.com/playlist?list=UUMO_ML5xP23TOWKUcc-oAE_Eg

    Support my work on PayPal

    https://bit.ly/33ENps4

    29 min
  • Detailed analysis on the facebook outage

    In this episode, I go through the Facebook detailed article regarding their October 4th, 2021 outage and discuss it in length. enjoy


    Facebook blog: https://engineering.fb.com/2021/10/05/networking-traffic/outage-details/


    0:00 Introduction on Facebook Networking Architecture

    12:00 The Cause of the Outage

    17:00 What’s DNS

    23:00 DNS Servers disabled BGP ads

    27:00 Could the outage have been prevented?

    32:00 Why did it take so long?

    38:00 Why you can’t just flip everything on

    41:30 Summary


    🧑‍🏫 Courses I Teach

    https://database.husseinnasser.com

    https://nginx.husseinnasser.com

    https://python.husseinnasser.com


    Become a Member on YouTube

    https://www.youtube.com/channel/UC_ML5xP23TOWKUcc-oAE_Eg/join

    🔥 Members Only Content

    https://www.youtube.com/playlist?list=UUMO_ML5xP23TOWKUcc-oAE_Eg

    Support my work on PayPal

    https://bit.ly/33ENps4




    🏭 Backend Engineering Videos in Order

    https://backend.husseinnasser.com

    💾 Database Engineering Videos

    https://www.youtube.com/playlist?list=PLQnljOFTspQXjD0HOzN7P2tgzu7scWpl2

    44 min
  • Spook.js - This will bloat Chrome even more | The Backend Engineering Show

    Spook.js is a new transient execution side channel attack which targets the Chrome web browser. We show that despite Google's attempts to mitigate Spectre by deploying Strict Site Isolation, information extraction via malicious JavaScript code is still possible in some cases.

    Resources

    https://www.spookjs.com/

    https://www.chromium.org/developers/design-documents/site-isolation

    Paper: https://www.spookjs.com/files/spook-js.pdf

    Chapters

    0:00 Process Isolation in Chrome

    8:00 Spook.js subdomain Attack

    12:00 Spook.js Extension Attack

    13:00 Summary

    Become a Member on YouTube

    https://www.youtube.com/channel/UC_ML5xP23TOWKUcc-oAE_Eg/join

    🔥 Members Only Content

    https://www.youtube.com/playlist?list=UUMO_ML5xP23TOWKUcc-oAE_Eg

    Support my work on PayPal

    https://bit.ly/33ENps4

    🧑‍🏫 Courses I Teach

    https://husseinnasser.com/courses

    19 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