Threads and Connections | The Backend Engineering Show
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
Fundamentals of Operating Systems course oscourse.win
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!
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.
Thanks a lot! Absolutely love those long format videos
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.
This is so imprtant to uncover abstracted things. Great content
This guy is really easy to listen to and understand.
Recently discovered your channel. Love the way you teach things.
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.
Loved your way of explanation man.. great voice with expression 🙂
BROTHER, YOU ARE THE BEST!!! You oooh really helped me!! THANK YOU VERY MUCH!
You’re helping me level up so much. Thank you!!
I’d love an episode in Arabic!! I’m sure it’s beautiful
I admire your way of talking
thanks Hussein. great content as always.
Check out my Fundamentals of Networking for Effective Backends udemy course, Head to network.husseinnasser.com for a discount coupon.
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.
@@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.
شكراً حبيبي حسين ويعطيك ألف عافية :)
Ty for sharing your knowledge ❤️
knowledge bomb drops & big smile on my face 😺
this video was gold for me
thanks for sharing your knowledge
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.
It's working thanks my friend
im enjoying your videos.
@Hussein, love it brah ! ...laid back, that's how it should be!
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
ماكنت اعرف انك تتكلم عربي 😅
مبدع اخي حسين استفدت الكثير
Thanks that was an informative topic
great, thanks
Thanks! Great content!
Thanks Justin
"Threads sitting near water cooler, drinking and chatting" 🤣🤣🤣🤣
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
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.
Great video Hussein! What are your thoughts on surreal db?
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.
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
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.
A detailed analysis on Hotstar cricket streaming would be a great topic to talk about. Millions of concurrent users at a time.
Pada pendapat saya, ini sgt benar
We wants more topic on software programming
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?
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
I agree
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?
It’s all cgroups and namespaces on Linux
@@sheriffola You're right bro. But wouldn't a detailed video of Hussein be great.?
@@miresoman1769 +1
@@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
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!
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
Your literal plug kind of obscures the elapsed_time:total_time and the chapter name😂
pls also paste the case study links u showed in the video like the ES, MongoDB & PostgreSQL?
🔥🔥
::
is the all ipv6 address
same as 0.0.0.0 for ipv4
as :: represents 0:0:0:0:0:0:0:0
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?
How can I work with you man?
Hey Hussien why is this one removed from Google Podcasts app??
Odd it shouldn’t be let me check
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
@@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
Hussein: Request you to cover SYN Cookies in a video.
why don't you use PPT or any tool?
What threads hurt you :'c
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.
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? 🌞
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?