Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
skip to main content
10.1145/1706299.1706305acmconferencesArticle/Chapter ViewAbstractPublication PagespoplConference Proceedingsconference-collections
research-article

Sequential verification of serializability

Published: 17 January 2010 Publication History

Abstract

Serializability is a commonly used correctness condition in concurrent programming. When a concurrent module is serializable, certain other properties of the module can be verified by considering only its sequential executions. In many cases, concurrent modules guarantee serializability by using standard locking protocols, such as tree locking or two-phase locking. Unfortunately, according to the existing literature, verifying that a concurrent module adheres to these protocols requires considering concurrent interleavings.
In this paper, we show that adherence to a large class of locking protocols (including tree locking and two-phase locking) can be verified by considering only sequential executions. The main consequence of our results is that in many cases, the (manual or automatic) verification of serializability can itself be done using sequential reasoning .

References

[1]
D. Amit, N. Rinetzky, T. Reps, M. Sagiv, and E. Yahav. Comparison under abstraction for verifying linearizability. In CAV, 2007.
[2]
H. Attiya, G. Ramalingam, and N. Rinetzky. Sequential verification of serializability. Technical report. http://www.dcs.qmul.ac.uk/~maon/pubs/seqser.pdf.
[3]
J. Berdine, A. Chawdhary, B. Cook, D. Distefano, and P. O'Hearn. Variance analyses from invariance analyses. In POPL, 2007.
[4]
J. Berdine, T. Lev-Ami, R. Manevich, G. Ramalingam, and M. Sagiv. Thread quantification for concurrent shape analysis. In CAV, 2008.
[5]
P. A. Bernstein, V. Hadzilacos, and N. Goodman. Concurrency Control and Recovery in Database Systems. Addison-Wesley, 1987.
[6]
A. R. Bradley, Z. Manna, and H. B. Sipma. The polyranking principle. In ICALP, 2005.
[7]
V. K. Chaudhri and V. Hadzilacos. Safe locking policies for dynamic databases. In PODS, 1995.
[8]
S. Cherem, T. M. Chilimbi, and S. Gulwani. Inferring locks for atomic sections. In PLDI, 2008.
[9]
E. M. Clarke, Jr., O. Grumberg, and D. A. Peled. Model checking. MIT Press, Cambridge, MA, USA, 1999.
[10]
B. Cook, A. Podelski, and A. Rybalchenko. Termination proofs for systems code. In PLDI, 2006.
[11]
T. Elmas, S. Qadeer, and S. Tasiran. A calculus of atomic actions. In POPL, 2009.
[12]
F. Fich, M. Herlihy, and N. Shavit. On the space complexity of randomized synchronization. JACM, 45(5), 1998.
[13]
C. Flanagan and S. Qadeer. A type and effect system for atomicity. In PLDI, 2003.
[14]
M. P. Herlihy and J. M. Wing. Linearizability: a correctness condition for concurrent objects. TOPLAS, 12(3), 1990.
[15]
Z. M. Kedem and A. Silberschatz. A characterization of database graphs admitting a simple locking protocol. Acta Informatica, 16, 1981.
[16]
C. S. Lee, N. D. Jones, and A. M. Ben-Amram. The size-change principle for program termination. In POPL, 2001.
[17]
T. Lev-Ami, T. Reps, M. Sagiv, and R. Wilhelm. Putting static analysis to work for verification: A case study. In ISSTA, 2000.
[18]
T. Lev-Ami and M. Sagiv. TVLA: A framework for Kleene based static analysis. In SAS. Springer, 2000.
[19]
R. J. Lipton. Reduction: a method of proving properties of parallel programs. CACM, 18(12), 1975.
[20]
A. Loginov, T. W. Reps, and M. Sagiv. Automated verification of the deutsch-schorr-waite tree-traversal algorithm. In SAS, 2006.
[21]
R. Manevich, T. Lev-Ami, G. Ramalingam, M. Sagiv, and J. Berdine. Heap decomposition for concurrent shape analysis. In SAS, 2008.
[22]
A. Miné. The octagon abstract domain. HOSC, 19(1), 2006.
[23]
C. H. Papadimitriou. The serializability of concurrent database updates. J. ACM, 26(4), 1979.
[24]
M. Segalov, T. Lev-Ami, R. Manevich, G. Ramalingam, and M. Sagiv. Abstract transformers for thread correlation analysis. In APLAS, 2009.
[25]
S. D. Stoller and E. Cohen. Optimistic synchronization-based state-space reduction. FMSD, 28(3), 2006.
[26]
R. H. Thomas. A majority consensus approach to concurrency control for multiple copy databases. ACM Trans. Database Syst., 4(2), 1979.
[27]
V. Vafeiadis. Shape-value abstraction for verifying linearizability. In VMCAI, 2009.
[28]
G. Weikum and G. Vossen. Transactional Information Systems: Theory, Algorithms, and the Practice of Concurrency Control. Morgan Kaufmann, 2001.

Cited By

View all
  • (2020)Adversarial examples for models of codeProceedings of the ACM on Programming Languages10.1145/34282304:OOPSLA(1-30)Online publication date: 13-Nov-2020
  • (2020)DiffStream: differential output testing for stream processing programsProceedings of the ACM on Programming Languages10.1145/34282214:OOPSLA(1-29)Online publication date: 13-Nov-2020
  • (2020)Igloo: soundly linking compositional refinement and separation logic for distributed system verificationProceedings of the ACM on Programming Languages10.1145/34282204:OOPSLA(1-31)Online publication date: 13-Nov-2020
  • Show More Cited By

Recommendations

Comments

Information & Contributors

Information

Published In

cover image ACM Conferences
POPL '10: Proceedings of the 37th annual ACM SIGPLAN-SIGACT symposium on Principles of programming languages
January 2010
520 pages
ISBN:9781605584799
DOI:10.1145/1706299
  • cover image ACM SIGPLAN Notices
    ACM SIGPLAN Notices  Volume 45, Issue 1
    POPL '10
    January 2010
    500 pages
    ISSN:0362-1340
    EISSN:1558-1160
    DOI:10.1145/1707801
    Issue’s Table of Contents
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

In-Cooperation

Publisher

Association for Computing Machinery

New York, NY, United States

Publication History

Published: 17 January 2010

Permissions

Request permissions for this article.

Check for updates

Author Tags

  1. concurrency
  2. reduction
  3. serializability
  4. verification

Qualifiers

  • Research-article

Conference

POPL '10
Sponsor:

Acceptance Rates

Overall Acceptance Rate 824 of 4,130 submissions, 20%

Upcoming Conference

POPL '26

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • Downloads (Last 12 months)6
  • Downloads (Last 6 weeks)0
Reflects downloads up to 25 Jan 2025

Other Metrics

Citations

Cited By

View all
  • (2020)Adversarial examples for models of codeProceedings of the ACM on Programming Languages10.1145/34282304:OOPSLA(1-30)Online publication date: 13-Nov-2020
  • (2020)DiffStream: differential output testing for stream processing programsProceedings of the ACM on Programming Languages10.1145/34282214:OOPSLA(1-29)Online publication date: 13-Nov-2020
  • (2020)Igloo: soundly linking compositional refinement and separation logic for distributed system verificationProceedings of the ACM on Programming Languages10.1145/34282204:OOPSLA(1-31)Online publication date: 13-Nov-2020
  • (2020)Persistent Owicki-Gries reasoning: a program logic for reasoning about persistent programs on Intel-x86Proceedings of the ACM on Programming Languages10.1145/34282194:OOPSLA(1-28)Online publication date: 13-Nov-2020
  • (2020)Projection-based runtime assertions for testing and debugging Quantum programsProceedings of the ACM on Programming Languages10.1145/34282184:OOPSLA(1-29)Online publication date: 13-Nov-2020
  • (2020)Featherweight goProceedings of the ACM on Programming Languages10.1145/34282174:OOPSLA(1-29)Online publication date: 13-Nov-2020
  • (2020)Proving highly-concurrent traversals correctProceedings of the ACM on Programming Languages10.1145/34281964:OOPSLA(1-29)Online publication date: 13-Nov-2020
  • (2020)IndistinguishabilityCommunications of the ACM10.1145/337690263:5(90-99)Online publication date: 20-Apr-2020
  • (2018)Snapshot-Based Synchronization: A Fast Replacement for Hand-over-Hand LockingEuro-Par 2018: Parallel Processing10.1007/978-3-319-96983-1_33(465-479)Online publication date: 1-Aug-2018
  • (2016)Static race detection for device drivers: the Goblint approachProceedings of the 31st IEEE/ACM International Conference on Automated Software Engineering10.1145/2970276.2970337(391-402)Online publication date: 25-Aug-2016
  • Show More Cited By

View Options

Login options

View options

PDF

View or Download as a PDF file.

PDF

eReader

View online with eReader.

eReader

Figures

Tables

Media

Share

Share

Share this Publication link

Share on social media