Cargando…
Root Causing Linearizability Violations
Linearizability is the de facto correctness criterion for concurrent data type implementations. Violation of linearizability is witnessed by an error trace in which the outputs of individual operations do not match those of a sequential execution of the same operations. Extensive work has been done...
Autores principales: | , , , |
---|---|
Formato: | Online Artículo Texto |
Lenguaje: | English |
Publicado: |
2020
|
Materias: | |
Acceso en línea: | https://www.ncbi.nlm.nih.gov/pmc/articles/PMC7363227/ http://dx.doi.org/10.1007/978-3-030-53288-8_17 |
_version_ | 1783559627488624640 |
---|---|
author | Çirisci, Berk Enea, Constantin Farzan, Azadeh Mutluergil, Suha Orhun |
author_facet | Çirisci, Berk Enea, Constantin Farzan, Azadeh Mutluergil, Suha Orhun |
author_sort | Çirisci, Berk |
collection | PubMed |
description | Linearizability is the de facto correctness criterion for concurrent data type implementations. Violation of linearizability is witnessed by an error trace in which the outputs of individual operations do not match those of a sequential execution of the same operations. Extensive work has been done in discovering linearizability violations, but little work has been done in trying to provide useful hints to the programmer when a violation is discovered by a tester tool. In this paper, we propose an approach that identifies the root causes of linearizability errors in the form of code blocks whose atomicity is required to restore linearizability. The key insight of this paper is that the problem can be reduced to a simpler algorithmic problem of identifying minimal root causes of conflict serializability violation in an error trace combined with a heuristic for identifying which of these are more likely to be the true root cause of non-linearizability. We propose theoretical results outlining this reduction, and an algorithm to solve the simpler problem. We have implemented our approach and carried out several experiments on realistic concurrent data types demonstrating its efficiency. |
format | Online Article Text |
id | pubmed-7363227 |
institution | National Center for Biotechnology Information |
language | English |
publishDate | 2020 |
record_format | MEDLINE/PubMed |
spelling | pubmed-73632272020-07-16 Root Causing Linearizability Violations Çirisci, Berk Enea, Constantin Farzan, Azadeh Mutluergil, Suha Orhun Computer Aided Verification Article Linearizability is the de facto correctness criterion for concurrent data type implementations. Violation of linearizability is witnessed by an error trace in which the outputs of individual operations do not match those of a sequential execution of the same operations. Extensive work has been done in discovering linearizability violations, but little work has been done in trying to provide useful hints to the programmer when a violation is discovered by a tester tool. In this paper, we propose an approach that identifies the root causes of linearizability errors in the form of code blocks whose atomicity is required to restore linearizability. The key insight of this paper is that the problem can be reduced to a simpler algorithmic problem of identifying minimal root causes of conflict serializability violation in an error trace combined with a heuristic for identifying which of these are more likely to be the true root cause of non-linearizability. We propose theoretical results outlining this reduction, and an algorithm to solve the simpler problem. We have implemented our approach and carried out several experiments on realistic concurrent data types demonstrating its efficiency. 2020-06-13 /pmc/articles/PMC7363227/ http://dx.doi.org/10.1007/978-3-030-53288-8_17 Text en © The Author(s) 2020 Open Access This chapter is licensed under the terms of the Creative Commons Attribution 4.0 International License (http://creativecommons.org/licenses/by/4.0/), which permits use, sharing, adaptation, distribution and reproduction in any medium or format, as long as you give appropriate credit to the original author(s) and the source, provide a link to the Creative Commons license and indicate if changes were made. The images or other third party material in this chapter are included in the chapter's Creative Commons license, unless indicated otherwise in a credit line to the material. If material is not included in the chapter's Creative Commons license and your intended use is not permitted by statutory regulation or exceeds the permitted use, you will need to obtain permission directly from the copyright holder. |
spellingShingle | Article Çirisci, Berk Enea, Constantin Farzan, Azadeh Mutluergil, Suha Orhun Root Causing Linearizability Violations |
title | Root Causing Linearizability Violations |
title_full | Root Causing Linearizability Violations |
title_fullStr | Root Causing Linearizability Violations |
title_full_unstemmed | Root Causing Linearizability Violations |
title_short | Root Causing Linearizability Violations |
title_sort | root causing linearizability violations |
topic | Article |
url | https://www.ncbi.nlm.nih.gov/pmc/articles/PMC7363227/ http://dx.doi.org/10.1007/978-3-030-53288-8_17 |
work_keys_str_mv | AT cirisciberk rootcausinglinearizabilityviolations AT eneaconstantin rootcausinglinearizabilityviolations AT farzanazadeh rootcausinglinearizabilityviolations AT mutluergilsuhaorhun rootcausinglinearizabilityviolations |