Network


Latest external collaboration on country level. Dive into details by clicking on the dots.

Hotspot


Dive into the research topics where Ohad Shacham is active.

Publication


Featured researches published by Ohad Shacham.


programming language design and implementation | 2009

Chameleon: adaptive selection of collections

Ohad Shacham; Martin T. Vechev; Eran Yahav

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 IBMs 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.


conference on object-oriented programming systems, languages, and applications | 2011

Testing atomicity of composed concurrent operations

Ohad Shacham; Nathan Grasso Bronson; Alex Aiken; Mooly Sagiv; Martin T. Vechev; Eran Yahav

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.


Journal of Parallel and Distributed Computing | 2007

Scaling model checking of dataraces using dynamic information

Ohad Shacham; Mooly Sagiv; Assaf Schuster

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.


international symposium on software testing and analysis | 2014

Verifying atomicity via data independence

Ohad Shacham; Eran Yahav; Guy Gueta; Alex Aiken; Nathan Grasso Bronson; Mooly Sagiv; Martin T. Vechev

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.


very large data bases | 2018

Taking omid to the clouds: fast, scalable transactions for real-time cloud analytics

Ohad Shacham; Yonatan Gottesman; Aran Bergman; Edward Bortnikov; Eshcar Hillel; Idit Keidar

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. PVLDB Reference Format: Shacham, Gottesman, Bergman, Bortnikov, Hillel, and Keidar. Taking Omid to the Clouds: Fast, Scalable Transactions for Real-Time Cloud Analytics. PVLDB, 11 (12): 1795 1808, 2018. DOI: https://doi.org/10.14778/3229863.3229868


symposium on cloud computing | 2017

Fragola: low-latency transactions in distributed data stores

Yonatan Gottesman; Aran Bergman; Edward Bortnikov; Eshcar Hillel; Idit Keidar; Ohad Shacham

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.


file and storage technologies | 2017

Omid, reloaded: scalable and highly-available transaction processing

Ohad Shacham; Francisco Perez-Sorrosal; Edward Bortnikov; Eshcar Hillel; Idit Keidar; Ivan Kelly; Matthieu Morel; Sameer Paranjpye


Archive | 2017

METHOD FOR APPROXIMATE K-NEAREST-NEIGHBOR SEARCH ON PARALLEL HARDWARE ACCELERATORS

Edward Bortnikov; Alexander Libov; Ohad Shacham


Archive | 2017

SCALABLE CONFLICT DETECTION IN TRANSACTION MANAGEMENT

Edward Bortnikov; Ohad Shacham; Idit Keidar


Archive | 2015

MANAGEMENT OF TRANSACTIONS IN A DISTRIBUTED TRANSACTION SYSTEM

Edward Bortnikov; Ohad Shacham; Idit Keidar; Eshcar Hillel; Sameer Paranjpye

Collaboration


Dive into the Ohad Shacham's collaboration.

Top Co-Authors

Avatar

Idit Keidar

Technion – Israel Institute of Technology

View shared research outputs
Top Co-Authors

Avatar

Eran Yahav

Technion – Israel Institute of Technology

View shared research outputs
Top Co-Authors

Avatar
Top Co-Authors

Avatar

Aran Bergman

Technion – Israel Institute of Technology

View shared research outputs
Top Co-Authors

Avatar
Researchain Logo
Decentralizing Knowledge