Enhancing Concurrency in Distributed Transactional Memory through Commutativity

Conference paper
Part of the Lecture Notes in Computer Science book series (LNCS, volume 8097)


Distributed software transactional memory is an emerging, alternative concurrency control model for distributed systems promising to alleviate the difficulties of lock-based distributed synchronization. We consider the multi-versioning (MV) model to avoid unnecessary aborts. MV schemes inherently guarantee commits of read-only transactions, but limit the concurrency of write transactions. In this paper we propose CRF (Commutative Requests First), a new scheduler tailored for enhancing concurrency of write transactions. CRF relies on the notion of commutative transactions, namely conflicting transactions that leave the state of the shared data-set consistent even if validated and committed concurrently. CRF is responsible to detect conflicts among commutative and non-commutative write transactions and then schedules them according to the execution state. We assess the goodness of the approach by an extensive evaluation of a fully implementation of CRF. The tests reveal that CRF improves throughput over a state-of-the-art DTM solution.


Transactional Memory Shared Object Commutative Operation Concurrent Thread Software Transactional Memory 
These keywords were added by machine and not by the authors. This process is experimental and the keywords may be updated as the learning algorithm improves.


  1. 1.
    Ansari, M., Luján, M., Kotselidis, C., Jarvis, K., Kirkham, C., Watson, I.: Steal-on-abort: Improving transactional memory performance through dynamic transaction reordering. In: Seznec, A., Emer, J., O’Boyle, M., Martonosi, M., Ungerer, T. (eds.) HiPEAC 2009. LNCS, vol. 5409, pp. 4–18. Springer, Heidelberg (2009)CrossRefGoogle Scholar
  2. 2.
    Bieniusa, A., Fuhrmann, T.: Consistency in hindsight: A fully decentralized STM algorithm. In: 2010 IEEE IPDPS, pp. 1–12 (April 2010)Google Scholar
  3. 3.
    Blake, G., Dreslinski, R.G., Mudge, T.: Proactive transaction scheduling for contention management. In: Microarchitecture, pp. 156–167 (December 2009)Google Scholar
  4. 4.
    Büttcher, S., Clarke, C.L.A.: Indexing time vs. query time: trade-offs in dynamic information retrieval systems. In: CIKM 2005, pp. 317–318. ACM (2005)Google Scholar
  5. 5.
    TPC Council, tpc-c benchmark, revision 5.11 (February 2010)Google Scholar
  6. 6.
    Demmer, M.J., Herlihy, M.P.: The arrow distributed directory protocol. In: Kutten, S. (ed.) DISC 1998. LNCS, vol. 1499, pp. 119–133. Springer, Heidelberg (1998)CrossRefGoogle Scholar
  7. 7.
    Dolev, S., Hendler, D., Suissa, A.: CAR-STM: scheduling-based collision avoidance and resolution for software transactional memory. In: PODC (2008)Google Scholar
  8. 8.
    Dragojević, A., Guerraoui, R., et al.: Preventing versus curing: avoiding conflicts in transactional memories. In: PODC 2009, pp. 7–16 (2009)Google Scholar
  9. 9.
    Fernandes, S.M., Cachopo, J.: Lock-free and scalable multi-version software transactional memory. In: PPoPP 2011, pp. 179–188. ACM (2011)Google Scholar
  10. 10.
    Herlihy, M., Koskinen, E.: Transactional boosting: a methodology for highly-concurrent transactional objects. In: PPoPP 2008, pp. 207–216. ACM (2008)Google Scholar
  11. 11.
    Herlihy, M., Sun, Y.: Distributed transactional memory for metric-space networks. Distributed Computing 20(3), 195–208 (2007)zbMATHCrossRefGoogle Scholar
  12. 12.
    Kulkarni, M., Pingali, K., Walter, B., Ramanarayanan, G., Bala, K., Chew, L.P.: Optimistic parallelism requires abstractions. In: PLDI (2007)Google Scholar
  13. 13.
    James, R.: Larus and Ravi Rajwar. Transactional Memory. M. and Claypool (2006)Google Scholar
  14. 14.
    Peluso, S., Ruivo, P., Romano, P., Quaglia, F., Rodrigues, L.: When scalability meets consistency: Genuine multiversion update-serializable partial data replication. In: ICDCS 2012 (2012)Google Scholar
  15. 15.
    Peluso, S., Romano, P., Quaglia, F.: SCORe: A scalable one-copy serializable partial replication protocol. In: Narasimhan, P., Triantafillou, P. (eds.) Middleware 2012. LNCS, vol. 7662, pp. 456–475. Springer, Heidelberg (2012)CrossRefGoogle Scholar
  16. 16.
    Perelman, K.: On avoiding spare aborts in transactional memory. In: SPAA 2009 (2009)Google Scholar
  17. 17.
    Perelman, K., Fan.: On maintaining multiple versions in STM. In: PODC 2010 (2010)Google Scholar
  18. 18.
    Pugh, W.: Skip lists: a probabilistic alternative to balanced trees. Commun. (1990)Google Scholar
  19. 19.
    Ramadan, H.E., et al.: Dependence-aware transactional memory for increased concurrency. In: MICRO, pp. 246–257 (2008)Google Scholar
  20. 20.
    Riegel, T., Fetzer, C., Felber, P.: Snapshot isolation for software transactional memory. In: ACM SIGPLAN TRANSACT 2006 (2006)Google Scholar
  21. 21.
    Riegel, T., Fetzer, C., Felber, P.: Time-based transactional memory with scalable time bases. In: SPAA (2007)Google Scholar
  22. 22.
    Riegel, T., Fetzer, C., Sturzrehm, H., Felber, P.: From causal to z-linearizable transactional memory. In: PODC (2007)Google Scholar
  23. 23.
    Saad, M., Binoy Supporting, R.: STM in distributed systems: Mechanisms and a Java framework. In: ACM SIGPLAN Workshop on Transactional Computing (2011)Google Scholar
  24. 24.
    Turcu, A., Ravindran, B.: Hyflow2: A high performance distributed transactional memory framework in scala,
  25. 25.
    Yoo, R.M., Lee, H.-H.S.: Adaptive transaction scheduling for transactional memory systems. In: SPAA, pp. 169–178 (2008)Google Scholar
  26. 26.
    Zhang, B., Ravindran, B.: Brief announcement: on enhancing concurrency in distributed transactional memory. In: PODC (2010)Google Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 2013

Authors and Affiliations

  1. 1.ECE DepartmentVirginia TechBlacksburgUSA

Personalised recommendations