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 explanation
- good analogy
- difficult/hard problem
- how good/perfect does it really need to be?
- good point
- cache invalidation is hard
- hard things in computer science
- good question
- life in general
- where it shines / best application
- generalized explanation
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.