The hard problems are probably things like doing something concurrently or maybe implementing the right feature...
The hard problems are probably things like doing something concurrently or maybe implementing the right feature...
As the quote says, it is not the implementing which is hard, it is the invalidating part that is little bit tricky.
If you try to invalidate the cache in a strict manner, you will not enjoy the benefits of the caching much, since it will invalidate most of the time. If you have more relaxed implementation of it, there is a risk of this exact problem happening.
Turning the caching off is easy, but it can be really difficult to track down the cause after that because you tend to need a specifically-timed race condition, and even when you're sure you've fixed it everyone is really nervous to turn the cache back on again...
The "in the middle of a DDoS" makes it make a lot more sense, and while this is still a cringeworthy situation, the cringing at least on my part is now more sympathetic than horrified.