Demonstration venue · read-only. Every page can be browsed; the buttons that would change it are switched off. Create an account to run TaxoReview on your own data.

Cezara Dragoi

dblp:46/4882 · DBLP profile ↗
← Back
13ranked-venue papers
7as first author
0since 2021 · last 2020
—ORCID · none

Domains — the database's venue-derived domains; a paper can count in several

Software engineering, systems software and programming languages · 11 · 6 first-authorTheory of computation · 4 · 1 first-authorApplied, interdisciplinary, general and emerging computing · 1 · 1 first-author

Expertise — from the expertise taxonomy: the topics of the expert's papers under the CCF categories. A weight counts papers with recency: 1 for a paper about the topic, 0.3 when the topic is its context, halved every five years.

Software engineering, system software, and programming languages
7 papers
Program verification · 36% Program analysis · 20% Software testing · 17%
Computer architecture, parallel and distributed computing, and storage systems
4 papers
Distributed systems · 100%
Theoretical computer science
2 papers
Distributed computing theory · 100%

Topics — the 19 heaviest of 22, each with the papers that count most for it

TopicWeightPapersLastEvidence papers
Distributed systems
consensus
1.242020
Programming at the edge of synchrony · Proc. ACM Program. Lang. 2020
Testing consensus implementations using communication closure · Proc. ACM Program. Lang. 2020
PSync: a partially synchronous language for fault-tolerant distributed algorithms · POPL 2016
Software testing › system testing
distributed system testing
0.412020
Testing consensus implementations using communication closure · Proc. ACM Program. Lang. 2020
Distributed systems › fault tolerance
byzantine fault tolerance
0.412020
Programming at the edge of synchrony · Proc. ACM Program. Lang. 2020
Distributed systems
fault tolerance
0.412020
Programming at the edge of synchrony · Proc. ACM Program. Lang. 2020
Program verification
deductive verification
0.412019
Communication-Closed Asynchronous Protocols · CAV (2) 2019
Distributed computing theory
fault tolerance
0.412019
Communication-Closed Asynchronous Protocols · CAV (2) 2019
Programming languages and type systems
domain-specific languages
0.212016
PSync: a partially synchronous language for fault-tolerant distributed algorithms · POPL 2016
Distributed systems › fault tolerance › robust distributed algorithms
fault-tolerant distributed algorithms
0.212016
PSync: a partially synchronous language for fault-tolerant distributed algorithms · POPL 2016
Concurrent programming › concurrent data structures
concurrent objects
0.212013
Automatic Linearizability Proofs of Concurrent Objects with Cooperating Updates · CAV 2013
Program verification
concurrent program verification
0.212013
Automatic Linearizability Proofs of Concurrent Objects with Cooperating Updates · CAV 2013
Concurrent programming › atomicity
linearizability
0.212013
Automatic Linearizability Proofs of Concurrent Objects with Cooperating Updates · CAV 2013
Program verification › concurrent program verification
linearizability verification
0.212013
Automatic Linearizability Proofs of Concurrent Objects with Cooperating Updates · CAV 2013
Programming languages and type systems › language design
programming abstractions
0.112020
Programming at the edge of synchrony · Proc. ACM Program. Lang. 2020
Program analysis › static analysis › abstract interpretation
abstract domain
0.112011
On inter-procedural analysis of programs with lists and data · PLDI 2011
Program analysis › static analysis
abstract interpretation
0.112011
On inter-procedural analysis of programs with lists and data · PLDI 2011
Program analysis › static analysis
interprocedural analysis
0.112011
On inter-procedural analysis of programs with lists and data · PLDI 2011
Program analysis › static analysis › pointer analysis
shape analysis
0.112011
On inter-procedural analysis of programs with lists and data · PLDI 2011
Distributed systems › replication
state machine replication
0.112019
Communication-Closed Asynchronous Protocols · CAV (2) 2019
Program verification
invariant generation
0.112010
Invariant Synthesis for Programs Manipulating Lists with Unbounded Data · CAV 2010

Methods — techniques the papers use, named apart from their topics

round switch protocol · 0.9randomized testing · 0.9partial synchrony · 0.9lossy synchronous execution · 0.9failure bounds · 0.9runtime system · 0.8observational refinement · 0.8rely-guarantee reasoning · 0.2cooperating updates · 0.2abstract interpretation · 0.1
YearPublicationVenuePosition
2020 Testing consensus implementations using communication closure
abstract
Large scale production distributed systems are difficult to design and test. Correctness must be ensured when processes run asynchronously, at arbitrary rates relative to each other, and in the presence of failures, e.g., process crashes or message losses. These conditions create a huge space of executions that is difficult to explore in a principled way. Current testing techniques focus on systematic or randomized exploration of all executions of an implementation while treating the implemented algorithms as black boxes. On the other hand, proofs of correctness of many of the underlying algorithms often exploit semantic properties that reduce reasoning about correctness to a subset of behaviors. For example, the communication-closure property, used in many proofs of distributed consensus algorithms, shows that every asynchronous execution of the algorithm is equivalent to a lossy synchronous execution, thus reducing the burden of proof to only that subset. In a lossy synchronous execution, processes execute in lock-step rounds, and messages are either received in the same round or lost forever—such executions form a small subset of all asynchronous ones. We formulate the communication-closure hypothesis , which states that bugs in implementations of distributed consensus algorithms will already manifest in lossy synchronous executions and present a testing algorithm based on this hypothesis. We prioritize the search space based on a bound on the number of failures in the execution and the rate at which these failures are recovered. We show that a random testing algorithm based on sampling lossy synchronous executions can empirically find a number of bugs—including previously unknown ones—in production distributed systems such as Zookeeper, Cassandra, and Ratis, and also produce more understandable bug traces.
Cezara Dragoi, Constantin Enea, Burcu Kulahcioglu Ozkan, Rupak Majumdar, Filip Niksic
Proc. ACM Program. Lang.1
2020 Programming at the edge of synchrony
abstract
Synchronization primitives for fault-tolerant distributed systems that ensure an effective and efficient cooperation among processes are an important challenge in the programming languages community. We present a new programming abstraction, ReSync, for implementing benign and Byzantine fault-tolerant protocols. ReSync has a new round structure that offers a simple abstraction for group communication, like it is customary in synchronous systems, but also allows messages to be received one by one, like in the asynchronous systems. This extension allows implementing network and algorithm-specific policies for the message reception, which is not possible in classic round models. The execution of ReSync programs is based on a new generic round switch protocol that generalizes the famous theoretical result about consensus in the presence of partial synchrony by of Dwork, Lynch, and Stockmeyer. We evaluate experimentally the performance of ReSync’s execution platform, by comparing consensus implementations in ReSync with LibPaxos3, etcd, and Bft-SMaRt, three consensus libraries tolerant to benign, resp. byzantine faults.
Cezara Dragoi, Josef Widder, Damien Zufferey
Proc. ACM Program. Lang.1
2019 Communication-Closed Asynchronous Protocols
abstract
The verification of asynchronous fault-tolerant distributed systems is challenging due to unboundedly many interleavings and network failures (e.g., processes crash or message loss). We propose a method that reduces the verification of asynchronous fault-tolerant protocols to the verification of round-based synchronous ones. Synchronous protocols are easier to verify due to fewer interleavings, bounded message buffers etc. We implemented our reduction method and applied it to several state machine replication and consensus algorithms. The resulting synchronous protocols are verified using existing deductive verification methods.
Andrei Damian, Cezara Dragoi, Alexandru Militaru, Josef Widder
CAV (2)2
2016 PSync: a partially synchronous language for fault-tolerant distributed algorithms
abstract
Fault-tolerant distributed algorithms play an important role in many critical/high-availability applications. These algorithms are notoriously difficult to implement correctly, due to asynchronous communication and the occurrence of faults, such as the network dropping messages or computers crashing. We introduce PSync, a domain specific language based on the Heard-Of model, which views asynchronous faulty systems as synchronous ones with an adversarial environment that simulates asynchrony and faults by dropping messages. We define a runtime system for PSync that efficiently executes on asynchronous networks. We formalise the relation between the runtime system and PSync in terms of observational refinement. The high-level lockstep abstraction introduced by PSync simplifies the design and implementation of fault-tolerant distributed algorithms and enables automated formal verification. We have implemented an embedding of PSync in the Scala programming language with a runtime system for partially synchronous networks. We show the applicability of PSync by implementing several important fault-tolerant distributed algorithms and we compare the implementation of consensus algorithms in PSync against implementations in other languages in terms of code size, runtime efficiency, and verification.
Cezara Dragoi, Thomas A. Henzinger, Damien Zufferey
POPL1
2014 A Logic-Based Framework for Verifying Consensus Algorithms
Cezara Dragoi, Thomas A. Henzinger, Helmut Veith, Josef Widder, Damien Zufferey
VMCAI1
2013 Automatic Linearizability Proofs of Concurrent Objects with Cooperating Updates
Cezara Dragoi, Ashutosh Gupta 0001, Thomas A. Henzinger
CAV1
2013 Local Shape Analysis for Overlaid Data Structures
Cezara Dragoi, Constantin Enea, Mihaela Sighireanu
SAS1
2012 Accurate Invariant Checking for Programs Manipulating Lists and Arrays with Infinite Data
Ahmed Bouajjani, Cezara Dragoi, Constantin Enea, Mihaela Sighireanu
ATVA2
2012 Abstract Domains for Automated Reasoning about List-Manipulating Programs with Infinite Data
Ahmed Bouajjani, Cezara Dragoi, Constantin Enea, Mihaela Sighireanu
VMCAI2
2011 On inter-procedural analysis of programs with lists and data
abstract
We address the problem of automatic synthesis of assertions on sequential programs with singly-linked lists containing data over infinite domains such as integers or reals. Our approach is based on an accurate abstract inter-procedural analysis. Program configurations are represented by graphs where nodes represent list segments without sharing. The data in these list segments are characterized by constraints in abstract domains. We consider a domain where constraints are in a universally quantified fragment of the first-order logic over sequences, as well as a domain constraining the multisets of data in sequences.
Ahmed Bouajjani, Cezara Dragoi, Constantin Enea, Mihaela Sighireanu
PLDI2
2010 Invariant Synthesis for Programs Manipulating Lists with Unbounded Data
Ahmed Bouajjani, Cezara Dragoi, Constantin Enea, Ahmed Rezine, Mihaela Sighireanu
CAV2
2009 A Logic-Based Framework for Reasoning about Composite Data Structures
Ahmed Bouajjani, Cezara Dragoi, Constantin Enea, Mihaela Sighireanu
CONCUR2
2008 On Compiling Structured Interactive Programs with Registers and Voices
Cezara Dragoi, Gheorghe Stefanescu
SOFSEM1