Constructing Shared Objects That Are Both Robust and High-Throughput

  • Danny Hendler
  • Shay Kutten
Conference paper
Part of the Lecture Notes in Computer Science book series (LNCS, volume 4167)


Shared counters are among the most basic coordination structures in distributed computing. Known implementations of shared counters are either blocking, non-linearizable, or have a sequential bottleneck. We present the first counter algorithm that is both linearizable, nonblocking, and can provably achieve high throughput in semisynchronous executions. The algorithm is based on a novel variation of the software combining paradigm that we call bounded-wait combining. It can thus be used to obtain implementations, possessing the same properties, of any object that supports combinable operations, such as stack or queue. Unlike previous combining algorithms where processes may have to wait for each other indefinitely, in the bounded-wait combining algorithm a process only waits for other processes for a bounded period of time and then ‘takes destiny in its own hands’.

In order to reason rigorously about the parallelism attainable by our algorithm, we define a novel metric for measuring the throughput of shared objects which we believe is interesting in its own right. We use this metric to prove that our algorithm can achieve throughput of Ω(N / logN) in executions where process speeds vary only by a constant factor, where N is the number of processes that can participate in the algorithm.

We also introduce and use pseduo-transactions – a technique for concurrent execution that may prove useful for other algorithms.


Leaf Node Base Object Shared Object High Parallelism Asynchronous Mode 


Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.


  1. 1.
    Alur, R., Attiya, H., Taubenfeld, G.: Time-adaptive algorithms for synchronization. SIAM J. Comput. 26(2), 539–556 (1997)MATHCrossRefMathSciNetGoogle Scholar
  2. 2.
    Aspnes, J., Herlihy, M., Shavit, N.: Counting networks. J. ACM 41(5), 1020–1048 (1994)MATHCrossRefMathSciNetGoogle Scholar
  3. 3.
    Attiya, H., Welch, J.L.: Distributed Computing: Fundamentals, Simulations and Advanced Topics, 2nd edn. Wiley, Chichester (2004)Google Scholar
  4. 4.
    Fich, F.E., Hendler, D., Shavit, N.: Linear lower bounds on real-world implementations of concurrent objects. In: FOCS 2005, pp. 165–173 (2005)Google Scholar
  5. 5.
    Goodman, J.R., Vernon, M.K., Woest, P.J.: Efficent synchronization primitives for large-scale cache-coherent multiprocessors. In: ASPLOS, pp. 64–75 (1989)Google Scholar
  6. 6.
    Gottlieb, A., Grishman, R., Kruskal, C.P., McAuliffe, K.P., Rudolph, L., Snir, M.: The nyu ultracomputer designing a mimd, shared-memory parallel machine. In: ISCA 1998: 25 years of the international symposia on Computer architecture (selected papers), pp. 239–254. ACM Press, New York (1998)CrossRefGoogle Scholar
  7. 7.
    Greenwald, M.: Two-handed emulation: How to build non-blocking implementations of complex data-structures using dcas. In: PODC 2002, pp. 260–269 (2002)Google Scholar
  8. 8.
    Ha, P.H., Papatriantafilou, M., Tsigas, P.: Self-tuning reactive distributed trees for counting and balancingGoogle Scholar
  9. 9.
    Harris, T.L., Fraser, K., Pratt, I.A.: A practical multi-word compare-and-swap operation. In: Malkhi, D. (ed.) DISC 2002. LNCS, vol. 2508. Springer, Heidelberg (2002)CrossRefGoogle Scholar
  10. 10.
    Hendler, D., Shavit, N., Yerushalmi, L.: A scalable lock-free stack algorithm. In: SPAA 2004, pp. 206–215. ACM Press, New York (2004)CrossRefGoogle Scholar
  11. 11.
    Herlihy, M.: Wait-free synchronization. ACM TOPLAS 13(1), 124–149 (1991)CrossRefGoogle Scholar
  12. 12.
    Herlihy, M., Luchango, V., Moir, M.: Obstruction-free synchronization: Double-ended queues as an example. In: ICDCS 2003, pp. 522–529 (2003)Google Scholar
  13. 13.
    Herlihy, M., Shavit, N., Waarts, O.: Linearizable counting networks. Distributed Computing 9(4), 193–203 (1996)CrossRefGoogle Scholar
  14. 14.
    Herlihy, M., Wing, J.M.: Linearizability: a correctness condition for concurrent objects. ACM TOPLAS 12(3), 463–492 (1990)CrossRefGoogle Scholar
  15. 15.
    Kruskal, C.P., Rudolph, L., Snir, M.: Efficient synchronization on multiprocessors with shared memory. ACM TOPLAS 10(4), 579–601 (1988)MATHCrossRefGoogle Scholar
  16. 16.
    Lynch, N.A., Shavit, N.: Timing-based mutual exclusion. In: IEEE Real-Time Systems Symposium, pp. 2–11 (1992)Google Scholar
  17. 17.
    Moir, M., Nussbaum, D., Shalev, O., Shavit, N.: Using elimination to implement scalable and lock-free fifo queues. In: SPAA 2005, New York, pp. 253–262 (2005)Google Scholar
  18. 18.
    Shavit, N., Zemach, A.: Diffracting trees. ACM Trans. Comput. Syst. 14(4), 385–428 (1996)CrossRefGoogle Scholar
  19. 19.
    Yew, P.-C., Tzeng, N.-F., Lawrie, D.H.: Distributing hot-spot addressing in large-scale multiprocessors. IEEE Trans. Comput. 36(4), 388–395 (1987)CrossRefGoogle Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 2006

Authors and Affiliations

  • Danny Hendler
    • 1
  • Shay Kutten
    • 1
  1. 1.Faculty of Industrial Engineering and ManagementTechnionHaifaIsrael

Personalised recommendations