Unfortunately, I've recently read that STM is turning out to have too much overhead in practical applications. Hope they figure it out.
Unfortunately, I've recently read that STM is turning out to have too much overhead in practical applications. Hope they figure it out.
I would be interested in the "too much overhead" article -- can you track it down? I've been researching STM for a while and seen a lot of papers focused on performance and such, so I'd be surprised if whatever the article claims are the problems are not fixable in the long term.
(STM can be nearly reduced to "taking locks", especially if you are compiling, so it really shouldn't be worse than lock-based synchronization, and it's much easier to reason about.)
The issue is that STMs have a lot of book-keeping overhead in addition to the locking.
The fact that there wasn't one leads me to believe that they are susceptible to the same problems and have no hope of getting around it in the future, though; I suspect if that wasn't true, dons would have been all over the comments on proggit, and he was silent. It's thin logic, admittedly, but...