We currently compare transaction incarnations for validation leading to over-estimation when different incarnations write the same value to the memory location (this could be common). A tradeoff we can try is to store (cloned) read values not to invalidate when the read value hasn't changed. Another heuristic to avoid expensive value comparisons is invalidating when we read from a different transaction now (there's a high chance the value has changed).
We currently compare transaction incarnations for validation leading to over-estimation when different incarnations write the same value to the memory location (this could be common). A tradeoff we can try is to store (cloned) read values not to invalidate when the read value hasn't changed. Another heuristic to avoid expensive value comparisons is invalidating when we read from a different transaction now (there's a high chance the value has changed).