Nothing Special   »   [go: up one dir, main page]

skip to main content
10.1145/2095050.2095070acmconferencesArticle/Chapter ViewAbstractPublication PagessplashConference Proceedingsconference-collections
research-article

A lock-free cache invalidation protocol for the atom system

Published: 23 October 2011 Publication History

Abstract

The Automatic Transaction-Oriented Memoization (ATOM) system is a thread-safe memoization tool specifically designed for multi-threaded object-oriented programs.
Currently, searching the ATOM's memo cache for a hit is still an expensive operation with linear time complexity.
We present a new lock-free cache invalidation protocol for the ATOM that allows multiple threads to concurrently search and invalidate cache entries, resorting to helping from threads to decrease the time spent with cache operations.
Results with the STMBench7 benchmark show that for a read-only workload the new algorithm increases the throughput of the benchmark up to 14-fold and that it scales well up to 48 cores, the maximum number of physical cores available on the machine used for the tests.

References

[1]
J. Cachopo and A. Rito-Silva. Versioned boxes as the basis for memory transactions. Science of Computer Programming, 63 (2): 172--185, 2006.
[2]
R. Guerraoui, M. Kapalka, and J. Vitek. STMBench7: A Benchmark for Software Transactional Memory. ACM SIGOPS Operating Systems Review, 41 (3): 315--324, 2007.
[3]
J. Manson, W. Pugh, and S. Adve. The Java memory model. In Proceedings of the 32nd ACM SIGPLAN-SIGACT symposium on Principles of programming languages, pages 378--391. ACM, 2005. ISBN 158113830X.
[4]
D. Michie. Memo functions and machine learning. Nature, 218 (1): 19--22, 1968.
[5]
H. Rito. ATOM: Automatic Transaction-Oriented Memoization, October 2009. Master's thesis, Technical University of Lisbon.
[6]
H. Rito and J. Cachopo. Memoization of methods using software transactional memory to track internal state dependencies. In Proceedings of the 8th International Conference on the Principles and Practice of Programming in Java, pages 89--98. ACM, 2010.

Recommendations

Comments

Please enable JavaScript to view thecomments powered by Disqus.

Information & Contributors

Information

Published In

cover image ACM Conferences
SPLASH '11 Workshops: Proceedings of the compilation of the co-located workshops on DSM'11, TMC'11, AGERE! 2011, AOOPES'11, NEAT'11, & VMIL'11
October 2011
358 pages
ISBN:9781450311830
DOI:10.1145/2095050
Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than ACM must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from [email protected]

Sponsors

Publisher

Association for Computing Machinery

New York, NY, United States

Publication History

Published: 23 October 2011

Permissions

Request permissions for this article.

Check for updates

Author Tags

  1. dependency
  2. invalidation
  3. memoization

Qualifiers

  • Research-article

Conference

SPLASH '11
Sponsor:

Upcoming Conference

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • 0
    Total Citations
  • 63
    Total Downloads
  • Downloads (Last 12 months)0
  • Downloads (Last 6 weeks)0
Reflects downloads up to 24 Nov 2024

Other Metrics

Citations

View Options

Login options

View options

PDF

View or Download as a PDF file.

PDF

eReader

View online with eReader.

eReader

Media

Figures

Other

Tables

Share

Share

Share this Publication link

Share on social media