From the OOPSLA paper:
To implement privatization safety in the presence of optimistic readers, ALL transactions must quiesce [46, 13, 33] on commit.
I'm not sure why ALL transactions must wait for quiesce on commit. In my opinion, read-only transactions don't have to wait for quiesce on commit. Just because they can't privatize anything. Because one have to make at least one write in order to privatize. If transaction is read-only, then other transactions are unable to distinguish whether that transaction are already completed, or not, or it's not started, or it won't be executed at all anyway. So waiting for quiesce looks here completely senseless.
What do you think?
I think if you will remove wait for quiesce for read-only transactions, it can have great impact for read-mostly workloads (for example search in hash-map).