On Improving Distributed Transactional Memory Through Nesting, Partitioning And Ordering