Rochester Software Transactional Memory