Dynamic scheduling in distributed transactional memory

Costas Busch, Maurice Herlihy, Miroslav Popovic, Gokarna Sharma

Research output: Contribution to journalArticlepeer-review

1 Scopus citations


We investigate scheduling algorithms for distributed transactional memory systems where transactions residing at nodes of a communication graph operate on shared, mobile objects. A transaction requests the objects it needs, executes once those objects have been assembled, and then sends the objects to other waiting transactions. We study scheduling algorithms with provable performance guarantees. Previously, only the offline batch scheduling setting was considered in the literature where transactions are known a priori. Minimizing execution time, even for the offline batch scheduling, is known to be NP-hard for arbitrary communication graphs. In this paper, we analyze for the very first time scheduling algorithms in the online dynamic scheduling setting where transactions are not known a priori and the transactions may arrive online over time. We provide efficient and near-optimal execution time schedules for dynamic scheduling in many specialized network architectures. The core of our technique is a method to convert offline schedules to online. We first describe a centralized scheduler which we then adapt to a purely distributed scheduler. To our knowledge, these are the first attempts to obtain provably efficient online execution schedules for distributed transactional memory.

Original languageEnglish (US)
Pages (from-to)19-36
Number of pages18
JournalDistributed Computing
Issue number1
StatePublished - Feb 2022


  • Data-flow model
  • Distributed systems
  • Dynamic scheduling
  • Execution time
  • Transactional memory

ASJC Scopus subject areas

  • Theoretical Computer Science
  • Hardware and Architecture
  • Computer Networks and Communications
  • Computational Theory and Mathematics


Dive into the research topics of 'Dynamic scheduling in distributed transactional memory'. Together they form a unique fingerprint.

Cite this