Hussein Nasser
Hussein Nasser
  • 896
  • 23 116 649
IO uring gets Zero Copy network operations
Fundamentals of Operating Systems Course
os.husseinnasser.com
Linux I/O expert and subsystem maintainer Jens Axboe has submitted all of the IO_uring feature updates ahead of the imminent Linux 6.10 merge window.
In this video I explore this with a focus on what zerocopy.
0:00 Intro
0:30 IO_uring gets faster
2:00 What is io_uring
7:00 How Normal Copying Work
12:00 How Zero Copy Works
13:50 ZeroCopy and TLS
www.phoronix.com/news/Linux-6.10-IO_uring
lore.kernel.org/io-uring/fef75ea0-11b4-4815-8c66-7b19555b279d@kernel.dk/?s=09
Backend Troubleshooting Course
performance.husseinnasser.com
Fundamentals of Backend Engineering (link redirects to udemy with coupon)
backend.husseinnasser.com
Fundamentals of Networking for Effective Backends udemy course (link redirects to udemy with coupon)
network.husseinnasser.com
Fundamentals of Database Engineering udemy course (link redirects to udemy with coupon)
database.husseinnasser.com
Follow me on Medium
medium.com/@hnasr/membership
Introduction to NGINX (link redirects to udemy with coupon)
nginx.husseinnasser.com
Python on the Backend (link redirects to udemy with coupon)
python.husseinnasser.com
Become a Member on UA-cam
ua-cam.com/channels/_ML5xP23TOWKUcc-oAE_Eg.htmljoin
Buy me a coffee if you liked this
www.buymeacoffee.com/hnasr
Arabic Software Engineering Channel
ua-cam.com/channels/hWZsjdoRvZ0T9QWZOD6UpA.html
🔥 Members Only Content
ua-cam.com/play/UUMO_ML5xP23TOWKUcc-oAE_Eg.html
🏭 Backend Engineering Videos in Order
backend.husseinnasser.com
💾 Database Engineering Videos
ua-cam.com/play/PLQnljOFTspQXjD0HOzN7P2tgzu7scWpl2.html
🎙️Listen to the Backend Engineering Podcast
husseinnasser.com/podcast
Gears and tools used on the Channel (affiliates)
🖼️ Slides and Thumbnail Design
Canva
partner.canva.com/c/2766475/647168/10068
Stay Awesome,
Hussein
Переглядів: 9 815

Відео

They made Python faster with this compiler option
Переглядів 11 тис.Місяць тому
Fundamentals of Operating Systems Course oscourse.win Looks like fedora is compiling cpython with the -o3 flag, which does aggressive function inlining among other optimizations. This seems to improve python benchmarks performance by at most 1.16x at a cost of an extra 3MB in binary size (text segment). Although it does seem to slow down some benchmarks as well though not significantly. O1 - lo...
They made Kafka 80% faster by switching file systems
Переглядів 33 тис.Місяць тому
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...
Fundamentals of Operating Systems
Переглядів 11 тис.Місяць тому
Head to os.husseinnasser.com to grab my new OS course Operating systems (their kernel specifically) orchestrate many processes, allow access to memory, disk, network and execute processes by scheduling them to the CPU. Sounds simple when we put it this way but this task is vast. Writing efficient programs depends on how much understanding the engineer has in OS kernel. When we access a 32 bit i...
Google Patches Linux kernel with 40% TCP performance
Переглядів 127 тис.3 місяці тому
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 www.phoronix.com/news/Linux-6.8-Networking lore.kernel.org/netdev/20231129072756.3684495-1-lixiaoyan@g...
Cloudflare Open sources Pingora (NGINX replacement)
Переглядів 29 тис.3 місяці тому
Cloudflare has announced they are open sourcing Pingora as a networking framework! This is their in-house Rust proxy they built few years ago to replace NGINX This is kind of Big news for few reasons, let us discuss blog.cloudflare.com/pingora-open-source/? 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-t...
The Cost of Memory Fragmentation
Переглядів 7 тис.4 місяці тому
Fragmentation is a very interesting topic to me, especially when it comes to memory. While virtually memory does solve external fragmentation (you can still allocate logically contiguous memory in non-contiguous physical memory) it does however introduce performance delays as we jump all over the physical memory to read what appears to us for example as contiguous array in virtual memory. You s...
How a Machine Becomes a Router | ip_forward
Переглядів 6 тис.4 місяці тому
Recently I learned how the Linux option net.ipv4.ip_forward can turn your machine into a router. I have been using this option in past when working with iptables but never paid attention to how it works. I explore this here. You see, when your NIC receives a frame from the network with a MAC address the frame is copied to the kernel if the MAC address matches the NIC’s. If doesn’t match the NIC...
The Real Hidden Cost of a Request
Переглядів 28 тис.6 місяців тому
In this video I explore the hidden costs of sending a request from the frontend to the backend More details here medium.com/@hnasr/the-journey-of-a-request-to-the-backend-c3de704de223 Discovering Backend Bottlenecks: Unlocking Peak Performance performance.husseinnasser.com Fundamentals of Backend Engineering Design patterns udemy course (link redirects to udemy with coupon) backend.husseinnasse...
Why create Index blocks writes
Переглядів 11 тис.7 місяців тому
Fundamentals of Database Engineering udemy course (link redirects to udemy with coupon) database.husseinnasser.com Why create Index blocks writes In this video I explore how create index, why does it block writes and how create index concurrently work and allow writes. 0:00 Intro 1:28 How Create Index works 4:45 Create Index blocking Writes 5:00 Create Index Concurrently Discovering Backend Bot...
Before you move to HTTP/3 ...
Переглядів 16 тис.8 місяців тому
HTTP/3 is getting popular in the cloud scene but before you migrate to HTTP/3 consider its cost. I explore it here. 0:00 Intro HTTP/3 is getting popular 3:40 HTTP/1.1 Cost 5:18 HTTP/2 Cost 6:30 HTTP/3 Cost blog.apnic.net/2023/09/25/why-http-3-is-eating-the-world/ Discovering Backend Bottlenecks: Unlocking Peak Performance performance.husseinnasser.com Fundamentals of Backend Engineering Design ...
Deep dive on how static files are served with HTTP (kernel, sockets, file system, memory, zero copy)
Переглядів 20 тис.8 місяців тому
In this video I do a deep dive on how serving static files work in web servers. 0:00 Intro 2:00 Overview 3:00 Request handling and Receive Queue 8:50 Reading file from disk 13:50 Response and the Send Queue 24:00 Sending Response to the Client Discovering Backend Bottlenecks: Unlocking Peak Performance performance.husseinnasser.com Fundamentals of Backend Engineering Design patterns udemy cours...
The Pros and Cons of Encrypted Client Hello
Переглядів 6 тис.8 місяців тому
Discovering Backend Bottlenecks: Unlocking Peak Performance performance.husseinnasser.com The Encrypted Client Hello or ECH is a new RFC that encrypts the TLS client hello to hide sensitive information like the SNI. In this video I go through pros and cons of this new rfc. 0:00 Intro 2:00 SNI 4:00 Client Hello 8:40 Encrypted Client Hello 11:30 Inner Client Hello Encryption 18:00 Client-Facing O...
The effect of Random UUID on database performance
Переглядів 69 тис.9 місяців тому
In this video I whiteboard how UUIDs hurt write (and read performance) when used on secondary and primary indexes. UUIDv4 are the most popular but they are truly random. Compared to snowflakes, ULID or UUIDv7 or even UUIDv1. 0:00 UUIDv4 2:30 B Tree Indexes and UUID 5:30 Random UUIDv4 Insert Workload 12:40 Ordered Insert Workload (UUID7/ULID, Sequence) 14:00 Shared buffer pool flushes 15:00 Shop...
how greedy are your processes? | Linux niceness
Переглядів 16 тис.10 місяців тому
how greedy are your processes? | Linux niceness
How CPU Efficient is your App?
Переглядів 14 тис.10 місяців тому
How CPU Efficient is your App?
How does the Kernel manage backend Connections?
Переглядів 11 тис.10 місяців тому
How does the Kernel manage backend Connections?
What happens before the Backend gets the Request
Переглядів 47 тис.10 місяців тому
What happens before the Backend gets the Request
They Enabled Postgres Partitioning and their Backend fell apart
Переглядів 38 тис.11 місяців тому
They Enabled Postgres Partitioning and their Backend fell apart
New course alert - Unlocking Backend Performance
Переглядів 16 тис.Рік тому
New course alert - Unlocking Backend Performance
WebTransport is a Game Changer Protocol
Переглядів 53 тис.Рік тому
WebTransport is a Game Changer Protocol
Your SSD lies but that's ok .. I think | Postgres fsync
Переглядів 20 тис.Рік тому
Your SSD lies but that's ok .. I think | Postgres fsync
The problem with software engineering
Переглядів 64 тис.Рік тому
The problem with software engineering
Clustered Collections makes Mongo faster but there is a cost
Переглядів 22 тис.Рік тому
Clustered Collections makes Mongo faster but there is a cost
Prime Video Swaps Microservices for Monolith: 90% Cost Reduction
Переглядів 157 тис.Рік тому
Prime Video Swaps Microservices for Monolith: 90% Cost Reduction
A Deep Dive in How Slow SELECT * is
Переглядів 36 тис.Рік тому
A Deep Dive in How Slow SELECT * is
AWS Serverless Lambda Supports Response Streaming
Переглядів 26 тис.Рік тому
AWS Serverless Lambda Supports Response Streaming
The Cloudflare mTLS vulnerability - A Deep Dive Analysis
Переглядів 9 тис.Рік тому
The Cloudflare mTLS vulnerability - A Deep Dive Analysis
The Virgin Media ISP outage - What happened?
Переглядів 6 тис.Рік тому
The Virgin Media ISP outage - What happened?
GitHub SSH key is Leaked - How bad is this?
Переглядів 67 тис.Рік тому
GitHub SSH key is Leaked - How bad is this?

КОМЕНТАРІ

  • @pauloiscoding
    @pauloiscoding 9 годин тому

    Deixei o like logo no início do vídeo, mas no final tirei o like pra poder dar like de novo.

  • @mohamedshahrul1750
    @mohamedshahrul1750 17 годин тому

    @5:19 u meant to say ssh client but instead u said ssh server? can u please confirm? pleaseeee

  • @dtmhyoutu
    @dtmhyoutu 21 годину тому

    @hnasr I got pending when creating offer with lc in chrome, but it returned ice candidate on firefox. What should I do to get ice candidate from lc.create_offer on chrome?

  • @rv0_0
    @rv0_0 День тому

    I dont know how did i landed here, but i am glad that i landed here.

  • @energy-tunes
    @energy-tunes День тому

    you really seem hyperautistic in a good way and knowledgeable its a shame you shill your courses every 2 minutes </3

  • @vasujain2
    @vasujain2 День тому

    What a beautiful thumbnail man!

  • @Hamza-Shreef
    @Hamza-Shreef День тому

    I don't know but i felt confused some times and got no clue whether it's SQL or Mongo that he is talking about at the first part cuz of row terminology that he abused its usage a lot. but overall the video is nice.

  • @wreckless_gaming
    @wreckless_gaming День тому

    WE NEED MORE IIS VIDEOS!!!

  • @thebrijpatel
    @thebrijpatel 2 дні тому

    I remember watching this 3 years ago. Back then I was a Jr. dev and was not interviewing anyone. Now that I've started interviewing folks as a Sr. I always make sure to ask this question to the right candidates.

  • @tobbymarchal3140
    @tobbymarchal3140 2 дні тому

    Is the real katana?

  • @MaxPrehl
    @MaxPrehl 3 дні тому

    This is a great breakdown! Wish you also had some visual aids!

  • @ProgrammingWIthRiley
    @ProgrammingWIthRiley 3 дні тому

    Hey Dude you’re right

  • @mrstatler
    @mrstatler 3 дні тому

    It's confusing... has the firewall only one network interface or it's just to explain the idea?

  • @SEASLU
    @SEASLU 3 дні тому

    Thanks Hussein. You explain everything so well. I wonder if there's a way for server to know if messages were delivered successfully? What if some messages are dropped?

  • @alainpannetier2543
    @alainpannetier2543 4 дні тому

    2:46 TCP window size?

  • @theroadofchampion
    @theroadofchampion 4 дні тому

    I think, i finish of all your 3 playlist, before this month end. Challenge accepted. And thank you for content 👍

  • @jhguygih
    @jhguygih 4 дні тому

    Great content. I have one question, where can I find material explaining the pros and cons of each tree? You mentioned range querie on B tree is not as efficient. Why is that? Why we need a find for every node and not collect results once we find the end of the range

  • @naryno3999
    @naryno3999 4 дні тому

    That's very helpful! Thanks.

  • @imanshirkhodaee1704
    @imanshirkhodaee1704 4 дні тому

    great tnx

  • @danielbocelli
    @danielbocelli 5 днів тому

    Please explain to me why a second column with a timestamp couldn’t serve this purpose?

  • @cheikhcheikh-hi5ey
    @cheikhcheikh-hi5ey 5 днів тому

    Very nice story

  • @KrAsHeDD
    @KrAsHeDD 5 днів тому

    It was very short indeed. lol I totally enjoyed watching and learnt something. Thank you!

  • @Alysha-nx7ko
    @Alysha-nx7ko 6 днів тому

    baddo desuka, lmaooooo watching too much anime? baddo desu yo!

  • @sg9257
    @sg9257 6 днів тому

    Being 5 years old, this still has to be the best CORS resource on internet.

  • @anonymousvevo8697
    @anonymousvevo8697 6 днів тому

    The video i was looking for a long time ago, Thanks alot

  • @mrstatler
    @mrstatler 6 днів тому

    I guess this is not important but shouldn't source MAC address of packer 3 (leaving the Proxy) in the 3rd case (via Proxy) be different than FF (gateway MAC), like Proxy MAC address?

  • @rizwanahmed3555
    @rizwanahmed3555 6 днів тому

    Nice explanation, specially with fetchAPI. Thanks @hussein

  • @rukekakambari4314
    @rukekakambari4314 7 днів тому

    Unfortunately here again in 2024 complaining almost the same on postgres. On the side of engineering your statement is true when dealing with pros that understands what they do and how things works under the hood. Seriously, I found postgres interesting but for tool of choice I would go MariaDb in most cases

  • @yapayzeka
    @yapayzeka 7 днів тому

    why you bother. use redis directly 🤦‍♂

  • @melanieburger6186
    @melanieburger6186 7 днів тому

    What were those front-end content creators that were referenced? Dev Web Simplified?

  • @deheinrich4785
    @deheinrich4785 7 днів тому

    If the nodes can look up the CID to see which nodes are in a circuit, then the circuit nodes arent really secret? What am I missing?

  • @Alwaysiamcaesar
    @Alwaysiamcaesar 8 днів тому

    Why does your command prompt say nhttpd? Are you not building the container on your local machine?

  • @rezaghasemzadeh9440
    @rezaghasemzadeh9440 8 днів тому

    one of the best tutorials about cookies, thank you

  • @chaitanyasharma6270
    @chaitanyasharma6270 8 днів тому

    you are hilarious

  • @manw3bttcks
    @manw3bttcks 8 днів тому

    It's a up to 40% reduction of cpu overhead not necessarily "my PC now sends 40% more bytes per second"

  • @Diobeticlife
    @Diobeticlife 9 днів тому

    Hi mate, nice video! It makes things clearer and reveals the magic behind the scenes.

  • @gangstaberry2496
    @gangstaberry2496 9 днів тому

    This is the best explanation I have found so far... Thank you so much ^^

  • @ritwizsinha1261
    @ritwizsinha1261 9 днів тому

    In postgres during reading or selects unless the query specifically asks for a lock their is no lock acquired because of the convenience of mvcc

  • @user-nf7xi8xi4t
    @user-nf7xi8xi4t 9 днів тому

    will this conf work for tcp ?