Browsing by Author "Chanda, Anupam"
Now showing 1 - 5 of 5
Results Per Page
Sort Options
Item A Comparison of Software Architectures for E-business Applications(2002-02-20) Cecchet, Emmanuel; Chanda, Anupam; Elnikety, Sameh; Marguerite, Julie; Zwaenepoel, WillyAs dynamic content has become more prevalent on the Web, a number of standard mechanisms have evolved to generate such dynamic content. We study three specific mechanisms in common use: PHP, Java servlets, and Enterprise Java Beans (EJB). PHP and Java servlets require a direct encoding of the database queries in the application logic. EJB provides a level of indirection, allowing the application logic to call bean methods that then perform database queries. Unlike PHP, which typically executes on the same machine as the Web server, Java servlets and EJB allow the application logic to execute on different machines, including the machine on which the database executes or a completely separate (set of) machine(s). We present a comparison of the performance of these three systems in different configurations for two application benchmarks: an auction site and an online bookstore. We choose these two applications because they impose vastly different loads on the sub-systems: the auction site stresses the Web server front-end while the online bookstore stresses the database. We use open-source software in common use in all of our experiments (the Apache Web server, Tomcat servlet server, Jonas EJB server, and MySQL relational database). The computational demands ofJava servlets are modestly higher than those of PHP. The ability, however, of locating the servlets on a machine different from the Web server results in better performance for Java servlets than for PHP in the case that the application imposes a significant load on the front-end Web server. The computational demands of EJB are much higher than those of PHP and Java servlets. As with Java servlets, we can alleviate EJB's performance problems by putting them on a separate machine, but the resulting overall performance remains inferior to that of the other two systems.Item An Efficient Threading Model to Boost Server Performance(2004-09-13) Chanda, Anupam; Cox, Alan L.; Elmeleegy, Khaled; Gil, Romer; Mittal, Sumit; Zwaenepoel, WillyWe investigate high-performance threading architectures for I/O intensive multi-threaded servers. We study thread architectures from two angles: (1) number of user threads per kernel thread, and (2) use of synchronous I/O vs. asynchronous I/O. We underline the shortcomings of 1-to-1threads with synchronous I/O, N-to-1 threads with asynchronous I/O, and N-to-M threads with synchronous I/O with respect to server performance We propose N-to-M threads with asynchronous I/O, a novel and previously unexplored thread model, for such servers. We explain the architectural benefits of this thread model over the above mentioned architectures. We have designed and implemented ServLib, a thread library, modeled in this architecture. We optimize ServLib to reduce context switches for large I/O transfers. ServLib exports standard POSIX threads (pthreads) API and can be slipped transparently beneath any multi-threaded application using such API. We have evaluated ServLib with two applications, the Apache multi-threaded web server, and the MySQL multi-threaded database server. Our results show that for synthetic and real workloads Apache with ServLib registers a performance improvement of 10-25%over Apache with 1-to-1 thread and N-to-1 thread libraries. For TPC-W workload, ServLib improves the performance of MySQL by 10-17% over 1-to-1 and N-to-1thread libraries.Item An efficient threading model to boost server performance(2003) Chanda, Anupam; Zwaenepoel, WillyMulti-threading is a popular choice for server architecture. Widely used servers, like the Apache web server and the MySQL database server, are written in a multi-threaded fashion. We investigate the effects of thread architecture on server performance from two angles: (1) number of user threads per kernel thread, and (2) use of blocking I/O vs. non-blocking I/O. We propose N-to-M threads with non-blocking I/O, a novel threading model, to provide higher performance for servers, and explain its advantages over other existing thread architectures, viz., 1-to-1 threads with blocking I/O, N-to-1 threads with non-blocking I/O, and N-to-M threads with blocking I/O. We demonstrate the efficacy of this threading model by showing performance improvement for Apache and MySQL. Results show that our threading model provides a performance improvement of 10--22% for Apache (for synthetic and real workloads), and 10--17% for MySQL (for TPC-W workload) over existing thread models.Item Bottleneck Characterization of Dynamic Web Site Benchmarks(2002-02) Amza, Cristiana; Cecchet, Emmanuel; Chanda, Anupam; Cox, Alan; Elnikety, Sameh; Gil, Romer; Marguerite, Julie; Rajamani, Karthick; Zwaenepoel, WillyThe absence of benchmarks for Web sites with dynamic content hasbeen a major impediment to research in this area. We describe three benchmarks for evaluating the performance of Web sites with dynamic content. The benchmarks model three common types of dynamic-content Web sites with widely varying application characteristics: an online bookstore, an auction site, and a bulletin board. For each benchmark we describe the design of the database, the interactions provided by the Web server, and the workloads used in analyzing the performance of the system. We have implemented these three benchmarks with commonly used open-source software. In particular, we used the Apache Web server, the PHP scripting language, and the MySQL relational database. Our implementation is therefore representative of the many dynamic content Web sites built using these tools. Our implementations are available freely from our Web site for other researchers to use. We present a performance evaluation of our implementations of these three benchmarks on contemporary commodity hardware. Our performance evaluation focused on finding andex plaining the bottleneck resources in each benchmark. For the online bookstore, the CPU on the database was the bottleneck, while for the auction site and the bulletin board the CPU on the front-end Web server was the bottleneck. In none of the benchmarks was the network between the front-end and the back-end a bottleneck. With amounts of memory common by today's standards, neither the main memory nor the disk proved to be a limiting factor in terms of performance for any of the benchmarks.Item Transactional profiling for multi-tier applications(2007) Chanda, Anupam; Cox, Alan L.This dissertation is concerned with performance debugging of multi-tier applications, such as those commonly found in web services and dynamic-content web sites. A multi-tier application receives an external stimulus ( request), executes the request and returns the response. A transaction begins with a request and ends with the corresponding response. It is executed by a series of different stages of the application. Existing tools and techniques for profiling such applications are not general enough to track and profile transactions in a generic multi-tier application. We propose transactional profiling that provides a general solution to this problem. We provide novel algorithms and techniques to track and profile transactions that flow through shared memory, events, stage queues or via inter-process communication using messages. We also measure interference among concurrent transactions. The thesis of this work is that transactional profiling addresses the limitations of existing profiling techniques for multi-tier applications. Transactional profiling works by tracking transaction execution paths in an application. Essentially, it extends the concept of call path profiling to a distributed environment. Additionally, it introduces new methods to track transactions for shared memory communication, and communication through events and stage queues. Transactional profiling is mainly composed of the following: tracking transactions in a multi-tier application, and associating profile data with transactions. Further, transactional profiling captures the interference among concurrent transactions, e.g., transactions waiting to acquire locks. The contributions of this thesis are the following. We propose the transactional profiling model for profiling multi-tier applications. We describe the design and implementation of Whodunit, our prototype transactional profiler. Using Apache and MySQL we demonstrate the correctness of our proposed algorithm for tracking transaction flows through shared memory. We demonstrate the use of Whodunit in obtaining the transactional profile of web servers, a web proxy cache, a bookstore application, and a bulletin board application. Whodunit-inspired optimizations increased the peak throughput of the bookstore by almost 3x and the bulletin board by almost 2x. We measured Whodunit's overhead on the performance of these applications and found it to be small---less than 6% in all cases.