Re: what kind of workloads use/used TSX?
From the sound of it it's hardware accelerated locking so a bunch of changes to shared memory all appear to other cpus to have changed as a single atomic operation. You can code begin and commit for changes in shared memory as you would for an SQL transaction.
Could be handy, except when hardware support is not there, you need to write alternative locking code yourself anyway, and it didnt really work :(
I can think of a few applications. A big contentious memory cache that occasionally has small changes.
A rules engine where occasionally a rule changes and you don't want to stop the world.
Seems like the sort of trick generally useful in servers.