Caching is hard

Поделиться
HTML-код
  • Опубликовано: 28 дек 2024

Комментарии • 48

  • @hnasr
    @hnasr  2 года назад +5

    Get my Introduction to Database Engineering course. Head to database.husseinnasser.com for a discount coupon. Link redirects to udemy with coupon applied.

    • @joannicolausantandreu2876
      @joannicolausantandreu2876 Год назад

      amazing course, i'm having a lot of fun. By the way, it would be nice to have a course of caching engineering fundamentals explaining the the big ideas behind and comparing multiple nowadays solutions and also discussing their architectures and its internals.

  • @BraedenSmith
    @BraedenSmith 2 года назад +85

    There are only two hard problems in computer science: cache invalidation, naming things & off-by-one errors

  • @tafarakasparovmhangami2356
    @tafarakasparovmhangami2356 2 года назад +26

    Poetic software engineering. A message for the future generations: "This guy is a legend!"

  • @AnantKumarS
    @AnantKumarS 2 года назад +3

    Hussein man, keep this show (BE engineering Show) ongoing. The knowledge gained from episodes of this show are golden!

    • @hnasr
      @hnasr  2 года назад +2

      Will do ! 🙏 appreciate it

  • @akashdesarda502
    @akashdesarda502 2 года назад

    The statement, “without understanding what step is causing performance issue or slowing down the application & instead just adding a cache layer is just bad practice”.
    I was is (kind of) in the process to the same, this hit me hard & got me thinking & I think know I now what instead I should be doing. Thanks.

  • @OtterSwims
    @OtterSwims 2 года назад +4

    I learn so much from your videos, thank you. Your channel is so underrated

    • @morgenshow9523
      @morgenshow9523 2 года назад

      he‘s saying decent things but not out of this world knowledge. For me, it‘s relaxing to see another engineer knowing the depth of things and seeing him be concerned of the same things, it‘s a validating comfortable feeling

  • @gyroninjamodder
    @gyroninjamodder 2 года назад +5

    10:15 Fundamentally there is nothing wrong with pushing to a CDN. The issue is that you need to add extra complexity to your application when the end result is optimizing the response time for one user (per edge server). It also requires you to know your user's access patterns well. If it's a personal blog it's an easy to decision to add your latest blog post as there will be a surge of traffic to it when you publish it. But what if you are a blogging platform? Some user's new posts may be read by very few people, so whose new posts should be pushed to the CDN? The CDN is in a much better place to know what resources are being requested and which are the most popular and which aren't and should be remvoed from the cache.
    Cloudflare, Cloudfront, and Google Cloud CDN, don't even support being pushed to AFAIK. This kind of shows there isn't a market demand for it.

    • @wahdangun
      @wahdangun 2 года назад

      maybe in blogging platform you can predict which one to cache based on previous pattern, like maybe that user that posting always so much view etc..

    • @gyroninjamodder
      @gyroninjamodder 2 года назад

      @@wahdangun Yes, it's possible, but it's high complexity for a low reward.

  • @prabhatism
    @prabhatism 2 года назад +3

    Will you be talking about the atlassian outage?

  • @acollierr17
    @acollierr17 2 года назад

    Great video, Hussein! The last part where you talked about why we cache sure hit it home. I will definitely keep those aspects in mind going forward with my own code.

  • @chrishabgood8900
    @chrishabgood8900 Год назад

    if you cache in a db table you could use a trigger to update it.

  • @maurin5266
    @maurin5266 2 года назад +1

    your voice is so chill, like it bro❤️

  • @apusingh1967
    @apusingh1967 7 месяцев назад

    Is it possible to implement cache in load balancer?

  • @anthonyoleinik6472
    @anthonyoleinik6472 2 года назад

    Can you go more into “pushing is unpredictable”? If I were designing a system, I’d opt for pushing to the CDN to avoid unnecessary polls. Why poll once a second if nothing had changed? I’d like to read more on this topic if you have references.

  • @devyetii
    @devyetii 2 года назад +4

    Just a beginner question, why can't edge caching work with encrypted media file ? Let's say for example our cache is a KV pair, the key is known but the value is encrypted. Why don't we use something like a MAC hash for validation that doesn't till too much about the encrypted content yet signifies if it was changed or not ?

    • @hnasr
      @hnasr  2 года назад +8

      Good question,
      When you encrypt with TLS, a new ephemeral symmetrical key is used. So that even if you take the same piece of content it will create a completely different encrypted cipher (thats the power of encryption)
      As a side effect you have no idea what is the content being encrypted so you can’t cache it.

    • @devyetii
      @devyetii 2 года назад +1

      @@hnasr Got it. Thank you 🙏

    • @hououinkyouma5372
      @hououinkyouma5372 2 года назад +2

      Plus hashing might be computationally expensive to do at scale just to verify content changes.

    • @gyroninjamodder
      @gyroninjamodder 2 года назад

      @@hnasr It can. Netfilx encrypts videos in its cache (for DRM purposes).
      In regards to having the origin sign a response that can get replayed by a CDN chrome supports signed exchanges but it complicates things when you could just trust your CDN provider.
      There is a trade off between using nontechnical measures (i.e. contracts or trust) and technical measures (i.e. encryption or signatures) when protecting a system.

  • @gordonsau2989
    @gordonsau2989 2 года назад

    For the database caching, I think maybe the problem can be solved if there are some special keywords to tell the database that the attribute is a cache in the other table and what the cache invalidation should be. I wonder if there are databases that already do it

    • @gordonsau2989
      @gordonsau2989 2 года назад

      actually, trigger functions already do the job

  • @larssonsoder4824
    @larssonsoder4824 2 года назад

    Hi guys, could you advise me when to use redis, hazelcast and memcache
    I'm choosing a caching technology for our project. I tried to find the comparison between redis and hazelcast and memcache online but they just talk about the basic characteristics, I mean it's quite ambiguity

  • @IvanRandomDude
    @IvanRandomDude 2 года назад

    I read somewhere (not sure where): If you don't think that managing the state and caching are hard then consider the fact that 90% of the problems in a system go away after reboot

  • @pisanghangus2
    @pisanghangus2 2 года назад +1

    Will u make a new udemy course soon ?

    • @hnasr
      @hnasr  2 года назад +1

      Yes working on a new one.

    • @pisanghangus2
      @pisanghangus2 2 года назад

      @@hnasr looking forward to it

  • @ashishjullia638
    @ashishjullia638 2 года назад

    But why he deleted that article?

  • @AnantKumarS
    @AnantKumarS 2 года назад

    I have a serious question, where do you find these tech articles?

    • @hnasr
      @hnasr  2 года назад +1

      Google news, and people send me articles. This one was sent to me in order to react and give my opinion on .

  • @run8236
    @run8236 2 года назад +1

    can you pls suggest few books that you have read and which helped in your learning journey

    • @hnasr
      @hnasr  2 года назад +4

      I started re-reading Transaction Processing: Concepts and Techniques by Gray, Reuter. Really good book for understanding database workloads.

  • @pranjalgoyal6747
    @pranjalgoyal6747 2 года назад

    Just needed this 💯💯

  • @your_skyfall
    @your_skyfall 2 года назад +1

    I have tons of JIRA's issue because of stupid cache

  • @ChrisAthanas
    @ChrisAthanas 2 года назад +1

    You forgot off by one errors

  • @ShashankVermaa
    @ShashankVermaa Год назад

    Another one : Exactly once semantics.

  • @rick-kv1gl
    @rick-kv1gl 2 года назад

    Caches are like eidi. Everyone gets a cache. You get a cache, you get a cache and you get a cache !

  • @istiakferdous6864
    @istiakferdous6864 2 года назад

    Cache

  • @superchdk
    @superchdk 2 года назад

    I thought time was hardest problem in CS? 🕒 🤪

  • @Septumsempra8818
    @Septumsempra8818 Год назад

    Caching is kicking my @ss. Django caching tutorials or 8 lines long.

  • @rashie
    @rashie 2 года назад

    👍👍

  • @foodorder610
    @foodorder610 2 года назад

    hi good- i have this message-Or use my current location
    This IP, site or mobile application is not authorized to use this API key. Request received from IP address 82.165.88.128, with empty referer
    can you help us for this ?

  • @AMFLearning
    @AMFLearning 2 года назад +1

    nice
    #amflearningbydoing #amflearning