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.

Ohad Shacham

dblp:81/4697 · DBLP profile ↗
← Back
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

TopicWeightPapersLastEvidence papers
Transaction processing and concurrency control
distributed transaction processing
0.622018
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.212014
Verifying atomicity via data independence · ISSTA 2014
Program verification
concurrent program verification
0.212014
Verifying atomicity via data independence · ISSTA 2014
Program verification › concurrent program verification
linearizability verification
0.212014
Verifying atomicity via data independence · ISSTA 2014
Concurrent programming › concurrency bug detection
atomicity violation detection
0.112011
Testing atomicity of composed concurrent operations · OOPSLA 2011
Software testing
concurrency testing
0.112011
Testing atomicity of composed concurrent operations · OOPSLA 2011
Concurrent programming › concurrent data structures
concurrent objects
0.112011
Testing atomicity of composed concurrent operations · OOPSLA 2011
Software testing
unit testing
0.112011
Testing atomicity of composed concurrent operations · OOPSLA 2011
Runtime systems and virtual machines
managed runtime
0.112009
Chameleon: adaptive selection of collections · PLDI 2009
Software maintenance and evolution
refactoring
0.112009
Chameleon: adaptive selection of collections · PLDI 2009
Distributed systems
fault tolerance
0.112017
Omid, Reloaded: Scalable and Highly-Available Transaction Processing · FAST 2017
Distributed systems › fault tolerance
high availability
0.112017
Omid, Reloaded: Scalable and Highly-Available Transaction Processing · FAST 2017
Concurrent programming
concurrency bugs
0.122014
Verifying atomicity via data independence · ISSTA 2014
Scaling model checking of dataraces using dynamic information · PPoPP 2005
Automated reasoning and model checking
satisfiability
0.112007
On-The-Fly Resolve Trace Minimization · DAC 2007
Automated reasoning and model checking › satisfiability › SAT solving
unsatisfiability proofs
0.112007
On-The-Fly Resolve Trace Minimization · DAC 2007
Concurrent programming › concurrency bugs
data races
0.112014
Verifying atomicity via data independence · ISSTA 2014
Concurrent programming › concurrency bug detection
data race detection
0.112005
Scaling model checking of dataraces using dynamic information · PPoPP 2005
Program analysis
dynamic analysis
0.112005
Scaling model checking of dataraces using dynamic information · PPoPP 2005
Program verification
model checking
0.112005
Scaling model checking of dataraces using dynamic information · PPoPP 2005
Electronic design automation › hardware verification and test
formal verification
0.012007
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
YearPublicationVenuePosition
2019 Achieving Scalability in a k-NN Multi-GPU Network Service with Centaur
abstract
Centaur 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
PACT3
2018 Taking Omid to the Clouds: Fast, Scalable Transactions for Real-Time Cloud Analytics
abstract
We 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 stores
abstract
As 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
SoCC6
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
FAST8
2014 Verifying atomicity via data independence
abstract
We 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
ISSTA1
2011 Testing atomicity of composed concurrent operations
abstract
We 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
OOPSLA1
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 collections
abstract
Languages 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
PLDI1
2007 On-The-Fly Resolve Trace Minimization
abstract
The 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
DAC1
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 information
abstract
Dataraces 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
PPoPP1