Retour

Explorez tous les épisodes du podcast The Backend Engineering Show with Hussein Nasser

Plongez dans la liste complète des épisodes de The Backend Engineering Show with Hussein Nasser. Chaque épisode est catalogué accompagné de descriptions détaillées, ce qui facilite la recherche et l'exploration de sujets spécifiques. Suivez tous les épisodes de votre podcast préféré et ne manquez aucun contenu pertinent.

Rows per page:

1–50 of 531

TitreDateDurée
Cloudflare's 150ms global cache purge | Deep Dive18 Oct 202401:02:21

Cloudflare built a global cache purge system that runs under 150 ms.


This is how they did it.


Using RockDB to maintain local CDN cache, and a peer-to-peer data center distributed system and clever engineering, they went from 1.5 second purge, down to 150 ms.


However, this isn’t full picture, because that 150 ms is just actually the P50. In this video I explore Clouldflare CDN work, how the old core-based centralized quicksilver, lazy purge work compared to the new coreless, decentralized active purge. In it I explore the pros and cons of both systems and give you my thoughts of this system.


0:00 Intro

4:25 From Core Base Lazy Purge to Coreless Active

12:50 CDN Basics

16:00 TTL Freshness

17:50 Purge

20:00 Core-Based Purge

24:00 Flexible Purges

26:36 Lazy Purge

30:00 Old Purge System Limitations

36:00 Coreless / Active Purge

39:00 LSM vs BTree

45:30 LSM Performance issues

48:00 How Active Purge Works

50:30 My thoughts about the new system

58:30 Summary


Cloudflare blog

https://blog.cloudflare.com/instant-purge/



Mentioned Videos


Cloudflare blog

https://blog.cloudflare.com/instant-purge/



Percentile Tail Latency Explained (95%, 99%) Monitor Backend performance with this metric

https://www.youtube.com/watch?v=3JdQOExKtUY


How Discord Stores Trillions of Messages | Deep Dive

https://www.youtube.com/watch?v=xynXjChKkJc


Fundamentals of Operating Systems Course

https://os.husseinnasser.com


Backend Troubleshooting Course

https://performance.husseinnasser.com

MySQL is having a bumpy journey28 Sep 202400:28:34

Fundamentals of Database Engineering udemy course https://databases.win MySQL has been having bumpy journey since 2018 with the release of the version 8.0. Critical crashes that made to the final product, significant performance regressions, and tons of stability and bugs issues. In this video I explore what happened to MySql, are these issues getting fixed? And what is the current state of MySQL at the end of 2024. 0:00 Intro 2:00 MySQL 8.0 vs 5.7 Performance 11:00 Critical Crash in 8.0.38, 8.4.1 and 9.0.0 15:40 Is 8.4 better than 8.0.36? 16:30 More Features = More Bugs 22:30 Summary and my thoughts resources https://x.com/MarkCallaghanDB/status/1786428909376164263 https://www.percona.com/blog/do-not-upgrade-to-any-version-of-mysql-after-8-0-37/ http://smalldatum.blogspot.com/2024/09/mysql-innodb-vs-sysbench-on-large-server.html https://www.percona.com/blog/mysql-8-0-vs-5-7-are-the-newer-versions-more-problematic/

How Apache Kafka got faster by switching ext4 to XFS29 Apr 202400:33:52

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



First port your computer connects to browsing the Web | Backend Engineering Show05 Feb 202200:12:36

I asked a question on my community post   What port does your computer connect to when you visit google.com on your browser for the very first time?  The answer really depends on the network configuration and that's what I discuss in this video. The answer could be HTTP port 80, HTTPS port 443, DNS port 53 or other answers that aren't even listed here including DNS over HTTPS and DNS over TLS. Lets discuss


Index page splits | The Backend Engineering Show30 Jan 202200:31:54
In this episode of the backend engineering show I discuss the ramification of index page splits which results in fragmented index yielding slow query performance when using indexes. I go through what a page is, how a page is read and written in the database and finally discuss the current solutions to address this problem such as reindexing, fill factor and choosing a good index key type. Get my Fundamentals of Database Engineering Udemy course https://database.husseinnasser.com 0:00 Intro 1:50 What is a Page? 5:00 How to Read and Write a page 8:45 Batching Writes and WAL 11:45 The Order of Content in the Page 16:00 Page Splits 21:30 Solving Index Fragmentation 28:30 Summary
Multi-tenancy architecture | The Backend Engineering Show23 Jan 202200:26:16

Multitenancy refers to placing two or more clients, customers or tenants so they share a single resource. The idea behind Multitenancy is to save on resources instead of giving each client its own resource (storage, app, memory, network etc..). You slice each part and give it to dedicated client. The number one rule is those tenants shouldn’t be aware of the existence of other tenants, they need to be completed isolated, no one tenant can read or influence the other’s tenant share. If this is confusing don’t worry I’ll go through examples in this episode of the backend engineering show.


0:00 Intro

2:50 Ssd Multitenancy

6:45 Database Multitenancy

10:14 Networking Multitenancy (SDN)

16:55 VMs and Containers Multitenancy

19:00 Application Multitenancy

Is ULTRARAM a game changer? | Backend Engineering Show19 Jan 202200:20:49
Scientists at the Physics and Engineering Department of the UK’s Lancaster University published a new paper describing ULTRARAM. A Low-Energy, High-Endurance, Compound-Semiconductor Memory on Silicon. I think this tech is a game changer but I still have my doubts. Let us discuss 0:00 Intro 0:30 RAM 4:00 SSD 11:00 UltraRAM 17:30 Doubts * RAM (Dynamic RAM) * Fast access with capacitors * random access * requires power to be refreshed * Flash NAND (SSD) * Pros fast random access (FTL) * Block storage * Requires high voltage (20V to erase/ 7.5 to program) * Low durability endurance which then (write amplification + garbage collection ) * UltraRAM uses a new novel approach to the memory cell design that only need 2.5 V to program/erase, low power which saves the memory cell lifetime https://www.sciencedirect.com/topics/engineering/fowler-nordheim-tunnelling * High endurance program/erase last longer * High retention * GC/WA not required * Limitations: still we know very little https://onlinelibrary.wiley.com/doi/10.1002/aelm.202101103  
My website went down - enom outage analysis16 Jan 202200:25:30
enom my DNS registrar had an outage which took down my site husseinnasser.com lets discuss   0:00 Intro  5:00 How DNS Works 12:00 Outage report 16:00 Will I migrate my DNS? 21:40 Does decentralize mean anything anymore?
Thoughts on Low code | The Backend Engineering Show05 Jan 202200:20:47

In this episode of the backend engineering show, I’ll discuss the low code movements and their pros and cons.

0:00 Intro

2:00 Evolution of Languages

8:40 Low Code Movement

10:00 Side Effect of Low Code

13:00 Leaky Abstractions


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

https://database.husseinnasser.com

Introduction to NGINX (link redirects to udemy with coupon)

https://nginx.husseinnasser.com

Python on the Backend (link redirects to udemy with coupon)

https://nginx.husseinnasser.com

Tech I want to explore in 202203 Jan 202200:21:07

These are some fundamental technologies that I want to explore in 2022.   0:00 The Way I learn 4:20 Database Engineering 7:00 Network Engineering  9:30 Hardware and Operating Systems 15:00 The problem with software engineering   Collateral Knowledge Video https://www.youtube.com/watch?v=6YKbVpWmeLM&t=3s  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  Fundamentals of Database Engineering udemy course (link redirects to udemy with coupon) https://database.husseinnasser.com Introduction to NGINX  (link redirects to udemy with coupon) https://nginx.husseinnasser.com Python on the Backend (link redirects to udemy with coupon) https://nginx.husseinnasser.com

How TikTok short content is delivered through HTTP - Devtooling TikTok29 Dec 202100:19:43

Welcome to another dev tools video, in this video I use dev tools to break down how Tiktok website works to pull short-form content. 

We will use therock as a subject. It is an interesting episode, enjoy   

An HTTP request journey to the Backend | Backend Engineering Show23 Dec 202100:37:29

In this episode of the backend engineering show, I explain the journey of an HTTP request that gets initiated from a click on a link. I discuss DNS, TCP, API Gateways, reverse proxies, load balancers, backend web servers, and much more.


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

🧑‍🏫 Courses I Teach

https://husseinnasser.com/courses

The Journey of an HTTP request to the Backend | Backend Engineering Show23 Dec 202100:36:40

In this episode of the backend engineering show, I explain the journey of an HTTP request that gets initiated from a click on a link. I discuss DNS, TCP, API Gateways, reverse proxies, load balancers, backend web servers, and much more.

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

🧑‍🏫 Courses I Teach

https://husseinnasser.com/courses

Google Patches Linux kernel with 40% TCP performance05 Mar 202400:14:24

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

Log4DoS - New Denial of Service discovered in log4j | The Backend Engineering Show19 Dec 202100:19:12

Right after the latest patch log 4j 2.16, a new denial of service vulnerability surfaced on log4j resulting in a new 2.17 patch. Let us discuss.


0:00 log4dos

4:50 History of log4j fixes

15:20 All love to the open source maintainers

Previous Backend Engineering show episode coverage of log4shell

https://youtu.be/77XnEaWNups

https://logging.apache.org/log4j/2.x/security.html#

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

Detailed analysis on the Amazon US-EAST-1 Outage - Video Podcast18 Dec 202100:54:00

In this episode of the backend engineering show, we go through a deep dive to uncover the reason behind the outage on December 7th, 2021 Amazon outage.

RCA

https://aws.amazon.com/message/12721

All outage analysis videos

https://www.youtube.com/watch?v=dhZ5--R42AM&list=PLQnljOFTspQXdkZLiYCCh_5RBP1-T-Rnx

Get the Fundamentals of Database Engineering udemy course

https://database.husseinnasser.com 

Detailed analysis on the Amazon US-EAST-1 Outage | The Backend Engineering Show18 Dec 202100:54:49

In this episode of the backend engineering show, we go through a deep dive to uncover the reason behind the outage on December 7th, 2021 Amazon outage.

RCA

https://aws.amazon.com/message/12721

All outage analysis videos

https://www.youtube.com/watch?v=dhZ5--R42AM&list=PLQnljOFTspQXdkZLiYCCh_5RBP1-T-Rnx

Get the Fundamentals of Database Engineering udemy course

https://database.husseinnasser.com

Become a Member on YouTube

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

The Log4j vulnerability | The Backend Engineering Show15 Dec 202100:35:41

In this episode of the backend engineering show, I discuss the log4j vulnerability (CVE-2021-44228 also known as log4shell) that took the Internet by storm.

0:00 Intro

1:00 log4j

5:30 How the attack started

11:00 Attack with DNS

17:00 Remote Code Execution

23:00 Remedy

31:00 Scanning

References

https://nvd.nist.gov/vuln/detail/CVE-2021-44228

https://youtu.be/oC2PZB5D3Ys

🧑‍🏫 Courses I Teach

https://husseinnasser.com/courses

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

Postgres HOT Optimization | The Backend Engineering Show03 Dec 202100:25:27

In this episode of the backend engineering show taken from my udemy Q&A I discuss the reasons behind Postgres HOT Optimization or heap only tuple. 

Postgresql index bloat | The Backend Engineering Show11 Nov 202100:27:53

Postgresql database implements MVCC by creating a new row version for any update/delete/or insert. While this is a sound implementation to support concurrent transactions reading old version of the rows, it does have some side effects and this is what I want to discuss in this episode of the backend engineering show.

0:00 Intro

1:00 Postgres MVCC design

6:42 MVCC on other databases

11:15 Side-effects of Row-versioning

17:00 Postgres HOT optimization

19:50 How Index bloat affects Performance

24:20 How Postgres 14 Addresses index bloat

Cards:

14:12 b-tree https://www.youtube.com/watch?v=a1Z40OC553Y

Resources

https://www.postgresql.org/docs/14/btree-implementation.html#BTREE-DELETION

What is the cost of Indexing too many columns - Udemy Q&A November 202105 Nov 202100:27:35

Head to https://database.husseinnasser.com to get a discount coupon for my introduction to database engineering.  

In this video, I answer some of your questions on the Introduction to Database Engineering Course.

when indexes are useless | The Backend Engineering Show30 Oct 202100:27:12

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

The cost rolling back transactions (postgres/mysql)21 Oct 202100:09:25
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
TLS and HTTPS Options in Microsoft IIS13 Oct 202100:20:13
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
Database Torn pages29 Feb 202400:15:33

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



On Graph Databases | The Backend Engineering Show10 Oct 202100:22:27

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 🧑‍🏫

Certificates gone bad | The Backend Engineering Show08 Oct 202100:28:09

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

Detailed analysis on the facebook outage06 Oct 202100:43:57

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

Facebook, WhatsApp, Instagram is Down here’s what might’ve caused it (early report)04 Oct 202100:08:09

Quick summary of the Facebook, Instagram and WhatsApp outage on Oct 4th 2021

How Airline WIFI allows Texting but not Media in WhatsApp/iMessage27 Sep 202100:10:56

In this episode I discuss my recent flight through Alaskan airlines and how they block certain services but allow only texting.

Spook.js - This will bloat Chrome even more | The Backend Engineering Show 13 Sep 202100:18:05

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

SSL Striping | The Backend Engineering Show06 Sep 202100:39:15
In this episode of the backend engineering show, I’ll go through the SSL Stripping attack, what caused it, what were the mitigations enforced to solve it, and why it is still a problem. 0:00 Intro 2:10 The Web Security Model 14:30 SSL Stripping Example 22:00 How to Solve SSL Stripping? 27:00 Limitations of HSTS 31: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
TCP/IP turns 40 | The Backend Engineering Show03 Sep 202100:29:16
Let us take a moment to appreciate the TCP/IP design by discussing it.
gRPC over HTTP/3 is finally a thing | Backend Engineering Show02 Sep 202100:47:54

The gRPC team just submitted a proposal to support HTTP/3. This is big news and we have been waiting for a long time for this. In this show, I’ll discuss why would you want gRPC, why gRPC picked HTTP/2, what is actually wrong with HTTP/2 and what HTTP/3 solves. And Finally, I’ll discuss what is wrong with HTTP/3 and pitfalls that you as gRPC user might run into. Let us discuss!

0:00 Intro

1:30 why gRPC

5:20 gRPC & HTTP/2

7:30 gRPC & HTTP/3

8:50 What is wrong with HTTP/2

29:30 What is good about HTTP/3

37:00 What’s wrong with HTTP/3

Resources

https://github.com/grpc/proposal/pull/256/files

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

KeepAlive | The Backend Engineering Show29 Aug 202100:35:30

I discuss keepalive in TCP and HTTP and its pros and cons


0:00 Intro

3:28 What is KeepAlive

8:30 TCP KeepAlive

10:30 Middleboxes and Single-Path TCP

16:30 Middle Boxes and Keepalive

19:30 The FTP KeepAlive trap

25:00 HTTP KeepAlive

30:00 What's a good keepalive timeout?

https://daniel.haxx.se/blog/2020/02/10/curl-ootw-keepalive-time/

https://datatracker.ietf.org/doc/html/rfc1122#section-4.2.3.6

https://datatracker.ietf.org/doc/html/rfc793#section-3.5

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

Cloudflare Open sources Pingora (NGINX replacement)28 Feb 202400:31:05

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⁠


The Anatomy of a Proxy Server | The Backend Engineering Show23 Aug 202100:23:59

In this video I’ll illustrate how a proxy server works under the hood. I Will go through how connection establishment works without a proxy, with an HTTP proxy and finally with HTTPS proxy in tunnel mode and TLS termination mode.

0:00 Intro

1:00 Connection Establishment without a Proxy

5:00 Connection Establishment with an HTTP Proxy

15:22 Connection Establishment with an HTTPS Proxy (Tunnel mode)

19:50 Connection Establishment with an HTTPS Proxy (TLS Termination)

cards

16:25 https://youtu.be/PAJ5kK50qp8 connect method

How Redis efficiently snapshots gigabytes of memory to disk (forking)21 Aug 202100:04:36

I discuss the concept of process forking, copy on write (COW) aka shadowing, and how Redis the in-memory database take advantage of that for asynchronous snapshotting,   


https://redis.io/topics/persistence

Table Clustering (Clustered Index) - The pros and cons20 Aug 202100:28:33
In this episode of the backend engineering show, I discuss database clustering. This is also known as table clustering, clustered index or Index organized table all names represents the same thing. I will talk about the benefits of clustering and also the disadvantages of implementing clustering. This feature is also implicitly implemented in certain databases. More readings https://www.postgresql.org/docs/14/sql-cluster.html https://oracle-base.com/articles/8i/index-organized-tables https://docs.microsoft.com/en-us/sql/relational-databases/indexes/clustered-and-nonclustered-indexes-described?view=sql-server-ver15 https://dev.mysql.com/doc/refman/5.7/en/innodb-index-types.html 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 🏭 Backend Engineering Videos in Order https://backend.husseinnasser.com 💾 Database Engineering Videos https://www.youtube.com/playlist?list=PLQnljOFTspQXjD0HOzN7P2tgzu7scWpl2 🎙️Listen to the Backend Engineering Podcast https://husseinnasser.com/podcast
Synchronous and asynchronous workloads are everywhere12 Aug 202100:35:26

In this video, I’ll explain synchronous vs asynchronous operations and then discuss examples where this shows up. In programming, real-time messaging, database systems, and operating systems.

0:00 Definition Synchronous vs Asynchronous

4:15 sync vs async In Programming

7:50 Sync vs Async In Real-time messaging

17:00 Sync vs Async In Database Replication

23:50 Sync vs Async in Database Commits

29:30 Sync vs Async in fsync Operating System cache

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

Microsoft IIS as a Backend - CPU Throttling09 Aug 202100:22:57
In this episode of the Backend Engineering show, I'll discuss the advanced section settings in the Application Pool in Internet Information Services in IIS. Chapters 0:00 Intro 0:30 What is an Application Pool 3:00 IIS Multi-processing 5:18 .NET CLR Version 6:00 32-bit apps 6:21 Pipeline Mode (CGI vs ISAPI vs Native) 8:45 Max Queue 10:18 CPU Limiting 16:00 Processor Affinity 20:00 Summary
Partial Indexing | Backend Engineering Show03 Aug 202100:18:39
While the benefits of partial indexes can have a great impact on your database system performance, the implications are also great if misused. Let us discuss partial indexing (Also known as filtered indexes in SQL Server) 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
MySQL Statement-based Replication might not be a good idea 31 Jul 202100:17:46
Replication is the process of pushing changes from the master node to worker replica nodes in a database system to allow for horizontal scalability. One of the methods of replication is statement-based which is popular in MySQL. In this episode of the Backend Engineering Show, I explain why statement-based replication is actually a bad idea. Resources https://www.youtube.com/watch?v=jsWwFL_iqVM https://dev.mysql.com/doc/refman/8.0/en/replication-sbr-rbr.html https://engineering.fb.com/2021/07/22/data-infrastructure/mysql/ https://eng.uber.com/postgres-to-mysql-migration/
Can Redis be used as a Primary database?30 Jul 202100:13:05

This episode of the backend engineering show is sponsored by my friends at RedisLabs. I’m going to break this video into three sections, we will first define features that qualify a primary database? Then we will see if Redis actually check the boxes of a primary database and finally we explore the features of Redis that take it beyond a primary database. I was personally surprised by most of those.

Chapters

0:00 Intro

1:00 What Qualifies a primary database

3:00 Does Redis Check the boxes?

7:40 beyond Redis

Resources

Try Free: https://bit.ly/3hWr1Uj

Redis Advantages: https://bit.ly/3ztx2xw

Martin Fowler talking about Impedance Mismatch: https://bit.ly/36ZEOD8

Transactions: https://bit.ly/3wTMKAw

ACID 0.5 MM Ops/Seconds on AWS: https://bit.ly/3ruMB5s

Consistency and Durability: https://bit.ly/3wYNLr8

Watch and Rollbacks: https://redislabs.com/blog/you-dont-need-transaction-rollbacks-in-redis/#:~:text=Redis%20has%20a%20main%2C%20single,is%20required%20to%20implement%20WATCH

Redis Enterprise https://redislabs.com/redis-enterprise/advantages/

https://redis.io/topics/transactions#cas

https://redislabs.com/blog/you-dont-need-transaction-rollbacks-in-redis/#:~:text=Redis%20has%20a%20main%2C%20single,is%20required%20to%20implement%20WATCH.

https://docs.redislabs.com/latest/rs/concepts/data-access/consistency-durability/

Why the Internet went dark for two hours - Let's discuss the Akamai outage22 Jul 202100:00:55

There was a two hours DNS outage on a company called Akamai that broke several services today July 22, 2021, https://appleinsider.com/articles/21/07/22/akamai-dns-problem-causing-wide-internet-issues



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

Microsoft IIS as a Backend - HTTP/HTTPS Bindings20 Jul 202100:11:42

IIS (Internet Information Services) is Microsoft's Windows web server. It is feature-rich and very easy to enable. I have been using it for a long time but I noticed I never actually make a video about it.

In this video, I'll explore the IIS binding and explain all the options in that form.

I might make more videos in the future to explore different aspects of this web server.

Videos mentioned

Leaky abstractions https://youtu.be/4a3bI7AYsy4

HTTP/2 Limitations https://youtu.be/CUiBVTcgvBU

OCSP Stapling https://youtu.be/g08Omc1wi0s

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

The Internals of MongoDB19 Feb 202400:44:57

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.

NodeJS July 2021 Security Releases09 Jul 202100:11:14

In today's show I go through the NodeJS Security Releases for the month of July 2021, lots of interesting vulnerabilities to discuss.

0:00 Intro

1:00 CVE-2021-22918 - libuv DNS Out of bounds Crash

3:40 CVE-2021-22921 - Node Windows installer Local Privilege Escalation

7:30 CVE-2021-27290 - ssri Regular Expression Denial of Service (ReDoS)

Resources

https://nodejs.org/en/blog/vulnerability/july-2021-security-releases/

https://hackerone.com/reports/1211160

https://snyk.io/vuln/SNYK-JS-SSRI-1085630

Scaling CPU-intensive Backends - The Backend Engineering Show05 Jul 202100:20:22

🧑‍🏫 Courses I Teach

https://husseinnasser.com/courses


In this episode, I’d like to discuss the methods of scaling CPU-bound or intensive workloads on the backend. This show will discuss the scaling of the workload on a single machine taking full advantage effectively of all its resources, then we will discuss horizontal scalability to multiple machines.

0:00 Intro

1:00 What do I mean by Scaling

3:20 CPU-Intensive/Bound Workload

6:00 Effective Scaling CPU-Bound Backends in Single Machine

12:00 How Hyperthreading can be useful

15:00 Horizontally Scale to multiple Machines

SO_REUSEPORT https://lwn.net/Articles/542629/

@Gary Explains Hyperthreading https://www.youtube.com/watch?v=mSZpDF-zUoI


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

Should you go with an Optimistic or Pessimistic Concurrency Control Database?01 Jul 202100:21:46

MongoDB, Postgres, Microsoft SQL Server, or MySQL, or any other database manages concurrency control differently. There are two methods, pessimistic and optimistic, both have their pros and cons. Let explore how different databases implement this and what is the effect on performance/scalability.

This is often known as Optimistic vs pessimistic locking. Although I don't really like to use locking with this because it confuses the story.

0:00 Intro

2:20 What is Concurrency Control

6:00 Pessimistic Concurrency Control

14:50 Optimistic Concurrency Control


Resources

https://www.postgresql.org/docs/13/mvcc.html

http://source.wiredtiger.com/develop/architecture.html

https://docs.microsoft.com/en-us/troubleshoot/sql/performance/resolve-blocking-problems-caused-lock-escalation


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 

© My Podcast Data