Network


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

Hotspot


Dive into the research topics where Mukund Raghavachari is active.

Publication


Featured researches published by Mukund Raghavachari.


international conference on data engineering | 2003

Streaming XPath processing with forward and backward axes

Charles Barton; Philippe Charles; Deepak Goyal; Mukund Raghavachari; Marcus Fontoura; Vanja Josifovski

We present a streaming algorithm for evaluating XPath expressions that use backward axes (parent and ancestor) and forward axes in a single document-order traversal of an XML document. Other streaming XPath processors handle only forward axes. We show through experiments that our algorithm significantly outperforms (by more than a factor of two) a traditional nonstreaming XPath engine. Furthermore, our algorithm scales better because it retains only the relevant portions of the input document in memory. Our engine successfully processes documents over 1GB in size, whereas the traditional XPath engine degrades considerably in performance for documents over 100 MB in size and fails to complete for documents of size over 200 MB.


international world wide web conferences | 2004

A smart hill-climbing algorithm for application server configuration

Bowei Xi; Zhen Liu; Mukund Raghavachari; Cathy H. Xia; Li Zhang

The overwhelming success of the Web as a mechanism for facilitating information retrieval and for conducting business transactions has ledto an increase in the deployment of complex enterprise applications. These applications typically run on Web Application Servers, which assume the burden of managing many tasks, such as concurrency, memory management, database access, etc., required by these applications. The performance of an Application Server depends heavily on appropriate configuration. Configuration is a difficult and error-prone task dueto the large number of configuration parameters and complex interactions between them. We formulate the problem of finding an optimal configuration for a given application as a black-box optimization problem. We propose a smart hill-climbing algorithm using ideas of importance sampling and Latin Hypercube Sampling (LHS). The algorithm is efficient in both searching and random sampling. It consists of estimating a local function, and then, hill-climbing in the steepest descent direction. The algorithm also learns from past searches and restarts in a smart and selective fashion using the idea of importance sampling. We have carried out extensive experiments with an on-line brokerage application running in a WebSphere environment. Empirical results demonstrate that our algorithm is more efficient than and superior to traditional heuristic methods.


Software - Practice and Experience | 1996

A machine-independent debugger

David R. Hanson; Mukund Raghavachari

cdb is a simpe, source‐level debugger for ANSI/ISO C programs compiled by lcc, a retargetable C compiler. cdb is completely independent of its target architecture. This independence is achieved by embedding a small amount of itself — a nub —  in the program to be debugged and by having the compiler emit machine‐independent symbol‐table data and related code. This paper describes the design of a nub interface for debugging, a target‐independent implementation of this interface for cdb, and the implementation of cdb itself. When compared to platform‐specific debuggers, cdbs implementation is minuscule: the nub, debugger, and associated communications routines take about 1500 lines of C, and fewer than 600 lines were added to lccs front end to emit symbol tables and breakpoint hooks. All this code is machine independent.


international world wide web conferences | 2005

XJ: facilitating XML processing in Java

Matthew Harren; Mukund Raghavachari; Oded Shmueli; Michael G. Burke; Rajesh Bordawekar; Igor Pechtchanski; Vivek Sarkar

The increased importance of XML as a data representation format has led to several proposals for facilitating the development of applications that operate on XML data. These proposals range from runtime API-based interfaces to XML-based programming languages. The subject of this paper is XJ, a research language that proposes novel mechanisms for the integration of XML as a first-class construct into Java™. The design goals of XJ distinguish it from past work on integrating XML support into programming languages --- specifically, the XJ design adheres to the XML Schema and XPath standards. Moreover, it supports in-place updates of XML data thereby keeping with the imperative nature of Java. We have built a prototype compiler for XJ, and our preliminary experiments demonstrate that the performance of XJ programs can approach that of traditional low-level API-based interfaces, while providing a higher level of abstraction.


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

Mapping UML designs to Java

William H. Harrison; Charles Barton; Mukund Raghavachari

Tools for the generation of code from model descriptions are valuable in helping developers maintain consistency between a model and its implementation. In this paper, we describe a new method for generating Java implementation code from UML diagrams. Our method accepts UML diagrams specified at a higher-level than current tools, and places fewer constraints on the supported UML constructs, like multiple generalizations and association classes. Unlike current tools, it generates implementation code that shields system implementers from the low-level details of how associations and other UML constructs are mapped to Java. Furthermore, it supports the modular design of systems according to concerns[2, 10] by being able to generate code from a set of related UML diagrams. While our discussion is focused on the special problem of generating Java implementation code, the issues discussed in this paper are applicable more generally to object-oriented implementation languages.


distributed systems operations and management | 2003

Dynamic Surge Protection: An Approach to Handling Unexpected Workload Surges with Resource Actions that Have Lead Times

Ed Lassettre; David Wiley Coleman; Yixin Diao; Steve Froehlich; Joseph L. Hellerstein; Lawrence S. Hsiung; Todd W. Mummert; Mukund Raghavachari; Geoffrey Parker; Lance Warren Russell; Maheswaran Surendra; Veronica P. Tseng; Noshir Cavas Wadia; Pery Ye

Today’s information technology departments have significantly varying demands for resources due to unexpected surges in subscriber demands (e.g., a large response to a product promotion). Further complicating matters is that many resource actions done in response to surges (e.g., provisioning or de-provisioning an application server) have substantial delays (lead times) between initiating the resource action and its taking effect. This paper describes dynamic surge protection, an approach to handling unexpected workload surges in systems that have lead times for resource actions. Dynamic surge protection incorporates three technologies: adaptive short-term forecasting, on-line capacity planning, and configuration management. The paper includes empirical results from evaluations done on a research testbed, including favorable comparisons with a threshold-based heuristic. The results from an extended test also show that service objectives can be maintained cost-effectively.


international conference on software engineering | 2003

The deployer's problem: configuring application servers for performance and reliability

Mukund Raghavachari; Darrell C. Reimer; Robert D. Johnson

Frameworks such as J2EE are designed to simplify the process of developing enterprise applications by handling much of the complexity of concurrency, transaction, and persistence management. An application server that supports such a framework implements these concerns, freeing the application developer to focus on the task of implementing the business logic aspect of the application. In such frameworks, the deployer, the individual(s) who configures the application server to manage concurrency, transaction and persistence correctly and efficiently, plays a central role. A deployer has few tools to assist with performing this complicated task. Incorrect configuration can lead to application failure or severe underperformance. We outline the problems facing the deployer of applications, present a methodology that can assist the programmer with the task of configuring application servers, and present two case studies that validate the usefulness of our methodology.


international world wide web conferences | 2004

XJ: integration of XML processing into java

Matthew Harren; Mukund Raghavachari; Oded Shmueli; Michael G. Burke; Vivek Sarkar; Rajesh Bordawekar

The increased importance of XML as a universal data representation format has led to several proposals for enabling the development of applications that operate on XML data. These proposals range from runtime API-based interfaces to XML-based programming languages. The subject of this paper is XJ, a research language that proposes novel mechanisms for the integration of XML as a first-class construct into JavaTM. The design goals of XJ distinguish it from pastwork on integrating XML support into programming languages ---specifically, the XJ design adheres to the XML Schema and XPathstandards, and supports in-place updates of XML data thereby keeping with the imperative nature of Java. We have also built a prototype compiler for XJ, and our preliminary experimental results demonstrate that the performance of XJ programs can approach that of tradition allow level API-based interfaces, while providing a higher level of abstraction.


ACM Transactions on Computer Systems | 1999

Ace: a language for parallel programming with customizable protocols

Mukund Raghavachari; Anne Rogers

Customizing the protocols that manage accesses to different data structures within an application can improve the performance of software shared-memory programs substantially. Existing systems for using customizable protocols are hard to use directly because the mechanisms they provide for manipulating protocols are low-level ones. This article is an in-depth study of the issues involved in providing language support for application-specific protocols. We describe the design and implementation of a new language for parallel programming, Ace, that integrates support for customizable protocols with minimal extensions to C. Ace applications are developed using a shared-memory model with a default sequentially consistent protocol. Performance can then be optimized, with minor modifications to the application, by experimenting with different protocol libraries. The design of Ace was driven by a detailed study of the use of customizable protocols. We delineate the issues that arise when programming with customizable protocols and present novel abstractions that allow for their easy use. We describe the design and implementation of a runtime system and compiler for Ace nd discuss compiler optimizations that improve the performance of such software shared-memory systems. We study the communication patterns of a set of benchmark applications and consider the use of customizable protocols to optimize their performance. We evaluate the performance of our system through experiments on a Thinking Machine CM-5 and a Cray T3E. We also present measurements that demonstrate that Ace has good performance compared to that of a modern distributed shared-memory system.


international conference on distributed computing systems | 1999

Mockingbird: flexible stub compilation from pairs of declarations

Joshua S. Auerbach; Charles Barton; Mark C. Chu-Carroll; Mukund Raghavachari

Mockingbird is a prototype tool for developing interlanguage and distributed applications. It compiles stubs from pairs of interface declarations, allowing existing data types to be reused on both sides of every interface. Other multilanguage stub compilers impose data types on the application, complicating development. Mockingbird supports C/C++, Java, and CORBA IDL, and can be extended to other languages. Mockingbird can generate stubs that convert between types whose structural equivalence would be missed by other tools. We show that this kind of tool improves programming productivity, and describe, in detail, Mockingbirds design and implementation.

Researchain Logo
Decentralizing Knowledge