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. A simulation from public publication records: the people listed were not invited and did not agree to review.
? Tutorial for this page

Srdjan Petrovic

dblp:63/5714 · DBLP profile ↗
← Back
9ranked-venue papers
1as first author
2since 2021 · last 2025
0009-0007-4320-6673ORCID · corroborated

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

Systems, architecture and hardware · 3Databases, data management, data science and information retrieval · 2 · 1 first-author · 1 since 2021Theory of computation · 2 · 1 first-authorSoftware engineering, systems software and programming languages · 1 · 1 since 2021Applied, interdisciplinary, general and emerging computing · 1

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
1 paper
Software testing · 50% Software maintenance and evolution · 50%
Databases, data mining, and information retrieval
1 paper
Database system architecture and tuning · 100%
Computer architecture, parallel and distributed computing, and storage systems
2 papers
Distributed systems · 64% Parallel and multicore computing · 28% Processor architecture and microarchitecture · 8%

Topics — the 5 heaviest of 8, each with the papers that count most for it

TopicWeightPapersLastEvidence papers
Software testing
differential testing
0.912025
Vive la Différence: Practical Diff Testing of Stateful Applications · Proc. VLDB Endow. 2025
Distributed systems › mutual exclusion
group mutual exclusion
0.012003
Fair group mutual exclusion · PODC 2003
Distributed systems
mutual exclusion
0.012003
Fair group mutual exclusion · PODC 2003
Parallel and multicore computing › synchronization
synchronization mechanisms
0.012003
Efficient and practical constructions of LL/SC variables · PODC 2003
Processor architecture and microarchitecture
instruction set architecture
0.012003
Efficient and practical constructions of LL/SC variables · PODC 2003

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

request replay · 1.7diff testing · 1.7database branching · 1.7shared registers · 0.0lock-free algorithms · 0.0
YearPublicationVenuePosition
2025 Vive la Différence: Practical Diff Testing of Stateful Applications
abstract
Software rollout is the process of replacing the version of an application that is currently running in production with a new version. Many subtle and catastrophic bugs occur during software rollout. There are many existing techniques to improve the odds of a rollout completing successfully, but these techniques don't work well when the application has shared, persistent, mutable state. In this paper, we present a practical framework to test the rollout of stateful applications. Our framework uses diff testing to verify that the new version of an application behaves identically to the currently running version that will be replaced. The framework has three main components to safely and efficiently compare the behavior of the two versions. First, we implement database branching on top of Postgres. Second, we implement an efficient algorithm to diff two database branches. Third, we describe how to replay client requests to improve test coverage. Finally, we identify three common categories of rollout bugs and demonstrate how our framework can find these bugs with minimal performance overhead.
Michael Whittaker, Srdjan Petrovic, Robert Grandl, Sanjay Ghemawat
Proc. VLDB Endow.3
2023 Towards Modern Development of Cloud Applications
abstract
When writing a distributed application, conventional wisdom says to split your application into separate services that can be rolled out independently. This approach is well-intentioned, but a microservices-based architecture like this often backfires, introducing challenges that counteract the benefits the architecture tries to achieve. Fundamentally, this is because microservices conflate logical boundaries (how code is written) with physical boundaries (how code is deployed). In this paper, we propose a different programming methodology that decouples the two in order to solve these challenges. With our approach, developers write their applications as logical monoliths, offload the decisions of how to distribute and run applications to an automated runtime, and deploy applications atomically. Our prototype implementation reduces application latency by up to 15× and reduces cost by up to 9× compared to the status quo.
Sanjay Ghemawat, Robert Grandl, Srdjan Petrovic, Michael Whittaker, Parveen Patel, Ivan Posva, Amin Vahdat
HotOS3
2005 Logarithmic-Time Single Deleter, Multiple Inserter Wait-Free Queues and Stacks
Prasad Jayanti, Srdjan Petrovic
FSTTCS2
2005 Efficient Wait-Free Implementation of Multiword LL/SC Variables
abstract
Since the design of lock-free data structures often poses a formidable intellectual challenge, researchers are constantly in search of abstractions and primitives that simplify this design. The multiword LL/SC object is such a primitive: many existing algorithms are based on this primitive, including the nonblocking and wait-free universal constructions [1], the closed objects construction [4] and the snapshot algorithms [12, 13]. In this paper, we consider the problem of implementing a W-word LL/SC object shared by N processes. The previous best algorithm, due to Anderson and Moir [1], is time optimal (LL and SC operations run in O(W) time), but has a space complexity of O(N²W). We present an algorithm that uses novel buffer management ideas to cut down the space complexity by a factor of N to O(NW), while still being time optimal.
Prasad Jayanti, Srdjan Petrovic
ICDCS2
2005 Efficiently Implementing a Large Number of LL/SC Objects
Prasad Jayanti, Srdjan Petrovic
OPODIS2
2005 Read/Write Based Fast-Path Transformation for FCFS Mutual Exclusion
Prasad Jayanti, Srdjan Petrovic, Neha Narula
SOFSEM2
2005 Space-efficient FCFS group mutual exclusion
Srdjan Petrovic
Inf. Process. Lett.1
2003 Efficient and practical constructions of LL/SC variables
abstract
Over the past decade, a pair of synchronization instructions known as LL/SC has emerged as the most suitable set of instructions to be used in the design of lock-free algorithms. However, no existing multiprocessor system supports these instructions in hardware. Instead, most modern multipro-cessors support instructions such as CAS or RLL/RSC (e.g. POWER4, MIPS, SPARC, IA-64). This paper presents two efficient algorithms that implement 64-bit LL/SC from 64-bit CAS or RLL/RSC. Our re~ults are summarized as fol-lows. We present a practical algorithm for implementing a 64-bit LL/SC object from 64-bit CAS or RLL/RSC objects. Our result shows, for the first time, a practical way of simu-lating a 64-bit LL/SC memory word using 64-bit CAS mem-ory words (or 64-bit RLL/RSC memory words), incurring only a small constant space overhead per process and a small constant factor slowdown. Although our first solution performs correctly in any practical system, its theoretical correctness depends on un-bounded sequence numbers. We present a bounded algo-rithm that implements a 64-bit LL/SC object from 64-bit CAS or RLL/RSC objects, and has the same time and space complexities as the first algorithm. This and the previous algorithm improve on existing im-plementations of LL/SC objects by Anderson and Moir in 1995, and Moir in 1997. 1.
Prasad Jayanti, Srdjan Petrovic
PODC2
2003 Fair group mutual exclusion
abstract
In the group mutual exclusion problem [6], which generalizes mutual exclusion [2], a process chooses a session when it requests entry to the Critical Section. A group mutual exclusion algorithm must ensure that the mutual exclusion property holds: If two processes are in the Critical Section at the same time, then they request the same session. In addition to mutual exclusion, lockout freedom, bounded exit and concurrent entering are basic properties that are desirable in any group mutual exclusion algorithm.Hadzilacos in [4] first introduced a fairness condition, called first-come-first-served (FCFS), for group mutual exclusion. The only known FCFS group mutual exclusion algorithm is due to Hadzilacos [4], and requires Θ(N2) bounded shared registers, where N is the number of processes. We present a FCFS group mutual exclusion algorithm that uses only Θ(N) bounded shared registers. (The existence of such an algorithm was posed as an open problem by Hadzilacos.)Next, we demonstrate that the FCFS property does not fully capture our intuitive notion of fairness. We therefore propose an additional fairness property, called first-in-first-enabled (FIFE). Finally, we present a reduction that transforms any FCFS mutual exclusion algorithm M into a group mutual exclusion algorithm G. Thus, different group mutual exclusion algorithms can be obtained by instantiating M with different abortable FCFS mutual exclusion algorithms. The group mutual exclusion algorithms so obtained satisfy all of the properties mentioned above: mutual exclusion, lockout freedom, bounded exit, concurrent entering, FCFS, and FIFE.
Prasad Jayanti, Srdjan Petrovic, King Tan
PODC2