1. A method, comprising: collecting runtime statistics related to data transaction processing in a concurrent system; receiving a given request to access shared data in the concurrent system; and adaptively determining, based on the collected runtime statistics, the number of reattempts the given request can make to access the shared data prior to access control being switched from a hardware transactional memory to a locking mechanism.