VLDB 2026 Research / reviewers in the wild / expert
Yuanhao Wei
dblp:198/9526
· DBLP profile ↗
24ranked-venue papers
3as first author
15since 2021 · last 2026
0000-0002-5176-0961ORCID · corroborated
Domains — the database's venue-derived domains; a paper can count in several
Systems, architecture and hardware · 13 · 3 first-author · 10 since 2021Software engineering, systems software and programming languages · 3 · 2 since 2021Theory of computation · 2
| Year | Publication | Venue | Position |
|---|---|---|---|
| 2026 | Concurrent Balanced Augmented TreesabstractAugmentation makes search trees tremendously more versatile, allowing them to support efficient aggregation queries, order-statistic queries, and range queries in addition to insertion, deletion, and lookup. In this paper, we present the first lock-free augmented balanced search tree supporting generic augmentation functions. Our algorithmic ideas build upon a recent augmented unbalanced search tree presented by Fatourou and Ruppert [DISC, 2024]. We implement both data structures, solving some memory reclamation challenges in the process, and provide an experimental performance analysis of them. We also present optimized versions of our balanced tree that use delegation to achieve better scalability and performance (by more than 2x in most workloads). Our experiments show that our augmented balanced tree completes updates 2.2 to 30 times faster than the unbalanced augmented tree, and outperforms unaugmented trees by up to several orders of magnitude on 120 threads. Evan Wrench, Ajay Singh 0002, Younghun Roh, Panagiota Fatourou, Siddhartha Jayanti, Eric Ruppert, Yuanhao Wei |
PPoPP | 7 |
| 2026 | CleanANN: Efficient and Robust Full Dynamism in Graph-based Approximate Nearest Neighbor SearchabstractThe approximate nearest neighbor search (ANNS) problem has important applications, such as robotics, data mining, semantic search, and unstructured data retrieval. Graph-based ANNS indexes have superb empirical tradeoffs in indexing cost, query efficiency, and query approximation quality. Most existing graph-based indexes are designed for the static scenario, where there are no updates to the data after the index is constructed. However, full dynamism (insertions, deletions, and searches) is crucial to providing up-to-date responses in applications using vector databases. It is desirable that the index efficiently supports updates and search queries concurrently. Existing dynamic graph-based indexes have the following shortcomings: (1) graph repair operations incurred by delete queries involve many graph updates, hindering scalability; (2) data distribution shift and out-of-distribution queries are not addressed; and (3) in efficient systems implemented as directed graphs, clearing incoming edges after deletions is a global batch operation, delaying resource reuse and leading to periodic regressions in query quality. Ziyu Zhang 0002, Yuanhao Wei, Joshua Engels, Julian Shun |
SPAA | 2 |
| 2025 | Recoverable Lock-Free LocksabstractThis paper presents the first transformation that introduces both lock-freedom and recoverability. Our transformation starts with a lock-based implementation, and provides a recoverable, lock-free substitution to lock acquire and lock release operations. The transformation supports nested locks for generality and ensures recoverability without jeopardising the correctness of the lock-based implementation it is applied on. Hagit Attiya, Panagiota Fatourou, Eleftherios Kosmas, Yuanhao Wei |
OPODIS | 4 |
| 2025 | Aggregating Funnels for Faster Fetch&Add and QueuesabstractMany concurrent algorithms require processes to perform fetch-and-add operations on a single memory location, which can be a hot spot of contention. We present a novel algorithm called Aggregating Funnels that reduces this contention by spreading the fetch-and-add operations across multiple memory locations. It aggregates fetch-and-add operations into batches so that the batch can be performed by a single hardware fetch-and-add instruction on one location and all operations in the batch can efficiently compute their results by performing a fetch-and-add instruction on a different location. We show experimentally that this approach achieves higher throughput than previous combining techniques, such as Combining Funnels, and is substantially more scalable than applying hardware fetch-and-add instructions on a single memory location. We show that replacing the fetch-and-add instructions in the fastest state-of-the-art concurrent queue by our Aggregating Funnels eliminates a bottleneck and greatly improves the queue's overall throughput. Younghun Roh, Yuanhao Wei, Eric Ruppert, Panagiota Fatourou, Siddhartha Jayanti, Julian Shun |
PPoPP | 2 |
| 2025 | TLF: Transactional Lock FusionabstractSoftware Transactional Memory (STM) systems have made many advances over the past decades, and data structures that use STM are approaching the efficiency of hand-designed concurrent data structures. Hand-designed structures, however, still maintain a key advantage over implementations with STMs: with careful design, they can ignore "unimportant" read-write conflicts. Some of the most efficient concurrent structures, for example, are based on optimistic locking (OL). Operations that use OL have a traversal phase with no locks, where read-write conflicts are ignored, and a commit phase where conflicts are protected with fine grained locks. An STM, on the other hand, does not know which conflicts are important and will serialize all reads and writes, potentially at a significant cost. Guy E. Blelloch, Zachary Kent, Yuanhao Wei |
SPAA | 3 |
| 2025 | CLEANN: Lock-Free Augmented Trees for Low-Dimensional κ-Nearest Neighbor SearchabstractWe develop a linearizable lock-free data structure, the CLEANN-tree (Concurrent Linearizable Efficient Augmented Nearest Neighbor tree), for low dimensional κ-nearest-neighbor searching. The data structure maintains a set of points P in d dimensions under insertion and deletion, while supporting queries that, given a point, return the k nearest points in P. The CLEANN-tree is constructed by modifying a kd-tree, a type of spatial decomposition commonly used for κ-nearest neighbor searching, for the concurrent environment. It is the first such concurrent structure---two previous structures were either not linearizable or only supported κ=1. Furthermore CLEANN-tree stores an augmented value (more specifically, a bounding box) in each internal node of the kd-tree. These bounding boxes significantly improve query performance by allowing more aggresive pruning. However, correctly and efficiently maintaining these augmented values is challenging in the linearizable lock-free setting because queries can examine large parts of the structure, which might be changing, and an insert or delete can require updating all the augmented values from the leaf to the root. Magdalen Dobson, Yuanhao Wei, Guy E. Blelloch |
SPAA | 2 |
| 2024 | VERLIB: Concurrent Versioned PointersabstractRecent work has shown how to augment any CAS-based concurrent data structure to support taking a snapshot of the current memory state. Taking the snapshot, as well as loads and CAS (Compare and Swap) operations, take constant time. Importantly, such snapshotting can be used to easily implement linearizable queries, such as range queries, over any part of a data structure. Guy E. Blelloch, Yuanhao Wei |
PPoPP | 2 |
| 2023 | Practically and Theoretically Efficient Garbage Collection for MultiversioningabstractMultiversioning is widely used in databases, transactional memory, and concurrent data structures. It can be used to support read-only transactions that appear atomic in the presence of concurrent update operations. Any system that maintains multiple versions of each object needs a way of efficiently reclaiming them. We experimentally compare various existing reclamation techniques by applying them to a multiversion tree and a multiversion hash table. Yuanhao Wei, Guy E. Blelloch, Panagiota Fatourou, Eric Ruppert |
PPoPP | 1 |
| 2022 | Turning manual concurrent memory reclamation into automatic reference countingabstractSafe memory reclamation (SMR) schemes are an essential tool for lock-free data structures and concurrent programming. However, manual SMR schemes are notoriously difficult to apply correctly, and automatic schemes, such as reference counting, have been argued for over a decade to be too slow for practical purposes. A recent wave of work has disproved this long-held notion and shown that reference counting can be as scalable as hazard pointers, one of the most common manual techniques. Despite these tremendous improvements, there remains a gap of up to 2x or more in performance between these schemes and faster manual techniques such as epoch-based reclamation (EBR). Daniel Anderson, Guy E. Blelloch, Yuanhao Wei |
PLDI | 3 |
| 2022 | Lock-free locks revisitedabstractThis paper presents a new and practical approach to lock-free locks based on helping, which allows the user to write code using fine-grained locks, but run it in a lock-free manner. Although lock-free locks have been suggested in the past, they are widely viewed as impractical, have some key limitations, and, as far as we know, have never been implemented. The paper presents some key techniques that make lock-free locks practical and more general. The most important technique is an approach to idempotence---i.e. making code that runs multiple times appear as if it ran once. The idea is based on using a shared log among processes running the same protected code. Importantly, the approach can be library based, requiring very little if any change to standard code---code just needs to use the idempotent versions of memory operations (load, store, LL/SC, allocation, free). Naama Ben-David, Guy E. Blelloch, Yuanhao Wei |
PPoPP | 3 |
| 2022 | FliT: a library for simple and efficient persistent algorithmsabstractNon-volatile random access memory (NVRAM) offers byte-addressable persistence at speeds comparable to DRAM. However, with caches remaining volatile, automatic cache evictions can reorder updates to memory, potentially leaving persistent memory in an inconsistent state upon a system crash. Flush and fence instructions can be used to force ordering among updates, but are expensive. This has motivated significant work studying how to write correct and efficient persistent programs for NVRAM. Yuanhao Wei, Naama Ben-David, Michal Friedman 0001, Guy E. Blelloch, Erez Petrank |
PPoPP | 1 |
| 2022 | Brief Announcement: Survey of Persistent Memory Correctness Conditions
Naama Ben-David, Michal Friedman 0001, Yuanhao Wei |
DISC | 3 |
| 2021 | Concurrent deferred reference counting with constant-time overheadabstractWe present a safe automatic memory reclamation approach for concurrent programs, and show that it is both theoretically and practically efficient. Our approach combines ideas from referencing counting and hazard pointers in a novel way to implement concurrent reference counting with wait-free, constant-time overhead. It overcomes the limitations of previous approaches by significantly reducing modifications to, and hence contention on, the reference counts. Furthermore, it is safer and easier to use than manual approaches. Our technique involves using a novel generalization of hazard pointers to defer reference-count decrements until no other process can be incrementing them, and to defer or elide reference-count increments for short-lived references. Daniel Anderson, Guy E. Blelloch, Yuanhao Wei |
PLDI | 3 |
| 2021 | Constant-time snapshots with applications to concurrent data structuresabstractGiven a concurrent data structure, we present an approach for efficiently taking snapshots of its constituent CAS objects. More specifically, we support a constant-time operation that returns a snapshot handle. This snapshot handle can later be used to read the value of any base object at the time the snapshot was taken. Reading an earlier version of a base object is wait-free and takes time proportional to the number of successful writes to the object since the snapshot was taken. Importantly, our approach preserves all the time bounds and parallelism of the original data structure. Yuanhao Wei, Naama Ben-David, Guy E. Blelloch, Panagiota Fatourou, Eric Ruppert, Yihan Sun 0001 |
PPoPP | 1 |
| 2021 | Space and Time Bounded Multiversion Garbage CollectionabstractWe present a general technique for garbage collecting old versions for multiversion concurrency control that simultaneously achieves good time and space complexity. Our technique takes only $O(1)$ time on average to reclaim each version and maintains only a constant factor more versions than needed (plus an additive term). It is designed for multiversion schemes using version lists, which are the most common. Our approach uses two components that are of independent interest. First, we define a novel range-tracking data structure which stores a set of old versions and efficiently finds those that are no longer needed. We provide a wait-free implementation in which all operations take amortized constant time. Second, we represent version lists using a new lock-free doubly-linked list algorithm that supports efficient (amortized constant time) removals given a pointer to any node in the list. These two components naturally fit together to solve the multiversion garbage collection problem--the range-tracker identifies which versions to remove and our list algorithm can then be used to remove them from their version lists. We apply our garbage collection technique to generate end-to-end time and space bounds for the multiversioning system of Wei et al. (PPoPP 2021). Naama Ben-David, Guy E. Blelloch, Panagiota Fatourou, Eric Ruppert, Yihan Sun 0001, Yuanhao Wei |
DISC | 6 |
| 2020 | NVTraverse: in NVRAM data structures, the destination is more important than the journeyabstractThe recent availability of fast, dense, byte-addressable non-volatile memory has led to increasing interest in the problem of designing durable data structures that can recover from system crashes. However, designing durable concurrent data structures that are correct and efficient has proven to be very difficult, leading to many inefficient or incorrect algorithms. In this paper, we present a general transformation that takes a lock-free data structure from a general class called traversal data structure (that we formally define) and automatically transforms it into an implementation of the data structure for the NVRAM setting that is provably durably linearizable and highly efficient. The transformation hinges on the observation that many data structure operations begin with a traversal phase that does not need to be persisted, and thus we only begin persisting when the traversal reaches its destination. We demonstrate the transformation's efficiency through extensive measurements on a system with Intel's recently released Optane DC persistent memory, showing that it can outperform competitors on many workloads. Michal Friedman 0001, Naama Ben-David, Yuanhao Wei, Guy E. Blelloch, Erez Petrank |
PLDI | 3 |
| 2020 | LL/SC and Atomic Copy: Constant Time, Space Efficient Implementations Using Only Pointer-Width CASabstractWhen designing concurrent algorithms, Load-Link/Store-Conditional (LL/SC) is often the ideal primitive to have because unlike Compare and Swap (CAS), LL/SC is immune to the ABA problem. However, the full semantics of LL/SC are not supported by any modern machine, so there has been a significant amount of work on simulations of LL/SC using Compare and Swap (CAS), a synchronization primitive that enjoys widespread hardware support. All of the algorithms so far that are constant time either use unbounded sequence numbers (and thus base objects of unbounded size), or require $Ω(MP)$ space for $M$ LL/SC object (where $P$ is the number of processes). We present a constant time implementation of $M$ LL/SC objects using $Θ(M+kP^2)$ space, where $k$ is the maximum number of overlapping LL/SC operations per process (usually a constant), and requiring only pointer-sized CAS objects. Our implementation can also be used to implement $L$-word $LL/SC$ objects in $Θ(L)$ time (for both $LL$ and $SC$) and $Θ((M+kP^2)L)$ space. To achieve these bounds, we begin by implementing a new primitive called Single-Writer Copy which takes a pointer to a word sized memory location and atomically copies its contents into another object. The restriction is that only one process is allowed to write/copy into the destination object at a time. We believe this primitive will be very useful in designing other concurrent algorithms as well. Guy E. Blelloch, Yuanhao Wei |
DISC | 2 |
| 2020 | Brief Announcement: Concurrent Fixed-Size Allocation and Free in Constant TimeabstractOur goal is to efficiently solve the dynamic memory allocation problem in a concurrent setting where processes run asynchronously. On $p$ processes, we can support allocation and free for fixed-sized blocks with $O(1)$ worst-case time per operation, $Θ(p^2)$ additive space overhead, and using only single-word read, write, and CAS. While many algorithms rely on having constant-time fixed-size allocate and free, we present the first implementation of these two operations that is constant time with reasonable space overhead. Guy E. Blelloch, Yuanhao Wei |
DISC | 2 |
| 2020 | Step-optimal implementations of large single-writer registersabstractWe present two wait-free algorithms for simulating an ℓ-bit single-writer register from k-bit single-writer registers, for any k≥1. Our first algorithm has Θ(ℓ/k) step complexity for both and and uses Θ(4ℓ−k) registers. Our second algorithm has Θ(ℓ/k+(logn)/k) step complexity for both and , where n is the number of readers, but uses only Θ(nℓ/k) registers. By using the first algorithm when ℓ≤(logn)/2 and the second algorithm when ℓ>(logn)/2, we get a combined implementation with Θ(ℓ/k) step complexity using Θ(nℓ/k) registers which works for any 1≤k<ℓ. We also prove that any implementation with O(ℓ/k) step complexity for requires Ω(ℓ/k) step complexity for . Reading ℓ bits requires at least ⌈ℓ/k⌉ reads of k-bit registers, so our lower bound shows that our combined implementation is step-optimal. Tian Ze Chen, Yuanhao Wei |
Theor. Comput. Sci. | 2 |
| 2019 | Short Proofs Are Hard to Find
Ian Mertz, Toniann Pitassi, Yuanhao Wei |
ICALP | 3 |
| 2019 | Making concurrent algorithms detectable: posterabstractNon-volatile memory (NVM) promises persistent main memory that remains correct despite loss of power. Since caches are expected to remain volatile, concurrent algorithms must be redesigned to ensure a consistent state after a system crash, and to continue the execution upon recovery. Naama Ben-David, Guy E. Blelloch, Michal Friedman 0001, Yuanhao Wei |
PPoPP | 4 |
| 2019 | Multiversion Concurrency with Bounded Delay and Precise Garbage CollectionabstractIn this paper we are interested in bounding the number of instructions taken to process transactions. The main result is a multiversion transactional system that supports constant delay (extra instructions beyond running in isolation) for all read-only transactions, delay equal to the number of processes for writing transactions that are not concurrent with other writers, and lock-freedom for concurrent writers. The system supports precise garbage collection in that versions are identified for collection as soon as the last transaction releases them. As far as we know these are first results that bound delays for multiple readers and even a single writer. The approach is particularly useful in situations where read-transactions dominate write transactions, or where write transactions come in as streams or batches and can be processed by a single writer (possibly in parallel). The approach is based on using functional data structures to support multiple versions, and an efficient solution to the Version Maintenance (VM) problem for acquiring, updating and releasing versions. Our VM algorithm is precise, safe and wait free (PSWF). We experimentally validate our approach by applying it to balanced tree data structure for maintaining ordered maps. We test the transactional system using multiple algorithms for the VM problem, including our PSWF VM algorithm, and implementations with weaker guarantees based on epochs, hazard pointers, and read-copy-update. To evaluate the functional data structure for concurrency and multi-versioning, we implement batched updates for functional tree structures and compare the performance with state-of-the-art concurrent data structures for balanced trees. The experiments indicate our approach works well in practice over a broad set of criteria. Naama Ben-David, Guy E. Blelloch, Yihan Sun 0001, Yuanhao Wei |
SPAA | 4 |
| 2019 | Delay-Free Concurrency on Faulty Persistent MemoryabstractNon-volatile memory (NVM) promises persistent main memory that remains correct despite loss of power. This has sparked a line of research into algorithms that can recover from a system crash. Since caches are expected to remain volatile, concurrent data structures and algorithms must be redesigned to guarantee that they are left in a consistent state after a system crash, and that the execution can be continued upon recovery. However, the prospect of redesigning every concurrent data structure or algorithm before it can be used in NVM architectures is daunting. In this paper, we present a construction that takes any concurrent program with reads, writes and CASs to shared memory and makes it persistent, i.e., can be continued after one or more processes fault and have to restart. The converted algorithm has constant computational delay (preserves instruction counts on each process within a constant factor), as well as constant recovery delay (a process can recover from a fault in a constant number of instructions). We show this first for a simple transformation, and then present optimizations to make it more practical, allowing for a trade-off between computation and recovery delay. We also provide an optimized transformation for normalized lock-free data structures, thus speeding up a large class of concurrent algorithms. Finally, we experimentally evaluate these transformations by applying them to a queue. We compare the performance of our transformations to that of a persistent transactional memory framework, Romulus, and to a hand-tuned persistent queue. We show that our optimized transformation performs favorably when compared to Romulus. Furthermore, our optimized transformation is even comparable to the hand-tuned version, showing that the generality we provide comes at very little performance cost. Naama Ben-David, Guy E. Blelloch, Michal Friedman 0001, Yuanhao Wei |
SPAA | 4 |
| 2016 | Step Optimal Implementations of Large Single-Writer Registers
Tian Ze Chen, Yuanhao Wei |
OPODIS | 2 |