7 Matching Annotations
- Feb 2021
So the hard and unsolvable problem becomes: how up-to-date do you really need to be?
After considering the value we place, and the tradeoffs we make, when it comes to knowing anything of significance, I think it becomes much easier to understand why cache invalidation is one of the hard problems in computer science
the crux of the problem is: trade-offs
the 2 hardest problems in computer science are essentially the 2 hardest problems of life in general, as far as humans and information are concerned.
The non-determinism is why cache invalidation — and that other hard problem, naming things — are uniquely and intractably hard problems in computer science. Computers can perfectly solve deterministic problems. But they can’t predict when to invalidate a cache because, ultimately, we, the humans who design and build computational processes, can’t agree on when a cache needs to be invalidated.
Sometimes humorously extended as “cache invalidation, naming things, and off-by-one errors.”
- main/key/central/essential/core thing/point/problem/meat
- good analogy
- life in general
- hard things in computer science
- where it shines / best application
- generalized explanation
- how good/perfect does it really need to be?
- good point
- good explanation
- cache invalidation is hard
- difficult/hard problem
- good question
There’s only one hard thing in Computer Science: human communication. The most complex part of cache invalidation is figuring out what the heck people mean with the word cache. Once you get that sorted out, the rest is not that complicated; the tools are out there, and they’re pretty good.