Arun Iyengar - Technical Work



Dynamic Content Generation and Caching for the Web


Dynamic Web content can consume orders of magnitude more CPU time to serve than static content. Generating dynamic content is often the performance bottleneck for Web sites, even if only a fraction of the content is generated dynamically. The key challenge is to serve dynamic content efficiently while providing current and consistent information.

The following papers introduce cache dependencies for maintaining consistency between cached dynamic objects and underlying data which affect their values; the INFOCOM '99 paper describes how they were successfully deployed at a major Web site to significantly improve performance and consistency levels for dynamic data. Since that time, cache dependencies have become commonly used by many developers (as a Google search will quickly reveal). The following paper describes our use several years ago of fragment-based techniques for generating dynamic Web content. These techniques allow fragment caching. Since that time, fragment-based Web publication has become widely used. Support for fragment caching now extends far beyond IBM. Microsoft's ASP.NET and Ruby on Rails support fragment caching as do Oracle, Akamai, and others. The following papers describe techniques which we have developed for efficiently publishing dynamic content. Several of these techniques can be applied to changing content in many different forms and are not restricted to the Web. The ACM Transactions on Internet Technology and SC papers describe some of our experiences when we deployed our techniques at real highly accessed Web sites. The ability to cache dynamic content can greatly improve performance. Many systems do not allow dynamic content to be cached because of the problem of maintaining consistency. The following papers describe techniques we have developed for consistently caching dynamic data. The IEEE/ACM Transactions on Networking and USITS papers describe our experiences caching dynamic data for real highly accessed Web sites.

Load Balancing and Scheduling


I did early work on Web load balancing with affinity between specific clients and servers (sticky load balancing). IBM's Net.Dispatcher introduced this feature in a product several years ago. Since that time, load balancing with affinity has become widely used and is now a standard feature of Web load balancers. Among other things, this is important for supporting high TLS (SSL) request rates for secure (encrypted) communications over the Web such as when credit card transactions are made. Affinity-based load balancing is also important for other protocols such as the Session Initiation Protocol (SIP) as described in our INFOCOM 2009 paper.

The techniques described in the Computer Networks and SC papers have also been successful in real deployments.

Web Performance


The following papers provide a general overview of Web performance.

Caching for Streaming Media, Middleware, Web


Caching is extremely important for improving the performance of distributed systems and can be deployed at multiple places. The following papers describe work that we have done developing caches applicable to a broad range of distributed applications and not necessarily limited to the Web. The caching systems described in the Computer Networks, Middleware, and IPCCC papers have been successful in real deployments.

Fault Tolerance and Replication



Security


My work on Web load balancing with affinity between specific clients and servers (sticky load balancing) is critically important for Web sites which need to serve encrypted content at high rates.

Service-Oriented Computing



Storage Allocation


I am interested in storage allocation for both main memory and disk. A major theme of my work in this area has been storage allocators which adapt themselves to request size distributions to optimize performance and minimize fragmentation. The first paper describes a disk storage allocation system which outperforms both file systems and databases for the workloads we used. This disk storage allocation system has been successful in several real deployments. The second paper presents main memory storage allocation algorithms which are particularly well suited for parallel computer systems.

Capacity Planning and Performance Modelling


I am also interested in capacity planning and performance modelling for both scientific and commercial workloads. I have developed improved techniques for predicting customer workloads in the future from past behavior. This allows customers to estimate how much capacity will be required in the future. It also helps schedule tasks to optimize utilization of system resources and efficiently make use of spare CPU cycles in grid environments. Several of the techniques described in the papers in this section have been successfully used commercially.

Web Applications



Copyright Notices

  • ACM Papers - Copyright © by Association for Computing Machinery, Inc. Permission to make digital or hard copies of part of all of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage. To copy otherwise, to republish, to post of servers, or to redistribute to lists, requires prior specific permission and/or a fee.
  • IEEE Papers - Copyright © by IEEE. Permission to make digital or hard copies of part or all of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit. To copy otherwise, to republish, to post of servers, or to redistribute to lists, requires prior specific permission and/or a fee.
]