Update versus Invalidate
Much debate over the years: tradeoff depends on sharing patterns
Intuition:
- If those that used continue to use, and writes between use are few, update should do better
- e.g. producer-consumer pattern
- If those that use unlikely to use again, or many writes between reads, updates not good
- “pack rat” phenomenon particularly bad under process migration
- useless updates where only last one will be used
Can construct scenarios where one or other is much better
Can combine them in hybrid schemes (see text)
- E.g. competitive: observe patterns at runtime and change protocol