Previous | Next --- Slide 51 of 60
Back to Lecture Thumbnails
andykhuu

Wouldn't a TM system using Eager Versioning and Optimistic Conflict detection not guarantee isolation? Isn't it possible for neighboring actions within a transaction to observe partial results since conflict detection only happens after a commit?

weimin

Eager+Optimistic is not used in hardware because once memory is updated later transactions used the updated value even though there is a conflict and since we are using optimistic the work is allowed but will be wasted. In software if we use Lazy then the software needs to check the write buffer for each read and this slows it down, so eager would give a performance increase. Also checking for conflict in software is expensive since we need to check the whole read and write set, by doing optimistic we can reduce the number of checks and improve performance. Thats why we only do Eager+Optimistic in software.

jt

Since in the previous slides we see pessimistic detection could lead to livelock, how do these systems that adopt pessimistic detection actually solve this problem?

endofmoore

I'm uncertain but I imagine that livelock is avoided by implementing a contention manager that ensures that only one arbitrarily choses transaction is given priority over the others.

Please log in to leave a comment.