Ph.D. AlumniProgramming Systems Lab (PSL)
Computer Science Department
450 Computer Science Bldg
500 W 120 St
New York, NY 10027
Office: 608 CEPSR
rg2023 AT DOT columbia.edu
rg2023 AT DOT cs.columbia.edu
CV Teaching Statement Research Statement
Update: I joined the RAD Lab at UC Berkeley as a Postdoc in September 2008. Prior to this I was a Ph.D. Student working as a Graduate Research Assistant (GRA) in the Programming Systems Lab (PSL) under the supervision of Prof. Gail Kaiser.
My Ph.D. research was concerned with developing a methodology for evaluating and comparing the reliability, availability and serviceability (RAS) characteristics of computing systems using a combination of runtime fault-injection tools (developed by us and by others) and mathematical modeling techniques.
I am originally from Barbados and I received my B.Sc. in Computer Science and Management from the University of the West Indies (Cavehill Campus, Barbados) in 2000 before coming to Columbia University as a master's student in the Fall of 2001.
DISCUS - Web Service Aggregation [2002/3]Decentralized Information Spaces for Composition and Unification of Web Services
DISCUS focuses on rapidly forming alliances among existing legacy systems and services that may span organizational boundaries to deal with a temporary (and possibly unique) problem. The idea is that this specially-formed and dynamically-integrated suite of tools and data, termed a Summit, will help operational teams (of humans, agents and/or applications) to achieve quick understanding and resolution of the task at hand.
[DISCUS Position Paper] [OOPSLA 2002 Presentation]
Kheiron - Runtime Adaptation [2004/5]
Kheiron was developed as a toolkit for performing runtime adaptations in software systems. Our original goal was to create a tool that could be used to dynamically retro-fit self-healing capabilities onto existing/legacy systems transparently and with low overhead. Kheiron manipulates compiled C programs running in an unmanaged execution environment (ELF binaries on Linux x86) as well as programs running in managed execution environments e.g. Microsoft's Common Language Runtime and Sun Microsystems' Java Virtual Machine. We currently use Kheiron to build fault-injection tools, which we use in our RAS-benchmarking efforts described below.
7U - Reliability, Availability and Serviceability (RAS) Benchmarking [2006/7]
The most common and well-understood way to evaluate and compare computing systems is via
performance-oriented benchmarks. However, numerous other demands are placed on computing
systems besides speed. Current generation and next generation computing systems are expected
to be reliable, highly available, easy to manage and able to repair faults and recover from failures
with minimal human intervention.
The extra-functional requirements concerned with reliability, high availability, and serviceability (manageability, repair and recovery) represent an additional set of high-level goals the system is expected to meet or exceed. These goals govern the system's operation and are codified using policies and service level agreements (SLAs).
To satisfy these extra-functional requirements, system-designers explore or employ a number of mechanisms geared towards improving the system's reliability, availability and serviceability (RAS) characteristics. However, to evaluate these mechanisms and their impact, we need something more than performance metrics.
Performance-measures are suitable for studying the feasibility of the mechanisms i.e. they can be used to conclude that the level of performance delivered by the system with these mechanisms active does not preclude its usage. However, performance numbers convey little about the efficacy of the systems RAS-enhancing mechanisms. Further, they do not allow us to analyze the (expected or actual) impact of individual mechanisms or make comparisons/discuss tradeoffs between mechanisms.
What is needed is an evaluation methodology that is able to analyze the details of the RAS-enhancing mechanisms - the micro-view as well as the high-level goals, expressed as policies, SLAs etc., governing the system's operation - the macro-view. Further, we must establish a link between the details of the mechanisms and their impact on the high-level goals. My thesis is concerned with developing the tools and applying analytical techniques to enable this kind of evaluation.