Skip to main content
Log in

Distributed transactional memory for general networks

  • Published:
Distributed Computing Aims and scope Submit manuscript

Abstract

We consider the problem of implementing transactional memory in large-scale distributed networked systems. We present Spiral, a novel distributed directory-based protocol for transactional memory, and theoretically analyze and experimentally evaluate it for the performance boundaries of this approach from the worst-case perspective. Spiral is designed for the data-flow distributed implementation of software transactional memory which supports three basic operations: publish, allowing a shared object to be inserted in the directory so that other nodes can find it; lookup, providing a read-only copy of the object to the requesting node; move, allowing the requesting node to write the object locally after the node gets it. The protocol runs on a hierarchical directory construction based on sparse covers, where clusters at each level are ordered to avoid race conditions while serving concurrent requests. Given a shared object the protocol maintains a directory path pointing to the object. The basic idea is to use “spiral” paths that grow outward to search for the directory path of the object in a bottom-up fashion. For general networks, this protocol guarantees an \(\mathcal{O}(\log ^2 n\cdot \log D)\) approximation in sequential and one-shot concurrent executions of a finite set of move requests, where \(n\) is the number of nodes and \(D\) is the diameter of the network. It also guarantees poly-log approximation for any single lookup request. Our bounds are deterministic and hold in the worst-case. Moreover, this protocol requires only polylogarithmic bits of memory per node. Experimental evaluations in real networks also confirm our theoretical findings. To the best of our knowledge, this is the first deterministic consistency protocol for distributed transactional memory that achieves poly-log approximation in general networks.

This is a preview of subscription content, log in via an institution to check access.

Access this article

Price excludes VAT (USA)
Tax calculation will be finalised during checkout.

Instant access to the full article PDF.

Fig. 1
Fig. 2
Fig. 3
Fig. 4
Fig. 5
Fig. 6
Fig. 7
Fig. 8
Fig. 9
Fig. 10
Fig. 11
Fig. 12
Fig. 13
Fig. 14
Fig. 15
Fig. 16

Similar content being viewed by others

Notes

  1. Given a graph \(G'=(V',E')\) and a spanning tree \(T\) of the graph \(G'\), for nodes \(u,v\in V'\), the stretch of the spanning tree \(T\) is defined as \(S_{T}{:=}\max _{u,v\in V'}\frac{d_{T}(u,v)}{d_{G'}(u,v)}\), where \(d_{T}(u,v)\) denote the distance between \(u\) and \(v\) on \(T\), and \(d_{G'}(u,v)\) denote the distance between \(u\) and \(v\) on \(G'\).

  2. The doubling dimension metric is defined as follows: Let the space within radius \(\delta \) of a point be called the ball centered at that point. A point set \(\varGamma \) has doubling dimension \(\rho \) if any set of points in \(\varGamma \) that are covered by a ball of radius \(\delta \) can be covered by \(2^\rho \) balls of radius \(\frac{\delta }{2}\). We say that a metric is doubling and has a low dimension if \(\rho \) is bounded by a constant and is small.

  3. To be more precise \(\varTheta (\log \log n)\) of the highest covers are equal to \(Z_h\) but in those (except \(Z_h\)) we will not remove the replicated clusters.

References

  1. Alon, N., Kalai, G., Ricklin, M., Stockmeyer, L.J.: Lower bounds on the competitive ratio for mobile user tracking and distributed job scheduling. Theor. Comput. Sci. 130(1), 175–201 (1994)

    Article  MathSciNet  MATH  Google Scholar 

  2. 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: Proceedings of the 4th International Conference on High Performance Embedded Architectures and Compilers (HiPEAC), pp. 4–18 (2009)

  3. Attar, R., Bernstein, P.A., Goodman, N.: Site initialization, recovery, and backup in a distributed database system. IEEE Trans. Softw. Eng. 10(6), 645–650 (1984)

    Article  Google Scholar 

  4. Attiya, H., Gramoli, V., Milani, A.: A provably starvation-free distributed directory protocol. In: Proceedings of the 12th International Conference on Stabilization, Safety, and Security of Distributed Systems (SSS), pp. 405–419 (2010)

  5. Awerbuch, B., Patt-Shamir, B., Varghese, G.: Self-stabilization by local checking and correction (extended abstract). In: Proceedings of the 32nd Annual Symposium on Foundations of Computer Science (FOCS), pp. 268–277 (1991)

  6. Awerbuch, B., Peleg, D.: Sparse partitions. Proceedings of the 31st Annual Symposium on Foundations of Computer Science (FOCS), vol. 2, pp. 503–513 (1990)

  7. Awerbuch, B., Peleg, D.: Concurrent online tracking of mobile users. SIGCOMM Comput. Commun. Rev. 21(4), 221–233 (1991)

    Article  Google Scholar 

  8. Bartal, Y.: Probabilistic approximation of metric spaces and its algorithmic applications. In: Proceedings of the 37th Annual Symposium on Foundations of Computer Science (FOCS), pp. 184–193 (1996)

  9. Bartal, Y., Rosen, A.: The distributed k-server problem: a competitive distributed translator for k-server algorithms. J. Algorithms 23(2), 241–264 (1997)

    Article  MathSciNet  MATH  Google Scholar 

  10. Ben-David, S., Borodin, A., Karp, R., Tardos, G., Wigderson, A.: On the power of randomization in on-line algorithms. Algorithmica 11(1), 2–14 (1994)

    Article  MathSciNet  MATH  Google Scholar 

  11. Bernstein, P.A., Hadzilacos, V., Goodman, N.: Concurrency Control and Recovery in Database Systems. Addison-Wesley Longman Publishing Co. Inc, Boston, MA (1987)

    Google Scholar 

  12. Bocchino, R.L., Adve, V.S., Chamberlain, B.L.: Software transactional memory for large scale clusters. In: Proceedings of the 13th ACM SIGPLAN Symposium on Principles and Practice of Parallel Programming (PPoPP), pp. 247–258 (2008)

  13. Couceiro, M., Romano, P., Carvalho, N., Rodrigues, L.: D2stm: dependable distributed software transactional memory. In: Proceedings of the 15th IEEE Pacific Rim International Symposium on Dependable Computing (PRDC), pp. 307–313 (2009)

  14. Demmer, M.J., Herlihy, M.: The arrow distributed directory protocol. In: Proceedings of the 12th International Symposium on Distributed Computing (DISC), pp. 119–133 (1998)

  15. Dijkstra, E.W.: Self-stabilizing systems in spite of distributed control. Commun. ACM 17(11), 643–644 (1974)

    Article  MATH  Google Scholar 

  16. Erdős, P., Rényi, A.: On random graphs I. Publ. Math. Debrecen 6, 290–297 (1959)

    MathSciNet  Google Scholar 

  17. Fakcharoenphol, J., Rao, S., Talwar, K.: A tight bound on approximating arbitrary metrics by tree metrics. J. Comput. Syst. Sci. 69(3), 485–497 (2004)

    Article  MathSciNet  MATH  Google Scholar 

  18. Gouda, M.G., Multari, N.J.: Stabilizing communication protocols. IEEE Trans. Comput. 40(4), 448–458 (1991)

    Article  Google Scholar 

  19. Guerraoui, R., Herlihy, M., Pochon, B.: Toward a theory of transactional contention managers. In: Proceedings of the Twenty-Fourth Annual ACM Symposium on Principles of Distributed Computing (PODC), pp. 258–264 (2005)

  20. Gupta, A.: Steiner points in tree metrics don’t (really) help. In: Proceedings of the Twelfth Annual ACM-SIAM Symposium on Discrete Algorithms (SODA), pp. 220–227 (2001)

  21. Gupta, A., Hajiaghayi, M.T., Räcke, H.: Oblivious network design. In: Proceedings of the Seventeenth Annual ACM-SIAM Symposium on Discrete Algorithms (SODA), pp. 970–979 (2006)

  22. Hammond, L., Carlstrom, B.D., Wong, V., Chen, M., Kozyrakis, C., Olukotun, K.: Transactional coherence and consistency: simplifying parallel hardware and software. IEEE Micro 24(6), 92–103 (2004)

    Article  Google Scholar 

  23. Meyer auf der Heide, F., Vöcking, B., Westermann, M.: Caching in networks (extended abstract). In: Proceedings of the Eleventh Annual ACM-SIAM Symposium on Discrete Algorithms (SODA), pp. 430–439 (2000)

  24. Herlihy, M., Kuhn, F., Tirthapura, S., Wattenhofer, R.: Dynamic analysis of the arrow distributed protocol. Theor. Comput. Syst. 39(6), 875–901 (2006)

    Article  MathSciNet  MATH  Google Scholar 

  25. Herlihy, M., Luchangco, V., Moir, M., Scherer, W.N., III: Software transactional memory for dynamic-sized data structures. In: Proceedings of the Twenty-Second Annual Symposium on Principles of Distributed Computing (PODC), pp. 92–101 (2003)

  26. Herlihy, M., Moss, J.E.B.: Transactional memory: architectural support for lock-free data structures. SIGARCH Comput. Arch. News 21(2), 289–300 (1993)

    Article  Google Scholar 

  27. Herlihy, M., Sun, Y.: Distributed transactional memory for metric-space networks. Distrib. Comput. 20(3), 195–208 (2007)

    Article  MATH  Google Scholar 

  28. Herlihy, M., Tirthapura, S., Wattenhofer, R.: Competitive concurrent distributed queuing. In: Proceedings of the Twentieth Annual ACM Symposium on Principles of Distributed Computing (PODC), pp. 127–133 (2001)

  29. Karger, D.R., Ruhl, M.: Finding nearest neighbors in growth-restricted metrics. In: Proceedings of the Thiry-Fourth Annual ACM Symposium on Theory of Computing (STOC), pp. 741–750 (2002)

  30. Kotselidis, C., Ansari, M., Jarvis, K., Luján, M., Kirkham, C., Watson, I.: Distm: a software transactional memory framework for clusters. In: Proceedings of the 37th International Conference on Parallel Processing (ICPP), pp. 51–58 (2008)

  31. Krauthgamer, R., Lee, J.R.: Navigating nets: simple algorithms for proximity search. In: Proceedings of the Fifteenth Annual ACM-SIAM Symposium on Discrete Algorithms (SODA), pp. 798–807 (2004)

  32. Krick, C., Räcke, H., Westermann, M.: Approximation algorithms for data management in networks. Theor. Comput. Syst. 36(5), 497–519 (2003)

    Article  MATH  Google Scholar 

  33. Kuhn, F., Wattenhofer, R.: Dynamic analysis of the arrow distributed protocol. In: Proceedings of the Sixteenth Annual ACM Symposium on Parallelism in Algorithms and Architectures (SPAA), pp. 294–301 (2004)

  34. Luby, M.: A simple parallel algorithm for the maximal independent set problem. SIAM J. Comput. 15(4), 1036–1053 (1986)

    Article  MathSciNet  MATH  Google Scholar 

  35. Maggs, B., auf der Heide, F.M., Voecking, B., Westermann, M.: Exploiting locality for data management in systems of limited bandwidth. In: Proceedings of the 38th Annual Symposium on Foundations of Computer Science (FOCS), pp. 284–293 (1997)

  36. Manassiev, K., Mihailescu, M., Amza, C.: Exploiting distributed version concurrency in a transactional memory cluster. In: Proceedings of the Eleventh ACM SIGPLAN Symposium on Principles and Practice of Parallel Programming (PPoPP), pp. 198–208 (2006)

  37. Naimi, M., Trehel, M., Arnold, A.: A log(n) distributed mutual exclusion algorithm based on path reversal. J. Parallel Distrib. Comput. 34(1), 1–13 (1996)

    Article  Google Scholar 

  38. Plaxton, C.G., Rajaraman, R., Richa, A.W.: Accessing nearby copies of replicated objects in a distributed environment. Theor. Comput. Syst. 32(3), 241–280 (1999)

    Article  MathSciNet  MATH  Google Scholar 

  39. Rajaraman, R., Richa, A.W., Vöcking, B., Vuppuluri, G.: A data tracking scheme for general networks. In: Proceedings of the Thirteenth Annual ACM Symposium on Parallel Algorithms and Architectures (SPAA), pp. 247–254 (2001)

  40. Raymond, K.: A tree-based algorithm for distributed mutual exclusion. ACM Trans. Comput. Syst. 7(1), 61–77 (1989)

    Article  MathSciNet  Google Scholar 

  41. Robins, G., Zelikovsky, A.: Improved steiner tree approximation in graphs. In: Proceedings of the Eleventh Annual ACM-SIAM Symposium on Discrete Algorithms (SODA), pp. 770–779 (2000)

  42. Scherer III, W.N., Scott, M.L.: Advanced contention management for dynamic software transactional memory. In: Proceedings of the Twenty-Fourth Annual ACM Symposium on Principles of Distributed Computing (PODC), pp. 240–248 (2005)

  43. Sharma, G., Busch, C.: A competitive analysis for balanced transactional memory workloads. Algorithmica 63(1–2), 296–322 (2012)

    Article  MathSciNet  MATH  Google Scholar 

  44. Sharma, G., Busch, C.: Window-based greedy contention management for transactional memory: theory and practice. Distrib. Comput. 25(3), 225–248 (2012)

    Article  MATH  Google Scholar 

  45. Sharma, G., Busch, C.: An analysis framework for distributed hierarchical directories. Algorithmica, Online First, pp. 1–32 (A preliminary version). In: Proceedings of the 14th International Conference on Distributed Computing and Networking (ICDCN), LNCS, vol. 7730, pp. 378–392 (2013)

  46. Sharma, G., Busch, C., Srinivasagopalan, S.: Distributed transactional memory for general networks. In: Proceedings of the 26th IEEE International Parallel and Distributed Processing Symposium (IPDPS), pp. 1045–1056 (2012)

  47. Shavit, N., Touitou, D.: Software transactional memory. Distrib. Comput. 10(2), 99–116 (1997)

    Article  Google Scholar 

  48. Sun, Y.: The ballistic protocol: Location-aware distributed cache coherence in metric-space networks. Ph. D. thesis, Brown University (2006)

  49. Takahashi, H., Matsuyama, A.: An approximate solution for the Steiner problem in graphs. Math. Japonica 24, 573–577 (1980)

    MathSciNet  MATH  Google Scholar 

  50. Talwar, K.: Bypassing the embedding: algorithms for low dimensional metrics. In: Proceedings of the Thirty-Sixth Annual ACM Symposium on Theory of Computing (STOC), pp. 281–290 (2004)

  51. Tirthapura, S., Herlihy, M.: Self-stabilizing distributed queuing. IEEE Trans. Parallel Distrib. Syst. 17(7), 646–655 (2006)

    Article  Google Scholar 

  52. Zhang, B., Ravindran, B.: BA: Relay—a cache-coherence protocol for distributed transactional memory. In: Proceedings of the 13th International Conference on Principles of Distributed Systems (OPODIS), pp. 48–53 (2009)

  53. Zhang, B., Ravindran, B.: Dynamic analysis of the relay cache-coherence protocol for distributed transactional memory. In: Proceedings of the 24th IEEE International Parallel and Distributed Processing Symposium (IPDPS), pp. 1–11 (2010)

Download references

Acknowledgments

The authors would like to thank Srivathsan Srinivasagopalan, the anonymous reviewers of IPDPS 2012, and the anonymous reviewers and associate editor Yehuda Afek of this journal for their careful reading and very constructive suggestions on the earlier drafts of this work.

Author information

Authors and Affiliations

Authors

Corresponding author

Correspondence to Gokarna Sharma.

Additional information

This research is supported in part by the National Science Foundation Grant No. CCF-1320835. A preliminary version of this paper appears in Proceedings of the 26th International Parallel and Distributed Processing Symposium (IPDPS), pp. 1045–1056, 2012 [46].

Rights and permissions

Reprints and permissions

About this article

Cite this article

Sharma, G., Busch, C. Distributed transactional memory for general networks. Distrib. Comput. 27, 329–362 (2014). https://doi.org/10.1007/s00446-014-0214-7

Download citation

  • Received:

  • Accepted:

  • Published:

  • Issue Date:

  • DOI: https://doi.org/10.1007/s00446-014-0214-7

Keywords

Navigation