Data Consistency and Tradeoffs in Distributed Systems

Sdílet
Vložit
  • čas přidán 1. 06. 2024
  • This is a detailed video on consistency in distributed systems.
    00:00 What is consistency?
    00:36 The simplest case
    01:32 Single node problems
    03:35 Splitting the data
    04:23 Problems with disjoint data
    07:10 Data Copies
    12:01 The two generals problem
    13:56 Leader Assignment
    15:24 Consistency Tradeoffs
    15:56 Two phase commit
    25:00 Eventual Consistency
    Eventual Consistency: interviewready.io/learn/syste...
    You can follow me on:
    Instagram: / interviewready_
    LinkedIn: / interview-ready
    Github: github.com/coding-parrot/
    Twitter: / gkcs_
    #SystemDesign #DistributedSystems #Consistency

Komentáře • 152

  • @shubhamsingh6929
    @shubhamsingh6929 Před 2 lety +104

    For new readers, I think it should be explicitly pointed out that Consistency in ACID is very different from Consistency in CAP.
    ACID consistency means that the values in DB should be valid i.e. if we are making two transactions both should complete before committing to disk.
    CAP consistency means read requests to different nodes of a distributed system return the exact same data.
    A system can exist without CAP consistency but a system should never exist without ACID consistency. ACID consistency is must-have for any RDBMS to be reliable/useful while CAP consistency can be a trade-off as per requirement.
    To be honest C in ACID doesn't add any proper value. If a transaction is Atomic, Isolated, and Durable, it automatically becomes consistent.

    • @firoufirou3161
      @firoufirou3161 Před 2 lety +2

      " C in ACID doesn't add any proper value", I don't think so, we don't have the concept of keeping the db in a valid state in Atomic, Isolated, and Durable. None of these mean that we should have the constraints respected.

    • @madacsg
      @madacsg Před rokem +1

      "automatically becomes consistent" - if "C" already told you how to utilize "AID" properly...

    • @ildar5184
      @ildar5184 Před rokem +2

      " if we are making two transactions both should complete before committing to disk."
      What does that mean? How I understood consistency in ACID is that constraints like foreign keys, data types etc. must always be fulfilled, i.e. you can't commit a transaction if you're inserting a foreign key that doesn't exist in a referenced table.

    • @zod1ack_csgo_clips425
      @zod1ack_csgo_clips425 Před rokem

      @@ildar5184 That's referential integrity but in one way it ensures consistency

    • @rizwan050587
      @rizwan050587 Před 9 měsíci

      Atomicity is you are talking about

  • @MsSierra9
    @MsSierra9 Před 2 lety +112

    Your system design videos helped me get a job at Amazon! Thank you so much for all the great work you are doing! :)

  • @samarthtandale9121
    @samarthtandale9121 Před rokem +2

    The way you teach concepts from scratch/ bottom-up way is the most favourite thing in this channel !

    • @gkcs
      @gkcs  Před rokem

      Thank you 😁

  • @srikanthmaganty524
    @srikanthmaganty524 Před 2 lety

    I like ur energy and the selfless appetite to share with community...

  • @eduardolacerda1557
    @eduardolacerda1557 Před 2 lety +1

    Thanks a lot for sharing this content! this is very helpful. Although I was aware of a lot of concepts there, your samples help me to figure them out a lot better. :)

  • @nameunknown007
    @nameunknown007 Před 2 lety +20

    One thing I learnt from this video today is you can’t get super computers in super market.

  • @yt-hq6cu
    @yt-hq6cu Před 2 lety +7

    You said facebook is down and it was down after a week. what a coincident!

  • @cengizandak4241
    @cengizandak4241 Před 2 lety +36

    Great explanation.
    However 2 phase commit is not usually recommended in the current industry due to a possible failure on the coordinator or the microservies will mix the things up by keeping locking the resources, timing out etc..
    Therefore there are other options like 3 phase commit or SAGA which are widely used in fintech as well as in big companies.

  • @robotempire
    @robotempire Před 2 lety +1

    Thanks bro I have been doing front-end for the past 5 years. I’m just putting myself back on the market now and this video is a great refresher on the fundamentals consistency in distributed systems.

  • @amit_dwivedi
    @amit_dwivedi Před 2 lety +6

    The Tshirt Gaurav! 😍
    NITS ❣️

  • @akhilguptagunturu3048
    @akhilguptagunturu3048 Před měsícem

    Great explanation. Thanks for creating this video :)

  • @sophianachiba663
    @sophianachiba663 Před 2 lety

    very clear as always... what does the prepare statement phase offer that the commit doesn't in the 2 phase commit? since they can both fail and both may need to be rolledback.

  • @bimakumkum277
    @bimakumkum277 Před 3 měsíci

    Thank you for this great explanation

  • @thisalma
    @thisalma Před 2 lety +1

    Very well explained ❤️

  • @benparker8000
    @benparker8000 Před rokem +1

    Amazing video. So easy to understand complicated topics. I have very limited experience with this and the pace and the content was perfect.

    • @benparker8000
      @benparker8000 Před rokem

      Did the eventual consistency video ever come out?

  • @hamsalekhavenkatesh3440
    @hamsalekhavenkatesh3440 Před 4 měsíci

    Nice, its also worth knowing more than 2PC, we can also use TC/C (Try Cancel/commit ) which does not explicitly lock the resources; rather it works by issuing compensating tx in case of failures..

  • @sankalparora9374
    @sankalparora9374 Před rokem

    Amazing explanation!
    Thanks a lot!
    I feel more and more confident in system design daily... Thanks to you, sir!

    • @gkcs
      @gkcs  Před rokem

      Thanks Sankalp!

  • @aravindkumaresan2747
    @aravindkumaresan2747 Před 2 lety +2

    Hi Gaurav, thanks for making such great contents regarding consistency in distributed systems. But in case of 2 Phase commit, if one of the follower node machine goes down, then the leader who got commit response from other follwers, also can't commit it and may need to rollup the transactions. So until and unless the single follower comes back, the system doesn't accept any write operations, so it still puts in a single point of failure right ?

  • @Thrillseeker419
    @Thrillseeker419 Před 2 lety

    Here are my concerns: how do you track the prepare statements sent? How will server B differentiate two duplicate prepare statements? Also, as part of the prepare statement execution can we not update a status column of a row to indicate it is in process of being updated? Also how does the leader keep track of all of the data that needs to be sent out? What if there is just too much data to be sent out for one leader to handle?

  • @gokuls9929
    @gokuls9929 Před 2 lety +2

    That 'Yeah! I made a joke!' look at 8:32 is priceless!

  • @harshkatkade4206
    @harshkatkade4206 Před 2 lety +1

    In the 2 phase protocol, consider a scenario. If server C receives a begin transaction order from A, and further fails to receive a commit order, what if we lock the read requests for some amount of time from C, until a "begin" transaction orders isn't committed yet, so that the leader can keep trying to commit the change in C. Latency is increased but I guess consistency can be maintained. Is this a correct? Please let me know

  • @aniketsingh9956
    @aniketsingh9956 Před rokem +1

    That 'C++' expression was priceless 😁

  • @pallavgurha
    @pallavgurha Před 2 lety

    Hi Gaurav, just wondering whether high water mark index will help here and the client can be assured that the commit is acknowledged as anyways everything noways a async in nature and once all the nodes in the cluster are up to the speed we can start showing the change to the client.

  • @hasanulislam3112
    @hasanulislam3112 Před 2 lety +1

    Could you recommend any good system design concepts apart from your interview-focused course?

  • @kalpakHere
    @kalpakHere Před 2 lety

    One of my favourite topics in this domain.
    Up next: Consensus ??

  • @sumitkumarmallick6040
    @sumitkumarmallick6040 Před 2 lety +1

    Can you please share the link to the video where I can find the idempotency concept?

  • @RAJU9622
    @RAJU9622 Před 2 lety

    Excellent Gaurav

  • @shivprakashy
    @shivprakashy Před 2 lety

    Don't know if you have a video on the books/blogs you follow.
    👏👌#goodcontent for #systemdesign

  • @zaleel
    @zaleel Před 2 lety

    Have a question.
    If all the commit/prepares fail after multiple retries. Should we roll back on master as well? And in in 2 PC, instead of prepare and commit. Why can't we just: First send the update in phase 1 i.e. commit and then in phase 2 just compare A /master to slaves. If if matches it's done. If it fails we mark the state as disputed or eventual roll back

  • @stephensmithwick7502
    @stephensmithwick7502 Před 2 lety +2

    I loved the pause on the C++ joke >_< as if to say yes I’m going there

  • @Varunshrivastava007
    @Varunshrivastava007 Před 2 lety

    How did you solve the latency in a consistent system. Still servers have to send request from UK to EU for db updates (to remain consistent).

  • @raj_kundalia
    @raj_kundalia Před rokem

    Thanks for the video

  • @jeelanyelidandla2477
    @jeelanyelidandla2477 Před rokem

    Gaurav, do the UK, US, and other countries' governments agree to store their data across other regions? what do you think?

  • @mukunthsenthilkumar8822

    This video is pure gold! Great stuff, Gaurav!

  • @stIncMale
    @stIncMale Před 2 lety +5

    'C' in CAP is what 'I' in ACID. 'C' in ACID has no analogy in CAP and means that there are constraints and the DBMS makes sure they are not violated. More specifically, 'C' in CAP is linearizability, while 'I' in ACID is serializability (and not even strict serializability, which would be more similar to linearizability). While both are what is called "consistency model" or "correctness condition" (a similar concept in programming languages and in processor instruction set architectures is called "memory model"), they are not the same.

    • @gkcs
      @gkcs  Před 2 lety

      That's a good point. The "Consistency" term lines up a lot more with Isolation in ACID. I think Martin Kleppmann has spoken about this a few times.

  • @DejaimeNeto
    @DejaimeNeto Před 2 lety +2

    "Maybe C was updated here; maybe C++", shots fired

  • @saiprasad84
    @saiprasad84 Před 2 lety

    Isn't the leader a SPOF here? Just curious.. may be if the leader fails, one of the followers become the leader? Wonder how that might happen and if there are databases that make it happen automatically.

  • @stalera
    @stalera Před 2 lety +15

    Great work. Thanks for the knowledge. However, in the explanation there's 1 server with write which makes it again a single point failure and if we increase the write servers then we're back to square one. Can you address this?

    • @TheNayanava
      @TheNayanava Před 2 lety +4

      in one of my previous organizations we solved this by enabling multi-master, or multiple primary. We had three primary nodes but all of the write requests would only come to one primary node. there was automatic failover in this scenario, there a linux virtual server which takes care of routing the traffic, the LVS was updated with the public IP of the node which was the then primary. and every time the call would land on the LVS it would resolve to the IP which was the primary. there was automatic failover in this scenario. But as you see every write would be successfully ack-ed only when all three servers had the latest commit.

    • @cengizandak4241
      @cengizandak4241 Před 2 lety +1

      2 phase is not recommended usually. There is a better option like 3 phase commit or SAGA. l would recommend you to check them out

    • @TheIndianGam3r
      @TheIndianGam3r Před 2 lety +7

      We cant have more than 1 write servers in all types of DBs. For example, postgreSQL doesn't allow multi-master setup. This issue is resolved by implementing a High availability cluster management tool along with your database. For example , Galera Cluster for Mysql and Patroni for postgreSQL. Here, in case a master fails, one of the read replica servers is chosen as a new master , and a proxy on top handles the change in route. Multi-master setup can have many problems regarding duplicate entries if not handled well.

    • @TheNayanava
      @TheNayanava Před 2 lety

      @@TheIndianGam3r yeah we were using a gallera cluster on top of Maria db, but although it was a multi master, the writes are accepted only on a single master, the others were exact copies of the master accepting the writes. This helped in automatic failover instead of manual failovers. And true enabling writes on multiple masters actually increased the chatter, that's why we disabled writes on multiple masters.. this was more of a multiple replicas of the same master

    • @mukeshstorge7384
      @mukeshstorge7384 Před 2 lety +2

      In this cluster each slave will have the knowledge of Master's health by checking the heart beat. Once the Master goes down leader election will takes place and one of the slave becomes master. There are some algorithms involved here like RAFT or Consensus for leader election.

  • @sahilzainuddin7134
    @sahilzainuddin7134 Před 2 lety +2

    Just finished watching Social Network, and right in the next video click, I see an example of the same.

  • @nodirbeksharipov458
    @nodirbeksharipov458 Před rokem

    you're a genious man

  • @ThePujjwal
    @ThePujjwal Před 2 lety +2

    Isn't 2PC used for maintaining atomicity in case of a distributed transaction ? Got me a bit confused about we leveraging it to achieve consistency.

    • @generationgap416
      @generationgap416 Před rokem

      Atomicity is all or nothing. Consistency is data copies should be the same on different on different bot in a distributed environment

  • @suchismitagoswami5609
    @suchismitagoswami5609 Před 2 lety

    Great explanation. I am having one questions as followed. Ideally, the followers or the replicas should reside in different regions or data centers to ensure availability. So, this introduces latency in every write operation in transforming the data synchronously from leader to the followers if we follow 2 phase locking. How to handle this ?

    • @sidderverse
      @sidderverse Před 2 lety

      I believe you will have to go for eventual consistency.

    • @generationgap416
      @generationgap416 Před rokem +1

      That is why there are tradeoffs between consistency, availability and performance. There are mutually exclusive. Eventual consistency is the middle ground.

  • @Bibhaw
    @Bibhaw Před 9 měsíci

    What is the use of kafka if all the communication been hapening directly from Leader to follower ?

  • @marcpaguilar
    @marcpaguilar Před rokem

    The very quick smile you gave the camera when you said "c++" 🤣🤣🤣🤣

  • @akashtadwai9471
    @akashtadwai9471 Před 2 lety

    Hi Guarav, In a two-phase commit, do the transactions of all the servers be rolled back if one of the servers fails to acknowledge?

    • @pste22
      @pste22 Před 2 lety

      yes it should! 2 phase commit is all about establishing consistency between all the related services!

    • @generationgap416
      @generationgap416 Před rokem

      Good question. There should be a thing called Almost Consistent. Use reference counting. There should also a thing called Regional of Consistency. Data sharding should necessitate this.

  • @praveensg
    @praveensg Před 2 lety +1

    Wow, nice and bright. New camera?:)

  • @imperfecto7734
    @imperfecto7734 Před 2 lety +3

    08:30 he realises how c++ language got its name. its intuitive :D

  • @kajalpareek8291
    @kajalpareek8291 Před 2 lety +1

    Hi Gaurav ,Thanks for such informative content. Looking forward for a series on design pattern

  • @tylerbenton4495
    @tylerbenton4495 Před 2 lety +2

    Would be great if the people who disliked the video commented on why they disliked it. Did you disagree with something he said? If so, write it in the comments to educate us on why you disagree.

  • @manveersingh5822
    @manveersingh5822 Před 2 lety

    That C++ smile and expression at 8:30 .. haha

  • @sagararora2830
    @sagararora2830 Před 2 lety

    Now I get to know When we went to banks and they are like servers are not responding, but actually in the backend they are keeping themselves consistent. :D

  • @praveenkurapati7300
    @praveenkurapati7300 Před 2 lety +1

    While rollback sent by the master, does it send to all slaves ?

  • @lakeman4101
    @lakeman4101 Před 2 lety

    When i started listening to your videos ... i had no idea other e than you know your stuff, right now I can keep up quite alright...i now appreciate the level of your skill...and the chronological argument you give and use to explain. I love this man

  • @surenderthakran6622
    @surenderthakran6622 Před 2 lety +1

    Loved the video. Just to nitpick a little, Kafka belongs more to the pub/sub family rather than the message queue family.

  • @sagararora2830
    @sagararora2830 Před 2 lety

    Hi Gaurav Sen, when the video on Eventual consistency will come. Waiting for it

    • @gkcs
      @gkcs  Před rokem

      Added it here: get.interviewready.io/learn/system-design-course/consistency-in-distributed-systems/Eventual-Consistency

  • @DebajyotiDev
    @DebajyotiDev Před 2 lety

    Is C in ACID properties o SQL same like CAP theorem? What u said is for CAP. But if u check the oracle Docs Consistency in ACID means Data should not violate any DB constraints FK, UK, Col types etc…correct me if am wrong.

    • @generationgap416
      @generationgap416 Před rokem

      You are right. C in acid relate more to atomicity and idempotency. While the C in CAP refers to data copies in a distribuuted environment must be the same. Hash value of each copy must equal if there are no collision in the hash function.

  • @BarHemo32
    @BarHemo32 Před 2 lety +1

    Why not use kafka or rabbitmq and store in them all of the updates, and each database will subscribe and make the changes according to the queue. The data will be eventually consistence, is this a good idea?

    • @AnPham-uz3td
      @AnPham-uz3td Před 2 lety

      But kafka / rabbitmq will need a way to send update to those follower dbs, and to guarantee consistency between those follower dbs it will just like the 2 phase commit

  • @darkstudio3170
    @darkstudio3170 Před 2 lety

    He is wearing NITS Hacks T-shirt. I still remember when he came to NIT Silchar as a judge for NIT Hacks and we had a photo with him.

    • @gkcs
      @gkcs  Před 2 lety +1

      I'm proud to wear it 🤠

  • @Lima3578user
    @Lima3578user Před 2 lety

    CZcams recommend your video at 6am today ..ever since im hooked ... prepping for technical program manager role .. hope you would make some program centric videos too

  • @n4naveeen
    @n4naveeen Před 2 lety

    Hi Gaurav, can you pls make a video on lifecycle of code? i e, what happens after the coding is done?

    • @gkcs
      @gkcs  Před 2 lety +2

      I have spoken about deploying code and versioning client libraries at InterviewReady. You can check out the first design of "Design an email service" here: get.interviewready.io

  • @theSDE2
    @theSDE2 Před 2 lety

    Liked the new edit. Kudos to your techie video editor 🤓

    • @gkcs
      @gkcs  Před 2 lety +1

      Yes, it's amazing 😁

  • @Tarsemsingh-rd8lx
    @Tarsemsingh-rd8lx Před 2 lety

    Thanks Gaurav, I have question, which tool support 2 phase commits? Kafka can you please suggest open source tool

  • @Amritanjali
    @Amritanjali Před 2 lety

    again learned a lot

    • @gkcs
      @gkcs  Před 2 lety +3

      Thanks Amritanjali! Good morning 😁

    • @Amritanjali
      @Amritanjali Před 2 lety

      @@gkcs good afternoon ☺☺

  • @ParthPatel-jn6io
    @ParthPatel-jn6io Před rokem

    At 1:24 there's a mis-communication and writing on board for Get profile A

  • @vinays2493
    @vinays2493 Před 2 lety

    What does GKCS stand for

  • @sureshbabu8794
    @sureshbabu8794 Před 2 lety

    What about partitioning? You didn't explain or I might have missed..

  • @aj-loves-tech
    @aj-loves-tech Před rokem

    8:32 that smile hits me every time 😂😂😂

    • @gkcs
      @gkcs  Před rokem +1

      C++ 😛

  • @basitahmad8067
    @basitahmad8067 Před 2 lety

    Next Hotstar 🙏... High in demand

    • @gkcs
      @gkcs  Před 2 lety

      Check out the free course preview at InterviewReady 😎

  • @arulantony2137
    @arulantony2137 Před 2 lety

    25:00 SAGA pattern ??

  • @shakeelahmed8015
    @shakeelahmed8015 Před 2 lety

    So we can roll back messages from Kafka 🤔

  • @Raja-kl4op
    @Raja-kl4op Před 2 lety

    Hi Gaurav, Great video! But I have a doubt. Why does communication over a long distance lead to latency? Don't servers use electromagnetic waves(speed of 3 x 10^8 m/s) to communicate with each other. So, the distance of a few 1000KM's will only cost few milliseconds. Is that enough to cause latency? Or did I miss something?

    • @gkcs
      @gkcs  Před 2 lety +2

      There are more routers to hop on.

    • @generationgap416
      @generationgap416 Před rokem

      The last mile is the bottle neck

  • @sorandom9452
    @sorandom9452 Před 2 lety +7

    In case of single leader, there are high chance of single point failure.

    • @TheNayanava
      @TheNayanava Před 2 lety +3

      in one of my previous organizations we solved this by enabling multi-master, or multiple primary. We had three primary nodes but all of the write requests would only come to one primary node. there was automatic failover in this scenario, there a linux virtual server which takes care of routing the traffic, the LVS was updated with the public IP of the node which was the then primary. and every time the call would land on the LVS it would resolve to the IP which was the primary. there was automatic failover in this scenario. But as you see every write would be successfully ack-ed only when all three servers had the latest commit.

    • @eatcodegame4952
      @eatcodegame4952 Před 2 lety +1

      Incase for example you have 3 nodes in a cluster, incase of any write you can get it ack from more than 1 node so you have more than one node than master which does have the updated copy and it’s gonna take place of master incase of master goes down.

    • @generationgap416
      @generationgap416 Před rokem

      Use a replica set of masters and use a kubernetes to orchestrate the environment.

  • @mrrishiraj88
    @mrrishiraj88 Před 2 lety

    🙏🙏🙏

  • @sankalparora9374
    @sankalparora9374 Před rokem

    That gaze 8:32.

  • @rajvadheraju3568
    @rajvadheraju3568 Před 2 lety

    It seems like you mixed Consistency and Distributed Transactions when you talk 2PC

  • @harshshah2791
    @harshshah2791 Před 2 lety

    What happens if transaction is to add 100 rs and leader retried 100 times, so 100 rs added 100 times?

    • @gkcs
      @gkcs  Před 2 lety +1

      The transaction id will make the server ignore 99 of the later requests.

    • @harshshah2791
      @harshshah2791 Před 2 lety

      @@gkcs I would like to ask one more thing that I see your SD course on IR includes many videos which are already there on CZcams, so can you give an idea what I will get extra if I buy the course?
      And also what is the source of your SD knowledge? Any goto books, sites, pages?

    • @gkcs
      @gkcs  Před 2 lety

      @@harshshah2791 All the lessons in the "additional free resources" have been picked from this CZcams playlist. The other three sections (Fundamentals, High level design and Low level design) are only available at InterviewReady.
      I use various books, blogs and my personal experience as a software engineer in the content. The course is designed to help you get better at software engineering (to get better at design discussions, coding, etc...).

    • @harshshah2791
      @harshshah2791 Před 2 lety

      @@gkcs I will surely buy it

  • @zuowang9881
    @zuowang9881 Před rokem

    I don’t think he released the next eventual consistency video

    • @gkcs
      @gkcs  Před rokem

      interviewready.io/learn/system-design-course/consistency-in-distributed-systems/Eventual-Consistency

  • @vaibhavmehta36
    @vaibhavmehta36 Před 2 lety

    2PC is used in which Industry?

    • @gkcs
      @gkcs  Před 2 lety

      Textiles.
      And also some financial transaction systems.

  • @yashwanthd1998
    @yashwanthd1998 Před rokem

    We are trying to solve single point of failure and consistency with distributed databases but ending up with the same . What am i missing here

    • @generationgap416
      @generationgap416 Před rokem

      If you are refering to the seemingly single point of failure of the master, note that the master would be a member of a set of master. A service kubernetes would orchestrate the master. If one down kuberntes would start a copy of the master. You would an avalaible problem but that is point of the video that perfect consistency and perfect availability is not possible

  • @adityagoel1738
    @adityagoel1738 Před 2 lety

    Retrying every 5 seconds doesn't make sense if the system is down because it's not gonna be up and running soon and hitting it at every 5 seconds leads to wastage of resources.

  • @rajveersingh2056
    @rajveersingh2056 Před 2 lety +1

    Tsunami in Harvard☺️

  • @mohammadhemel6412
    @mohammadhemel6412 Před 2 lety

    While I am watching this videos, Facebook, Instagram and WhatsApp are down

  • @samarthagrawal3415
    @samarthagrawal3415 Před 2 lety

    Sir i am very much inspired from your english conversation, will u make a video on how to do coding problems means how to build logic for that please sir it's my humble request, please make video on that

  • @swastikjainsj
    @swastikjainsj Před 2 lety

    how Inertnet work ? GB MA how jio airtel control net speed ?
    Any new info ? apart from underground wires 😐

  • @imperfecto7734
    @imperfecto7734 Před 2 lety

    13:38 "I wont explain everything here, I'm lazy too "

  • @liatris69
    @liatris69 Před 2 lety

    Data sharing shyness is real.

  • @swastikjainsj
    @swastikjainsj Před 2 lety

    one more question
    When we delete anything it store in our computer only in hard disk just remove the link so that we cannot find that file
    And now we can store another data on this data it will overlap.
    but
    how can we transfer the deleted storage files to cloud that means our disc will can work for more years

  • @manjuender6286
    @manjuender6286 Před 2 lety

    Super computer at super market
    Harvard vs Oxford 😂

  • @tze-ven
    @tze-ven Před rokem

    Do you know you don't need supercomputer to scale? You can scale with cloud computing. The best thing is that you don't need physical shopping. You just click and pay. 😜

    • @generationgap416
      @generationgap416 Před rokem

      He was contrasting virtical scaling with horizontal scaling.
      Question:
      Would virtical scalingbe the same as horizontal if we rotate virtical scaling by 90°?

  • @VijayInani
    @VijayInani Před 2 lety +1

    C >> C++ ... LOL

  • @jitinkumar835
    @jitinkumar835 Před 2 lety

    1st