Network


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

Hotspot


Dive into the research topics where Andrew James Edwards is active.

Publication


Featured researches published by Andrew James Edwards.


symposium on operating systems principles | 2011

Windows Azure Storage: a highly available cloud storage service with strong consistency

Brad Calder; Ju Wang; Aaron W. Ogus; Niranjan Nilakantan; Arild E. Skjolsvold; Sam McKelvie; Yikang Xu; Shashwat Srivastav; Jiesheng Wu; Huseyin Simitci; Jaidev Haridas; Chakravarthy Uddaraju; Hemal Khatri; Andrew James Edwards; Vaman Bedekar; Shane Mainali; Rafay Abbasi; Arpit Agarwal; Mian Fahim ul Haq; Muhammad Ikram ul Haq; Deepali Bhardwaj; Sowmya Dayanand; Anitha Adusumilli; Marvin McNett; Sriram Sankaran; Kavitha Manivannan; Leonidas Rigas

Windows Azure Storage (WAS) is a cloud storage system that provides customers the ability to store seemingly limitless amounts of data for any duration of time. WAS customers have access to their data from anywhere at any time and only pay for what they use and store. In WAS, data is stored durably using both local and geographic replication to facilitate disaster recovery. Currently, WAS storage comes in the form of Blobs (files), Tables (structured storage), and Queues (message delivery). In this paper, we describe the WAS architecture, global namespace, and data model, as well as its resource provisioning, load balancing, and replication systems.


virtual execution environments | 2006

Framework for instruction-level tracing and analysis of program executions

Sanjay Bhansali; Wen-Ke Chen; Stuart de Jong; Andrew James Edwards; Ron Murray; Milenko Drinic; Darek Mihocka; Joe Chau

Program execution traces provide the most intimate details of a programs dynamic behavior. They can be used for program optimization, failure diagnosis, collecting software metrics like coverage, test prioritization, etc. Two major obstacles to exploiting the full potential of information they provide are: (i) performance overhead while collecting traces, and (ii) significant size of traces even for short execution scenarios. Reducing information output in an execution trace can reduce both performance overhead and the size of traces. However, the applicability of such traces is limited to a particular task. We present a runtime framework with a goal of collecting a complete, machine- and task-independent, user-mode trace of a programs execution that can be re-simulated deterministically with full fidelity down to the instruction level. The framework has reasonable runtime overhead and by using a novel compression scheme, we significantly reduce the size of traces. Our framework enables building a wide variety of tools for understanding program behavior. As examples of the applicability of our framework, we present a program analysis and a data locality profiling tool. Our program analysis tool is a time travel debugger that enables a developer to debug in both forward and backward direction over an execution trace with nearly all information available as in a regular debugging session. Our profiling tool has been used to improve data locality and reduce the dynamic working sets of real world applications.


programming language design and implementation | 2007

Automatically classifying benign and harmful data races using replay analysis

Satish Narayanasamy; Zhenghao Wang; Jordan Tigani; Andrew James Edwards; Brad Calder

Many concurrency bugs in multi-threaded programs are due to dataraces. There have been many efforts to develop static and dynamic mechanisms to automatically find the data races. Most of the prior work has focused on finding the data races and eliminating the false positives. In this paper, we instead focus on a dynamic analysis technique to automatically classify the data races into two categories - the dataraces that are potentially benign and the data races that are potentially harmful. A harmful data race is a real bug that needs to be fixed. This classification is needed to focus the triaging effort on those data races that are potentially harmful. Without prioritizing the data races we have found that there are too many data races to triage. Our second focus is to automatically provide to the developer a reproducible scenario of the data race, which allows the developer to understand the different effects of a harmful data race on a programs execution. To achieve the above, we record a multi-threaded programs execution in a replay log. The replay log is used to replay the multi-threaded program, and during replay we find the data races using a happens-before based algorithm. To automatically classify if a data race that we find is potentially benign or potentially harmful, were play the execution twice for a given data race - one for each possible order between the conflicting memory operations. If the two replays for the two orders produce the same result, then we classify the data race to be potentially benign. We discuss our experiences in using our replay based dynamic data race checker on several Microsoft applications.


Archive | 2001

Vulcan Binary transformation in a distributed environment

Amitabh Srivastava; Andrew James Edwards; Hoi Vo


Archive | 1999

Shared library optimization for heterogeneous programs

Hon Keat W. Chan; Andrew James Edwards; Amitabh Srivastava; Hoi H. Vo


Archive | 2003

Software development infrastructure

Vinod K. Grover; Charles L. Mitchell; David Mitford Gillies; Mark Leslie Roberts; Mark Ronald Plesko; David Tarditi; Andrew James Edwards; Julian Burger; Andrew E. Ayers; Akella V. S. Sastry


Archive | 1999

Instrumentation and optimization tools for heterogeneous programs

Ronnie Chaiken; Andrew James Edwards; John A. Lefor; Jiyang Liu; Ken B. Pierce; Amitabh Srivastava; Hoi H. Vo


Archive | 2004

Translation and transformation of heterogeneous programs

Ronnie Chaiken; Hon Keat W. Chan; Andrew James Edwards; Gregory A. Eigsti; David Mitford Gillies; Bruce M. Kuramoto; John A. Lefor; Ken B. Pierce; Amitabh Srivastava; Hoi H. Vo; Gideon A. Yuval


Archive | 2001

Application program interface for dynamic instrumentation of a heterogeneous program in a distributed environment

Andrew James Edwards; Carlos P. Gomes


Archive | 2006

Instruction level execution analysis for debugging software

Andrew James Edwards; Jordan Tigani; Zhenghao Wang

Collaboration


Dive into the Andrew James Edwards's collaboration.

Researchain Logo
Decentralizing Knowledge