Advertisement

Check-Wait-Pounce: Increasing Transactional Data Structure Throughput by Delaying Transactions

  • Lance Lebanoff
  • Christina PetersonEmail author
  • Damian Dechev
Conference paper
Part of the Lecture Notes in Computer Science book series (LNCS, volume 11534)

Abstract

Transactional data structures allow data structures to support transactional execution, in which a sequence of operations appears to execute atomically. We consider a paradigm in which a transaction commits its changes to the data structure only if all of its operations succeed; if one operation fails, then the transaction aborts. In this work, we introduce an optimization technique called Check-Wait-Pounce that increases performance by avoiding aborts that occur due to failed operations. Check-Wait-Pounce improves upon existing methodologies by delaying the execution of transactions until they are expected to succeed, using a thread-unsafe representation of the data structure as a heuristic. Our evaluation reveals that Check-Wait-Pounce reduces the number of aborts by an average of 49.0%. Because of this reduction in aborts, the tested transactional linked lists achieve average gains in throughput of 2.5x, while some achieve gains as high as 4x.

Notes

Acknowledgments

This material is based upon work supported by the National Science Foundation under Grant No. 1717515 and Grant No. 1740095. Any opinions, findings, and conclusions or recommendations expressed in this material are those of the author and do not necessarily reflect the views of the National Science Foundation.

References

  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).  https://doi.org/10.1007/978-3-540-92990-1_3CrossRefGoogle Scholar
  2. 2.
    Cachopo, J., Rito-Silva, A.: Versioned boxes as the basis for memory transactions. Sci. Comput. Program. 63(2), 172–185 (2006)MathSciNetCrossRefGoogle Scholar
  3. 3.
    Dalessandro, L., Spear, M.F., Scott, M.L.: NOrec: streamlining STM by abolishing ownership records. In: ACM Sigplan Notices, no. 5. ACM (2010)CrossRefGoogle Scholar
  4. 4.
    Diegues, N., Romano, P.: Time-warp: lightweight abort minimization in transactional memory. In: Symposium on Principles and Practice of Parallel Programming (2014)Google Scholar
  5. 5.
    Ellen, F., Fatourou, P., Ruppert, E., van Breugel, F.: Non-blocking binary search trees. In: Proceedings of the 29th ACM SIGACT-SIGOPS Symposium on Principles of Distributed Computing, pp. 131–140. ACM (2010)Google Scholar
  6. 6.
    Fraser, K.: Practical lock-freedom. Ph.D. thesis, Cambridge University Computer Laboratory (2003). Also available as Technical report UCAM-CL-TR-579 (2004)Google Scholar
  7. 7.
    Golan-Gueta, G., Ramalingam, G., Sagiv, M., Yahav, E.: Automatic scalable atomicity via semantic locking. In: Proceedings of the 20th ACM SIGPLAN Symposium on Principles and Practice of Parallel Programming, pp. 31–41. ACM (2015)Google Scholar
  8. 8.
    Gramoli, V., Guerraoui, R., Letia, M.: Composing relaxed transactions. In: Parallel & Distributed Processing (IPDPS), pp. 1171–1182. IEEE (2013)Google Scholar
  9. 9.
    Hassan, A., Palmieri, R., Ravindran, B.: On developing optimistic transactional lazy set. In: Aguilera, M.K., Querzoni, L., Shapiro, M. (eds.) OPODIS 2014. LNCS, vol. 8878, pp. 437–452. Springer, Cham (2014).  https://doi.org/10.1007/978-3-319-14472-6_29CrossRefGoogle Scholar
  10. 10.
    Herlihy, M., Koskinen, E.: Transactional boosting: a methodology for highly-concurrent transactional objects. In: Proceedings of the 13th ACM SIGPLAN Symposium on Principles and practice of parallel programming, pp. 207–216. ACM (2008)Google Scholar
  11. 11.
    Herlihy, M., Shavit, N.: The Art of Multiprocessor Programming. Morgan Kaufmann, Burlington (2011)Google Scholar
  12. 12.
    Koskinen, E., Parkinson, M., Herlihy, M.: Coarse-grained transactions. ACM Sigplan Not. 45(1), 19–30 (2010)CrossRefGoogle Scholar
  13. 13.
    Lindén, J., Jonsson, B.: A skiplist-based concurrent priority queue with minimal memory contention. In: Baldoni, R., Nisse, N., van Steen, M. (eds.) OPODIS 2013. LNCS, vol. 8304, pp. 206–220. Springer, Cham (2013).  https://doi.org/10.1007/978-3-319-03850-6_15CrossRefGoogle Scholar
  14. 14.
    Papadimitriou, C.H.: The serializability of concurrent database updates. J. ACM (JACM) 26(4), 631–653 (1979)MathSciNetCrossRefGoogle Scholar
  15. 15.
    Pedone, F., Guerraoui, R., Schiper, A.: Transaction reordering in replicated databases. In: Proceedings of the IEEE Symposium on Reliable Distributed Systems, pp. 175–182 (1997)Google Scholar
  16. 16.
    Spiegelman, A., Golan-Gueta, G., Keidar, I.: Transactional data structure libraries. In: Proceedings of the 37th ACM SIGPLAN Conference on Programming Language Design and Implementation, pp. 682–696. ACM (2016)CrossRefGoogle Scholar
  17. 17.
    Zhang, D., Dechev, D.: An efficient lock-free logarithmic search data structure based on multi-dimensional list. In: 2016 IEEE 36th International Conference on Distributed Computing Systems (ICDCS), pp. 281–292, June 2016.  https://doi.org/10.1109/ICDCS.2016.19
  18. 18.
    Zhang, D., Dechev, D.: Lock-free transactions without rollbacks for linked data structures. In: Proceedings of the 28th ACM Symposium on Parallelism in Algorithms and Architectures, SPAA 2016, pp. 325–336. ACM, New York (2016)Google Scholar

Copyright information

© IFIP International Federation for Information Processing 2019

Authors and Affiliations

  • Lance Lebanoff
    • 1
  • Christina Peterson
    • 1
    Email author
  • Damian Dechev
    • 1
  1. 1.University of Central FloridaOrlandoUSA

Personalised recommendations