A Distributed Shared Transactional Memory System