Disjoint-Access Parallelism: Impossibility, Possibility, and Cost of Transactional Memory Implementations