Network


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

Hotspot


Dive into the research topics where Michel H. T. Hack is active.

Publication


Featured researches published by Michel H. T. Hack.


international parallel and distributed processing symposium | 2007

Almost Peer-to-Peer Clock Synchronization

Ahmed Sobeih; Michel H. T. Hack; Zhen Liu; Li Zhang

In this paper, an almost peer-to-peer (AP2P) clock synchronization protocol is proposed. AP2P is almost peer-to-peer in the sense that it provides the desirable features of a purely hierarchical (client/server) clock synchronization protocol while avoiding the undesirable consequences of a purely peer-to-peer one. In AP2P, a unique node is elected as a leader in a distributed manner. Each non-leader node adjusts its clock rate based on message exchanges with its neighbors, taking into consideration that neighbors that are closer to the leader have more effect on the adjustment than the neighbors that are further away from the leader. We compare the performance of AP2P with that of the server time protocol (STP), which is a purely hierarchical clock synchronization protocol. Simulation results, which have been conducted on several network topologies, have shown that AP2P can provide a clock synchronization accuracy that is indistinguishable from that of STP. Furthermore, AP2P is more fault-tolerant because it can recover from certain types of failures that STP cannot recover from.


international symposium on precision clock synchronization for measurement control and communication | 2008

Achieving precise coordinated cluster time in a cluster environment

Steven E. Froehlich; Michel H. T. Hack; Xiaoqiao Meng; Li Zhang

A time-keeping mechanism is proposed for providing microsecond-level consistent time across a cluster of computers. The proposed mechanism is based on a new clock steering algorithm that uses piecewise linear mapping to align a local clock to an external reference clock in a smooth manner. We present two realizations of the algorithm: one is based on pulse-per-second (PPS) and the other is based on low-latency timing message exchange. The time derived by the proposed mechanism is called CCT (coordinated cluster time). It has a well-defined interface such that it can be used by applications with little overhead. Moreover, the interface deals completely with leap second issues. We implemented CCT on IBM BladeCenters and compared it to NTP. Experimental results demonstrate that the proposed mechanism achieves one microsecond precision.


international conference on network protocols | 2013

Skewless network clock synchronization

Enrique Mallada; Xiaoqiao Meng; Michel H. T. Hack; Li Zhang; Ao Tang

This paper examines synchronization of computer clocks connected via a data network and proposes a skewless algorithm to synchronize them. Unlike existing solutions, which either estimate and compensate the frequency difference (skew) among clocks or introduce offset corrections that can generate jitter and possibly even backward jumps, our algorithm achieves synchronization without these problems. We first analyze the convergence property of the algorithm and provide necessary and sufficient conditions on the parameters to guarantee synchronization. We then implement our solution on a cluster of IBM BladeCenter servers running Linux and study its performance. In particular, both analytically and experimentally, we show that our algorithm can converge in the presence of timing loops. This marks a clear contrast with current standards such as NTP and PTP, where timing loops are specifically avoided. Furthermore, timing loops can even be beneficial in our scheme. For example, it is demonstrated that highly connected subnetworks can collectively outperform individual clients when the time source has large jitter. It is also experimentally demonstrated that our algorithm outperforms other well-established software-based solutions such as the NTPv4 and IBM Coordinated Cluster Time (IBM CCT).


european conference on computer systems | 2016

zExpander: a key-value cache with both high performance and fewer misses

Xingbo Wu; Li Zhang; Yandong Wang; Yufei Ren; Michel H. T. Hack; Song Jiang

While key-value (KV) cache, such as memcached, dedicates a large volume of expensive memory to holding performance-critical data, it is important to improve memory efficiency, or to reduce cache miss ratio without adding more memory. As we find that optimizing replacement algorithms is of limited effect for this purpose, a promising approach is to use a compact data organization and data compression to increase effective cache size. However, this approach has the risk of degrading the caches performance due to additional computation cost. A common perception is that a high-performance KV cache is not compatible with use of data compacting techniques. In this paper, we show that, by leveraging highly skewed data access pattern common in real-world KV cache workloads, we can both reduce miss ratio through improved memory efficiency and maintain high performance for a KV cache. Specifically, we design and implement a KV cache system, named zExpander, which dynamically partitions the cache into two sub-caches. One serves frequently accessed data for high performance, and the other compacts data and metadata for high memory efficiency to reduce misses. Experiments show that zExpander can increase memcacheds effective cache size by up to 2x and reduce miss ratio by up to 46%. When integrated with a cache of a higher performance, its advantages remain. For example, with 24 threads on a YCSB workload zExpander can achieve throughput of 32 million RPS with 36% of its cache misses removed.


ieee international symposium on fault tolerant computing | 1998

Software exploitation of a fault-tolerant computer with a large memory

Frank Eskesen; Michel H. T. Hack; Arun Iyengar; Richard P. King; Nagui Halim

The DM/6000 hardware (a prototype, fault-tolerant RS/6000 built at the T.J. Watson Research Center) provides fault tolerance and a large, nonvolatile main memory. Running a commercial, general-purpose operating system on it, of itself, does nothing to increase software availability. In fact, the time to rebuild the contents of a large memory may decrease availability. We describe our techniques for hiding most of the main memory, which requires the operating system to access it only by way of services separate from the operating system. This can allow the memory and those access services to achieve much higher availability, which, in turn, increases the availability of the system as a whole. We also performed simulation studies to determine those conditions where this system organization can lead to improved performance for recoverable database applications.


IEEE ACM Transactions on Networking | 2015

Skewless network clock synchronization without discontinuity: convergence and performance

Enrique Mallada; Xiaoqiao Meng; Michel H. T. Hack; Li Zhang; Ao Kevin Tang

This paper examines synchronization of computer clocks connected via a data network and proposes a skewless algorithm to synchronize them. Unlike existing solutions, which either estimate and compensate the frequency difference (skew) among clocks or introduce offset corrections that can generate jitter and possibly even backward jumps, our solution achieves synchronization without these problems. We first analyze the convergence property of the algorithm and provide explicit necessary and sufficient conditions on the parameters to guarantee synchronization. We then study the effect of noisy measurements (jitter) and frequency drift (wander) on the offsets and synchronization frequency, and further optimize the parameter values to minimize their variance. Our study reveals a few insights, for example, we show that our algorithm can converge even in the presence of timing loops and noise, provided that there is a well-defined leader. This marks a clear contrast with current standards such as NTP and PTP, where timing loops are specifically avoided. Furthermore, timing loops can even be beneficial in our scheme as it is demonstrated that highly connected subnetworks can collectively outperform individual clients when the time source has large jitter. The results are supported by experiments running on a cluster of IBM BladeCenter servers with Linux.


asia pacific workshop on systems | 2016

NVMcached: An NVM-based Key-Value Cache

Xingbo Wu; Fan Ni; Li Zhang; Yandong Wang; Yufei Ren; Michel H. T. Hack; Zili Shao; Song Jiang

As byte-addressable, high-density, and non-volatile memory (NVM) is around the corner to be equipped alongside the DRAM memory, issues on enabling the important key-value cache services, such as memcached, on the new storage medium must be addressed. While NVM allows data in a KV cache to survive power outage and system crash, in practice their integrity and accessibility depend on data consistency enforced during writes to NVM. Though techniques for enforcing the consistency, such as journaling, COW, or checkpointing, are available, they are often too expensive by frequently using CPU cache flushes to ensure crash consistency, leading to (much) reduced performance and excessively compromised NVMs lifetime. In this paper we design and evaluate NVMcached, a KV cache for non-volatile byte-addressable memory that can significantly reduce use of flushes and minimize data loss by leveraging consistency-friendly data structures and batched space allocation and reclamation. Experiments show that NVMcached can improve its system throughput by up to 2.8x for write-intensive real-world workloads, compared to a non-volatile memcached.


quantitative evaluation of systems | 2011

A Tool for Scalable Profiling and Tracing of Java and Native Code Interactions

Parijat Dube; Seetharami R. Seelam; Yanbin Liu; Megumi Ito; Thomas Ling; Michel H. T. Hack; Liana Fong; Graeme Johnson; Michael H. Dawson; Li Zhang; Yuqing Gao

Java workloads have two different execution spaces: one in JVM and the other in the native environment. Understanding workload activity in native and non-native (Java) spaces and its impact on the overall resource consumption of Java workloads can be very useful. For example, this knowledge can be exploited in code optimization and for efficient process level scheduling especially in emerging hybrid systems. Existing Java run time tracing tools are quite heavyweight and/or offer limited useful information for understanding Java and native space interactions. We developed an extremely lightweight tracing tool for enterprise Java workloads. The tool captures detailed per-thread statistics related to resource usage and activity in JVM and native spheres. Efficient design based on innovative thread and memory management principles enables us to achieve scalable monitoring with our tool on multi-core systems running enterprise workloads. The information captured by the tool is used to build workload profiles which can then be used for predictive performance of Java workloads in emerging systems and architectures.


international symposium on precision clock synchronization for measurement control and communication | 2010

Leap Second support in computers

Michel H. T. Hack; Xiaoqiao Meng; Steve Froehlich; Li Zhang

The seconds-in-epoch method of representing current time in computers presents problems when required to (a) represent UTC, (b) be monotonic and (c) have sub-second accuracy, as these are contradictory requirements in the presence of Leap Seconds. We analyze various proposed solutions to this conundrum, for both operating systems and NTP. (What good is microsecond-level clock synchronization if the clock can be off by a full second?) We then propose a general solution: TAI-based system time, with conversion to UTC by comparing to a TAI-based threshold and then subtracting the appropriate Leap Second Offset.


Concurrency and Computation: Practice and Experience | 2012

Experiences in building and scaling an enterprise application on multicore systems

Seetharami R. Seelam; Yanbin Liu; Parijat Dube; Megumi Ito; Deniz Binay; Michael H. Dawson; Pramod B. Nagaraja; Graeme Johnson; Liana Fong; Michel H. T. Hack; Xiaoqiao Meng; Yuqing Gao; Li Zhang

Even though Java is the de facto programming language for enterprise applications, there exist only a limited number of Java‐based benchmarks to understand the performance on emerging multicore systems. To bridge this gap, this paper presents a report generation benchmark that is developed on top of Open Source Apache Geronimos DayTrader benchmark. Report generation and rendering is at the heart of many enterprise business analytics and business intelligence software products, and it is used by many enterprise applications. We evaluate the performance scalability of this benchmark on a state‐of‐the‐art Power7 multicore system with 8 Power7 cores and 32 hardware threads. The benchmark throughput scales linearly up to eight hardware threads, but beyond that point, the throughput falls sharply. Significant locking in the Java class libraries for non‐shared objects results in this performance drop. Splitting the locks on these shared classes results in near linear scaling from eight to 32 threads and improved the throughput by 80%. We also show that the Linux operating system load balancing could result in a degraded application performance in hardware multithreaded systems and simultaneous‐multithreads‐aware task scheduling results in uniform core‐resource utilization as well as improved application performance. Copyright

Researchain Logo
Decentralizing Knowledge