This is really awesome. Got satisfying answers for the doubts I had on contention for CAS operation by two threads. If one wants to be like him your thinking should be like DFS graph traversal, keep digging the problem deeper until all your doubts are resolved.
In optimistic locking there is a concept of Time-of-check to time-of-use when we are checking the old value to be old value => so that we can write it to the new value. there can be another thread which will actually update it in the time being of this checking and updating. and current thread might be a case of also picking up old value = old value. here the race condition might occur
Please help me in this scenario, If my app is load balanced and I have 2 nodes running under it. When 2 requests arrived to update the same resouce. How can Optimistic Locking works? There will be 2 machines and each can execute compare_and_swap or (TOC and TOU) same time.
Quick question around cpu context switch. Most CPU’s have multiple cores and this comparison function would be running on a single core. Does that mean other cores are also at halt for the time being or they can execute a parallel thread?
@AsliEngineering In the architecture where the other cores gets blocked, Are we using locks (if yes then won't it be a pessimistic approach)? And how is it implemented?
Great Video !!! I wonder how do you choose your content and what resources you used to learn fundamental concepts in multithreading ? Really Great Work and I look forward to every new video.
Please help me in this scenario, If my app is load balanced and I have 2 nodes running under it. When 2 requests arrived to update the same resouce. How can Optimistic Locking works? There will be 2 machines and each can execute compare_and_swap or (TOC and TOU) same time or a race condition may be.
Today, I realised going through the content only once is not enough, as a human we loses many important points, finally completing this series for the 2nd time 😍😍 and what I am feeling right now I can't even express, feeling like I can be a TEAM LEAD 😅 at this time by knowing these little little minute details
Nice! But example is misleading, if goal is to just increase the count, then atomic increment is a better choice, better example for compare and exchange would be implementing mutex itself or spinlock, correct me if I am wrong :)
This channel has enough content to become a senior backend engineer who are at beginner or mid senior level. Thank you Arpit so much
My goal is Staff is so this has been great , even for references to modeling what already is out there rather than re inventng the wheel. Thanks!
Hey Abdul, can you please tell me where to start. Right now I have just passed out in 2023, and joined a company as a backend developer.
This is really awesome. Got satisfying answers for the doubts I had on contention for CAS operation by two threads. If one wants to be like him your thinking should be like DFS graph traversal, keep digging the problem deeper until all your doubts are resolved.
Great teaching technique. Awesome videos. There lot of senior engineers but very few of them has such great teaching skill like arpit
Thanks Arpit
In optimistic locking there is a concept of Time-of-check to time-of-use
when we are checking the old value to be old value => so that we can write it to the new value.
there can be another thread which will actually update it in the time being of this checking and updating.
and current thread might be a case of also picking up old value = old value.
here the race condition might occur
Please help me in this scenario,
If my app is load balanced and I have 2 nodes running under it.
When 2 requests arrived to update the same resouce. How can Optimistic Locking works?
There will be 2 machines and each can execute compare_and_swap or (TOC and TOU) same time.
Amazing content, these internals are very interesting, thank you so much arpit
Quick question around cpu context switch.
Most CPU’s have multiple cores and this comparison function would be running on a single core.
Does that mean other cores are also at halt for the time being or they can execute a parallel thread?
It depends on the architecture. Some block the cores, while other block the memory location.
@@AsliEngineering had this question in mind, thanks for clarifying
@AsliEngineering In the architecture where the other cores gets blocked, Are we using locks (if yes then won't it be a pessimistic approach)?
And how is it implemented?
Amazing bro, learned a lot
Wow explanation Arpit
Thanks Neha!
Great Video !!! I wonder how do you choose your content and what resources you used to learn fundamental concepts in multithreading ? Really Great Work and I look forward to every new video.
Good tutorial Arpit sir.
Please help me in this scenario,
If my app is load balanced and I have 2 nodes running under it.
When 2 requests arrived to update the same resouce. How can Optimistic Locking works?
There will be 2 machines and each can execute compare_and_swap or (TOC and TOU) same time or a race condition may be.
Thanks a ton, it was quite clear!!
Why loading the count variable is atomic?
Today, I realised going through the content only once is not enough, as a human we loses many important points, finally completing this series for the 2nd time 😍😍 and what I am feeling right now I can't even express, feeling like I can be a TEAM LEAD 😅 at this time by knowing these little little minute details
what about using pessismistic locking + skip locked? this will help in threads not getting blocked right?
Yes. It will, but it should suit your usecase. Because not everytime you can skip locked rows.
arpit bhaiya ji please recommend a book to learn all of these CPU instructions and also linux commands for accessing process control blocks
Nice! But example is misleading, if goal is to just increase the count, then atomic increment is a better choice, better example for compare and exchange would be implementing mutex itself or spinlock, correct me if I am wrong :)
This CaS operation is used in lmax disruptor too
Using complex variable name.
Bro Hindi mein Bana sakti ho ,agar ATI ho to
English mein content bhaut hai youtube par
Par Hindi mein kam😅