Optimistic detection is adapted to the most common workload of memory: most reads and writes concern different addresses and the number of conflicts is relatively low.
dasteere
Wouldn't optimistic detection also be good for a scenario where conflicts are high? If conflicts are high the guarantee of forward progress would be good because it would avoid livelock.
koala
I think if the contention is high such that we have a lot of reads but not many writes (or writes are to different places), then pessimistic detection would be good. However, if we have lots of write-write conflicts, then the livelock issue of a pessimistic detection would arise.
Optimistic detection is adapted to the most common workload of memory: most reads and writes concern different addresses and the number of conflicts is relatively low.
Wouldn't optimistic detection also be good for a scenario where conflicts are high? If conflicts are high the guarantee of forward progress would be good because it would avoid livelock.
I think if the contention is high such that we have a lot of reads but not many writes (or writes are to different places), then pessimistic detection would be good. However, if we have lots of write-write conflicts, then the livelock issue of a pessimistic detection would arise.