Caching - Simply Explained

Video Statistics and Information

Video
Captions Word Cloud
Reddit Comments
Captions
Have you ever had a problem with your computer, and someone told you to fix it by clearing your browser cache or your DNS cache? Chances are you've heard of these, but what is a cache? Simply put, caching means to store frequently demanded things closer to those asking for it. And by doing that, you increase the access speed. The book "Algorithms to Live By" gives a simple explanation. Imagine you're doing research for writing a paper or making a video, and that you need to consult a book from the library. You could go to the library every time you need a piece of information, but instead, you will most likely take the book home with you and put it on your desk for faster access. In this example, your desk became a cache. Instead of making round trips to the library, which would slow down your progress, you can now grab the book straight from your desk. You intuitively understand why caching is much faster, but also that it's more limited. You don't have as much space on your desk as the library has in its stacks. You can only keep a limited amount of books in your cache. More on that later! Let's first look at how caches are used in computers. For example, your web browser caches resources from frequently visited websites. The first time you visit YouTube.com, your browser knows nothing about it, so it downloads all of the resources that make up YouTube. The logo, icons, fonts, scripts, and all the thumbnails. On subsequent visits, however, all of this can be retrieved from cache. Making the webpage load much faster because your browser only needs to download newer content that it hasn't seen before. On YouTube, that might be only the thumbnails of videos uploaded after your last visit. In this case, your browser cache is storing internet resources on your local computer. It's much faster to retrieve them from your SSD or hard drive than to download them from the internet. This is also the reason why clearing your cache can fix certain problems. Sometimes, websites update their designs or scripts, but your browser will keep using the older versions in its cache. But it's not just browsers that have a cache. Modern devices have tons of caches. On the hardware side: processors, GPUs, hard drives, SSD's all have caches. This creates a memory hierarchy. At the top, you'll find the memory embedded in processors, which is super fast but very small. At the bottom, you'll find things like SSD's and hard drives, which have huge capacities but are very slow compared to what's at the top of this hierarchy. You find a similar structure in the library. Frequently checked out books might be kept in a small cabinet near the front desk, where it's super fast to retrieve them. Less popular books will be moved to the stacks. There's much more space there compared to the front desk, but it requires a bit of searching to find the book you're after. And finally, you'll have old books that are rarely checked out and moved to off-site storage. While this archive is probably the largest of all, it's also the slowest to access. It requires you to ask a staff member to retrieve them for you, potentially taking a few days. On the software side, caches are also everywhere: operating systems, browsers, DNS, databases, and web servers all use caches. And every time for the same purpose: store data in fast memory so it can be retrieved quicker. But let's go back to the book cache on your desk. At some point, your desk will be filled up with books. So, what do you do when your cache is full? How do you determine which books or which items to keep in your cache and which to remove? This is called a cache eviction strategy. Instinctively, you might return the books that you haven't used in a while. This is called Least Recently Used or LRU for short, and it's an effective and easy to implement strategy. It does require you to keep track of when items in your cache were last accessed, which does slow it down a tiny bit. Another eviction strategy is random replacement. This one is a bit weird as it doesn't try to be smart. Instead, when the cache full, it just removes a random item. While this does sound like a bad strategy, in practice, it's actually not far off LRU, and it's much simpler to implement. That's why it's used in small ARM processors to keep their designs simple. But what fascinated me the most about caching was that it was invented in 1965 by Maurice Wilkes, a British computer scientist. In his paper, he wrote that cache memory should automatically fill itself with data from a slower main memory to speed up subsequent requests. Amazing to see that technologies invented over 55 years ago are still being used and perfected to this day. Thanks for watching this video. I hope you liked it, and if you did, please consider subscribing. And I'll see you in the next video!
Info
Channel: Simply Explained
Views: 27,192
Rating: 4.9747434 out of 5
Keywords: lesson, course, training, basics, basic tutorial, beginner, best practices, dummies, fundamentals, free, getting started, introduction, howto, tutorial, learn, understand, educate, education, cache, caching, browser, LRU, least recently used, fast memory, slow memory, memory, storage, processor, L1, l2 cache, L3 cache, cache memory, maurice wilkes, computer science, cs
Id: 6FyXURRVmR0
Channel Id: undefined
Length: 4min 55sec (295 seconds)
Published: Wed Nov 25 2020
Related Videos
Note
Please note that this website is currently a work in progress! Lots of interesting data and statistics to come.