STM forward progress guarantee

STM forward progress guarantee

Is your STM compiler only obstruction-free, or lock-free? If not, are you using typical version counting and locks? Do you have to depend on a contention manager? How do you handle read-only transactions? Finally, how do you avoid the possibility of live-lock?

We use a number of different STM algorithms, but are not publishing the details at present. If I knew your real name I might be more inclined to discuss details (possibly offline).

Do you have to depend on a contention manager?

We have a contention manager (or many contention managers...)

How do you handle read-only transactions?

You need to expand the question, I don't see a specific issue with read-ony transactions.

Finally, how do you avoid the possibility of live-lock?

The level zero answer is that we abort one of the transactions and retry. The deeper answer (how we avoid getting back to the same livelock even after aborting and retrying) is not something I'm going to discuss at the moment.