VLDB 2026 Research / reviewers in the wild / expert
Ohad Shacham
dblp:81/4697
· DBLP profile ↗
11ranked-venue papers
7as first author
0since 2021 · last 2019
—ORCID · none
Domains — the database's venue-derived domains; a paper can count in several
Systems, architecture and hardware · 6 · 3 first-authorSoftware engineering, systems software and programming languages · 4 · 3 first-authorDatabases, data management, data science and information retrieval · 2 · 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
4 papers |
Concurrent programming · 40% Program verification · 28% Software testing · 16% | |
| Databases, data mining, and information retrieval
2 papers |
Transaction processing and concurrency control · 59% Distributed and cloud data management · 32% Query processing and optimization · 10% | |
| Computer architecture, parallel and distributed computing, and storage systems
3 papers |
Distributed systems · 78% Performance modeling and evaluation · 13% Electronic design automation · 10% | |
| Theoretical computer science
1 paper |
Automated reasoning and model checking · 100% |
Topics — the 20 heaviest of 23, each with the papers that count most for it
| Topic | Weight | Papers | Last | Evidence papers |
|---|---|---|---|---|
Transaction processing and concurrency control
distributed transaction processing |
0.6 | 2 | 2018 | Taking Omid to the Clouds: Fast, Scalable Transactions for Real-Time Cloud Analytics · Proc. VLDB Endow. 2018 Omid, Reloaded: Scalable and Highly-Available Transaction Processing · FAST 2017 |
Concurrent programming › concurrency verification
atomicity verification |
0.2 | 1 | 2014 | Verifying atomicity via data independence · ISSTA 2014 |
Program verification
concurrent program verification |
0.2 | 1 | 2014 | Verifying atomicity via data independence · ISSTA 2014 |
Program verification › concurrent program verification
linearizability verification |
0.2 | 1 | 2014 | Verifying atomicity via data independence · ISSTA 2014 |
Concurrent programming › concurrency bug detection
atomicity violation detection |
0.1 | 1 | 2011 | Testing atomicity of composed concurrent operations · OOPSLA 2011 |
Software testing
concurrency testing |
0.1 | 1 | 2011 | Testing atomicity of composed concurrent operations · OOPSLA 2011 |
Concurrent programming › concurrent data structures
concurrent objects |
0.1 | 1 | 2011 | Testing atomicity of composed concurrent operations · OOPSLA 2011 |
Software testing
unit testing |
0.1 | 1 | 2011 | Testing atomicity of composed concurrent operations · OOPSLA 2011 |
Runtime systems and virtual machines
managed runtime |
0.1 | 1 | 2009 | Chameleon: adaptive selection of collections · PLDI 2009 |
Software maintenance and evolution
refactoring |
0.1 | 1 | 2009 | Chameleon: adaptive selection of collections · PLDI 2009 |
Distributed systems
fault tolerance |
0.1 | 1 | 2017 | Omid, Reloaded: Scalable and Highly-Available Transaction Processing · FAST 2017 |
Distributed systems › fault tolerance
high availability |
0.1 | 1 | 2017 | Omid, Reloaded: Scalable and Highly-Available Transaction Processing · FAST 2017 |
Concurrent programming
concurrency bugs |
0.1 | 2 | 2014 | Verifying atomicity via data independence · ISSTA 2014 Scaling model checking of dataraces using dynamic information · PPoPP 2005 |
Automated reasoning and model checking
satisfiability |
0.1 | 1 | 2007 | On-The-Fly Resolve Trace Minimization · DAC 2007 |
Automated reasoning and model checking › satisfiability › SAT solving
unsatisfiability proofs |
0.1 | 1 | 2007 | On-The-Fly Resolve Trace Minimization · DAC 2007 |
Concurrent programming › concurrency bugs
data races |
0.1 | 1 | 2014 | Verifying atomicity via data independence · ISSTA 2014 |
Concurrent programming › concurrency bug detection
data race detection |
0.1 | 1 | 2005 | Scaling model checking of dataraces using dynamic information · PPoPP 2005 |
Program analysis
dynamic analysis |
0.1 | 1 | 2005 | Scaling model checking of dataraces using dynamic information · PPoPP 2005 |
Program verification
model checking |
0.1 | 1 | 2005 | Scaling model checking of dataraces using dynamic information · PPoPP 2005 |
Electronic design automation › hardware verification and test
formal verification |
0.0 | 1 | 2007 | On-The-Fly Resolve Trace Minimization · DAC 2007 |
Methods — techniques the papers use, named apart from their topics
single-key transaction optimization · 0.3fast path protocol · 0.3trace analysis · 0.2rules engine · 0.2heap analysis · 0.2data-independence · 0.2bounded verification · 0.2proof filtering · 0.1conflict clause analysis · 0.1static analysis · 0.1commutativity specification · 0.1model checking · 0.1dynamic information · 0.1
| Year | Publication | Venue | Position |
|---|---|---|---|
| 2019 | Achieving Scalability in a k-NN Multi-GPU Network Service with CentaurabstractCentaur is a GPU-centric architecture for building a low-latency approximate k-Nearest-Neighbors network server. We implement a multi-GPU distributed data flow runtime which enables efficient and scalable network request processing on GPUs. The runtime eliminates GPU management overheads from the CPU, making the server throughput and response time largely agnostic to the CPU load, speed or the number of dedicated CPU cores. Our experiments systems show that our server achieves near-perfect scaling for 16 GPUs, beating the throughput of a highly-optimized CPU-driven server by 35% while maintaining about 2msec average request latency. Furthermore, it requires only a single CPU core to run, achieving over an order of magnitude higher throughput than the standard CPU-driven server architecture in this setting. Amir Wated, Alexander Libov, Ohad Shacham, Edward Bortnikov, Mark Silberstein |
PACT | 3 |
| 2018 | Taking Omid to the Clouds: Fast, Scalable Transactions for Real-Time Cloud AnalyticsabstractWe describe how we evolve Omid, a transaction processing system for Apache HBase, to power Apache Phoenix, a cloud-grade real-time SQL analytics engine. Omid was originally designed for data processing pipelines at Yahoo, which are, by and large, throughput-oriented monolithic NoSQL applications. Providing a platform to support converged real-time transaction processing and analytics applications - dubbed translytics - introduces new functional and performance requirements. For example, SQL support is key for developer productivity, multi-tenancy is essential for cloud deployment, and latency is cardinal for just-in-time data ingestion and analytics insights. We discuss our efforts to adapt Omid to these new domains, as part of the process of integrating it into Phoenix as the transaction processing backend. A central piece of our work is latency reduction in Omid's protocol, which also improves scalability. Under light load, the new protocol's latency is 4x to 5x smaller than the legacy Omid's, whereas under increased loads it is an order of magnitude faster. We further describe a fast path protocol for single-key transactions, which enables processing them almost as fast as native HBase operations. Ohad Shacham, Yonatan Gottesman, Aran Bergman, Edward Bortnikov, Eshcar Hillel, Idit Keidar |
Proc. VLDB Endow. | 1 |
| 2017 | Fragola: low-latency transactions in distributed data storesabstractAs transaction processing services begin to be used in new application domains, low transaction latency becomes an important consideration. Motivated by such use cases we developed Fragola, a highly scalable low-latency and high-throughput transaction processing engine for Apache HBase. Similarly to other modern transaction managers, Fragola provides a variant of generalized snapshot isolation (SI), which scales better than traditional serializability implementations. Yonatan Gottesman, Aran Bergman, Edward Bortnikov, Eshcar Hillel, Idit Keidar, Ohad Shacham |
SoCC | 6 |
| 2017 | Omid, Reloaded: Scalable and Highly-Available Transaction Processing
Edward Bortnikov, Eshcar Hillel, Idit Keidar, Ivan Kelly, Matthieu Morel, Sameer Paranjpye, Francisco Perez-Sorrosal, Ohad Shacham |
FAST | 8 |
| 2014 | Verifying atomicity via data independenceabstractWe present a technique for automatically verifying atomicity of composed concurrent operations. The main observation behind our approach is that many composed concurrent operations which occur in practice are data-independent. That is, the control-flow of the composed operation does not depend on specific input values. While verifying data-independence is undecidable in the general case, we provide succint sufficient conditions that can be used to establish a composed operation as data-independent. We show that for the common case of concurrent maps, data-independence reduces the hard problem of verifying linearizability to a verification problem that can be solved efficiently with a bounded number of keys and values. We implemented our approach in a tool called VINE and evaluated it on all composed operations from 57 real-world applications (112 composed operations). We show that many composed operations (49 out of 112) are data-independent, and automatically verify 30 of them as linearizable and the rest 19 as having violations of linearizability that could be repaired and then subsequently automatically verified. Moreover, we show that the remaining 63 operations are not linearizable, thus indicating that data independence does not limit the expressiveness of writing realistic linearizable composed operations. Ohad Shacham, Eran Yahav, Guy Golan-Gueta, Alex Aiken, Nathan Bronson, Shmuel Sagiv, Martin T. Vechev |
ISSTA | 1 |
| 2011 | Testing atomicity of composed concurrent operationsabstractWe address the problem of testing atomicity of composed concurrent operations. Concurrent libraries help programmers exploit parallel hardware by providing scalable concurrent operations with the illusion that each operation is executed atomically. However, client code often needs to compose atomic operations in such a way that the resulting composite operation is also atomic while preserving scalability. We present a novel technique for testing the atomicity of client code composing scalable concurrent operations. The challenge in testing this kind of client code is that a bug may occur very rarely and only on a particular interleaving with a specific thread configuration. Our technique is based on modular testing of client code in the presence of an adversarial environment; we use commutativity specifications to drastically reduce the number of executions explored to detect a bug. We implemented our approach in a tool called COLT, and evaluated its effectiveness on a range of 51 real-world concurrent Java programs. Using COLT, we found 56 atomicity violations in Apache Tomcat, Cassandra, MyFaces Trinidad, and other applications. Ohad Shacham, Nathan Bronson, Alex Aiken, Shmuel Sagiv, Martin T. Vechev, Eran Yahav |
OOPSLA | 1 |
| 2011 | Reducing the size of resolution proofs in linear time
Omer Bar-Ilan, Oded Fuhrmann, Shlomo Hoory, Ohad Shacham, Ofer Strichman |
Int. J. Softw. Tools Technol. Transf. | 4 |
| 2009 | Chameleon: adaptive selection of collectionsabstractLanguages such as Java and C#, as well as scripting languages like Python, and Ruby, make extensive use of Collection classes. A collection implementation represents a fixed choice in the dimensions of operation time, space utilization, and synchronization. Using the collection in a manner not consistent with this fixed choice can cause significant performance degradation. In this paper, we present CHAMELEON, a low-overhead automatic tool that assists the programmer in choosing the appropriate collection implementation for her application. During program execution, CHAMELEON computes elaborate trace and heap-based metrics on collection behavior. These metrics are consumed on-thefly by a rules engine which outputs a list of suggested collection adaptation strategies. The tool can apply these corrective strategies automatically or present them to the programmer. We have implemented CHAMELEON on top of a IBM's J9 production JVM, and evaluated it over a small set of benchmarks. We show that for some applications, using CHAMELEON leads to a significant improvement of the memory footprint of the application. Ohad Shacham, Martin T. Vechev, Eran Yahav |
PLDI | 1 |
| 2007 | On-The-Fly Resolve Trace MinimizationabstractThe ability of modern SAT solvers to produce proofs of un-satisfiability for Boolean formulas has become a powerful tool for EDA applications. Proofs are generated from a resolve trace that captures information about the creation of all conflict clauses. Due to their sizes, resolve traces are kept in files. The sizes of these files makes the use of proofs of un-satisfiability impractical for industrial tools. Although only a small part of the resolve trace is eventually used, until now it was not known how to filter out unnecessary information. Ohad Shacham, Karen Yorav |
DAC | 1 |
| 2007 | Scaling model checking of dataraces using dynamic information
Ohad Shacham, Shmuel Sagiv, Assaf Schuster |
J. Parallel Distributed Comput. | 1 |
| 2005 | Scaling model checking of dataraces using dynamic informationabstractDataraces in multithreaded programs often indicate severe bugs and can cause unexpected behaviors when different thread interleavings are executed. Because dataraces are a cause for concern, many works have dealt with the problem of detecting them. Works based on dynamic techniques either report errors only for dataraces that occur in the current interleaving, which limits their usefulness, or produce many spurious dataraces. Works based on model checking search exhaustively for dataraces and thus can reveal even those that occur in rarely executed paths. However, the applicability of model checking is limited because the large number of thread interleavings in realistic multithreaded programs causes state space explosion. In this work, we combine the two techniques in a hybrid scheme which overcomes these difficulties and enjoys the advantages of both worlds. Our hybrid technique succeeds in providing thread interleavings that prove the existence of dataraces in realistic programs. The programs we experimented with cannot be checked using either an ordinary industrial strength model checker or bounded model checking. Ohad Shacham, Shmuel Sagiv, Assaf Schuster |
PPoPP | 1 |