Threads and Connections | The Backend Engineering Show

Sdílet
Vložit
  • čas přidán 7. 06. 2024
  • In this episode of the backend engineering show I discuss the evolution of multi-threading apps, their pros and cons and then I go through 5 threading model and how they interleave with backend connection management between the threads and requests handlings. Enjoy
    0:00 Intro
    2:00 Single Threading
    6:30 Multi-Threading
    14:15 Connection Listener
    20:15 How Connections are Established
    29:00 Single Listener/Worker thread
    33:30 Single Listener, Multiple Worker threads
    39:00 Single Listener, Multiple Workers with load balancing
    42:10 Multiple Listeners on the same port (SO_REUSEPORT)
    45:20 Multiple Single Threaded Backend
    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
    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 CZcams
    / @hnasr
    Arabic Software Engineering Channel
    / @husseinnasser
    🔥 Members Only Content
    • Members-only videos
    🏭 Backend Engineering Videos in Order
    backend.husseinnasser.com
    💾 Database Engineering Videos
    • Database Engineering
    🎙️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/6...
    Stay Awesome,
    Hussein
  • Věda a technologie

Komentáře • 68

  • @hnasr
    @hnasr  Před 25 dny

    Fundamentals of Operating Systems course oscourse.win

  • @ChrisGreer
    @ChrisGreer Před rokem +41

    Since I am usually analyzing TCP from the wire, I’m looking forward to learning more about how the kernel handles these connections. Great topic Hussein!

  • @rahulsingha1000
    @rahulsingha1000 Před rokem +4

    Hey Hussein, Your channel has helped me understand a lot of things about how backend systems work. Appreciate the effort and time you put into making these videos.

  • @rankostevanovich2496
    @rankostevanovich2496 Před rokem +2

    Thanks a lot! Absolutely love those long format videos

  • @miguelgarciadasilva
    @miguelgarciadasilva Před rokem +4

    Thanks for sharing. I think many of the multithreading problems with I/O are related to the 1:1 relation between applications threads and os threads.
    A lot of improvements will come with virtual threads option and the scheduling by software.
    These abstractions over the os can give a more performant use of the underlaying resources.

  • @syedshahzaibzafar2422
    @syedshahzaibzafar2422 Před rokem +1

    This is so imprtant to uncover abstracted things. Great content

  • @darksalmon
    @darksalmon Před 8 měsíci +1

    This guy is really easy to listen to and understand.

  • @DarioMader
    @DarioMader Před rokem

    Recently discovered your channel. Love the way you teach things.

  • @HarshKapadia
    @HarshKapadia Před rokem

    What an amazing video! Thank you SO very much for all the effort you put in, Hussein! It helps all of us a lot. Thank you.

  • @Joker-bt4lj
    @Joker-bt4lj Před rokem +1

    Loved your way of explanation man.. great voice with expression 🙂

  • @AkashDas-kf3ye
    @AkashDas-kf3ye Před rokem

    BROTHER, YOU ARE THE BEST!!! You oooh really helped me!! THANK YOU VERY MUCH!

  • @dixztube
    @dixztube Před rokem

    You’re helping me level up so much. Thank you!!
    I’d love an episode in Arabic!! I’m sure it’s beautiful

  • @mahmoudtaher5588
    @mahmoudtaher5588 Před rokem +2

    I admire your way of talking

  • @sayonarasun1577
    @sayonarasun1577 Před rokem

    thanks Hussein. great content as always.

  • @hnasr
    @hnasr  Před rokem +10

    Check out my Fundamentals of Networking for Effective Backends udemy course, Head to network.husseinnasser.com for a discount coupon.

    • @mritunjaykumar5617
      @mritunjaykumar5617 Před rokem +4

      I took your Nginx course and absolutely loved it. Right now i am going through your networking course and the intricacies I'm getting to know about, totally loved it.
      Just a small request if you allow me, I would really love if you could create a course on operating systems (Linux based being my favourite). It would really act like a bridge for many other people like me who primarily works as a backend developer but totally unaware of the part performed by the operating-system behind it.
      Oh, and I took your database course as well, just after I finish the networking, I will be going through it.
      So much to learn from you, you are an absolute gem. Thanks Hussein.
      Keep up the good work.

    • @sameerakhatoon9508
      @sameerakhatoon9508 Před 6 měsíci

      ​@@mritunjaykumar5617 totally, i took networking course & that had really helped me to understand networks.
      i would also like to request for a course on operating system, currently i am reading books to understand operating systems & course would accelerate my journey.

  • @sabuein
    @sabuein Před 10 měsíci

    شكراً حبيبي حسين ويعطيك ألف عافية :)

  • @kouroshtajallie1366
    @kouroshtajallie1366 Před rokem +1

    Ty for sharing your knowledge ❤️

  • @prashanttripathi5763
    @prashanttripathi5763 Před rokem +1

    knowledge bomb drops & big smile on my face 😺

  • @42Siren
    @42Siren Před rokem

    this video was gold for me

  • @bashardlaleh2110
    @bashardlaleh2110 Před rokem

    thanks for sharing your knowledge

  • @oah8465
    @oah8465 Před rokem +5

    The problem with multiple threads listening to the same port is that u will have the "thundering herd problem. This is why nginx favors one master thread receiving and distributing to the other worker threads.
    fantastic video by the way. Thx from DTC.

  • @alibabaictsolution
    @alibabaictsolution Před rokem

    It's working thanks my friend

  • @nikbl4k
    @nikbl4k Před 12 dny

    im enjoying your videos.

  • @arunkumartj9377
    @arunkumartj9377 Před rokem

    @Hussein, love it brah ! ...laid back, that's how it should be!

  • @mridul1161
    @mridul1161 Před rokem +1

    hussein Nasser just opens up basic of software engineering in front of us...
    we use this every day still know so less about them
    great video

  • @osamaalsanaani6031
    @osamaalsanaani6031 Před rokem

    ماكنت اعرف انك تتكلم عربي 😅
    مبدع اخي حسين استفدت الكثير
    Thanks that was an informative topic

  • @saileshkarki8762
    @saileshkarki8762 Před rokem +2

    great, thanks

  • @maddriven07
    @maddriven07 Před rokem +1

    Thanks! Great content!

  • @dvsingh
    @dvsingh Před rokem +4

    "Threads sitting near water cooler, drinking and chatting" 🤣🤣🤣🤣

  • @void_star_void
    @void_star_void Před rokem +2

    Interesting take in the end for utilizing process cores using the container approach, however it doesn't simplify the concurrency problems all together. If you have multiple processes and there exists an endpoint that can for example process a customer credit charge multiple times when two similar requests come in. We still need the dedup process

    • @qaerdogan
      @qaerdogan Před rokem

      If you are not building good business level on top of core level you can't avoid to face it. I suggest you to look strategy patterns and tactical patterns.

  • @kevn7464
    @kevn7464 Před rokem

    Great video Hussein! What are your thoughts on surreal db?

  • @manarlab84
    @manarlab84 Před rokem

    Thank you so much - have you tried to trace a listner thread (let's say a Nodejs one) using strace and ltrace or similar tools. It will be cool to show us how things work on an operating system level in another video.

  • @AliHussein-go9qx
    @AliHussein-go9qx Před 10 měsíci +1

    Your fifth solution is very challenging. For instance, in the case of caching contents in nginx, I am not sure if all containers can use the same nginx volume for caching

  • @rahulsingha1000
    @rahulsingha1000 Před rokem

    Hey HUSSEIN, Can you please make a long format vide explaining about these things that we have on different OS like .bash, .zsh, .bat, etc. I have a hard time understanding what these things are and what they really do.

  • @akkimahajan6799
    @akkimahajan6799 Před rokem +1

    A detailed analysis on Hotstar cricket streaming would be a great topic to talk about. Millions of concurrent users at a time.

  • @lynxxlynxxlynxx
    @lynxxlynxxlynxx Před rokem

    Pada pendapat saya, ini sgt benar

  • @testtest9273
    @testtest9273 Před rokem

    We wants more topic on software programming

  • @user-jh1vx3vx1c
    @user-jh1vx3vx1c Před rokem +1

    If every thread gonna accept connections, won't that interfere with a work stealing algorithms used in the runtime, f.e. like in Golang? Don't you think that deciding on the current loadness of the thread is not that flexible as detecting it on runtime?

  • @sundaramjha1776
    @sundaramjha1776 Před rokem +5

    AWS is very popular now, if u have an idea please create a video on AWS, Kubernetes, Netflix conductor etc. Its really difficult to understand the fundamental on other CZcams videos. Your video we easily understand it fundamentally. Love Your work. Thanks

  • @miresoman1769
    @miresoman1769 Před rokem +4

    Bro please please make a video about how docker instance is framed inside the operating system. What does actually happen when running a docker container?

    • @sheriffola
      @sheriffola Před rokem

      It’s all cgroups and namespaces on Linux

    • @miresoman1769
      @miresoman1769 Před rokem +3

      @@sheriffola You're right bro. But wouldn't a detailed video of Hussein be great.?

    • @anchalsharma0843
      @anchalsharma0843 Před rokem

      @@miresoman1769 +1

    • @vigneshwarm
      @vigneshwarm Před rokem

      @@miresoman1769 yeah my understanding is that namespace helps the isolating part and cgroup handles the cpu allocation and stuffs. I never bothered to learn more as it was too low level for me. I'd love to see a proper explanation from Hussain

  • @paulosantos1289
    @paulosantos1289 Před rokem +14

    Really like your videos! however, these long format ones, are sometimes hard to sit through. This is because I feel like this video could have been summarised in about 1/4th of the time. Tangents are fine but you find yourself getting lost in things that are not even properly explored and then coming back to the original thread of thought and repeating yourself. Regardless, good video overall!

    • @tejasarlimatti8420
      @tejasarlimatti8420 Před rokem +5

      100% agreed. can you check `jordan has no life` channel. he puts out System Design / DSA videos. he's very concise and has an excellent way of explaining things. just saying it'd be great if it were more like that

  • @DoctorAndy46
    @DoctorAndy46 Před rokem

    Your literal plug kind of obscures the elapsed_time:total_time and the chapter name😂

  • @akashagarwal6390
    @akashagarwal6390 Před rokem

    pls also paste the case study links u showed in the video like the ES, MongoDB & PostgreSQL?

  • @haythamasalama0
    @haythamasalama0 Před rokem

    🔥🔥

  • @alfaazfaria2056
    @alfaazfaria2056 Před rokem

    ::
    is the all ipv6 address
    same as 0.0.0.0 for ipv4
    as :: represents 0:0:0:0:0:0:0:0

  • @scottspitlerII
    @scottspitlerII Před rokem

    How exactly does Facebook break up all of that traffic for their ip address range into one data center? Like how much traffic flows through one box before it gets forwarded down into the rest of their DC?

  • @himansrivastava
    @himansrivastava Před rokem

    How can I work with you man?

  • @narutokunn
    @narutokunn Před rokem +1

    Hey Hussien why is this one removed from Google Podcasts app??

    • @hnasr
      @hnasr  Před rokem

      Odd it shouldn’t be let me check

    • @hnasr
      @hnasr  Před rokem

      Just checked. Sounds like it’s available when you sign in to google but not available when signed out. Very odd, ill check with anchor

    • @narutokunn
      @narutokunn Před rokem

      @@hnasr Actually in my case I am logged in but the most recent episode I see is the one on Memcached Architecture.
      Thanks for the help btw

  • @darpanmalhotra2
    @darpanmalhotra2 Před rokem

    Hussein: Request you to cover SYN Cookies in a video.

  • @shasha6538
    @shasha6538 Před rokem

    why don't you use PPT or any tool?

  • @AmadeusMoon
    @AmadeusMoon Před 11 měsíci

    What threads hurt you :'c

  • @annielee747
    @annielee747 Před rokem +2

    Great to watch your videos, we are currently recruiting advertising partners. Your videos are great for their unique style and wide popularity. Our company sincerely hopes to cooperate with you and hope that we can work together.

  • @TomerBenDavid
    @TomerBenDavid Před rokem

    Why do you wear those white thingies on each side? 🤔 Its cute but curious to know why is it cancelling noise for you to concentrate? 🌞

  • @scottspitlerII
    @scottspitlerII Před rokem +1

    What’s so wrong with a bunch of parked idle threads? Aren’t they not even being scheduled until any data is ready for the to read? They are going to just use an additional like 12k of heap space wasting their stack etc. I guess what’s the downside? Won’t the greedy thread still win with the scheduler?