41 research outputs found
JGroups evaluation in J2EE cluster environments
Clusters have become the de facto platform to scale J2EE application servers. Each tier of the server uses group communication to maintain consistency between replicated nodes. JGroups is the most commonly used Java middleware for group communications in J2EE open source implementations. No evaluation has been done yet to evaluate the scalability of this middleware and its impact on application server scalability. We present an evaluation of JGroups performance and scalability in the context of clustered J2EE application servers. We evaluate the JGroups configuration used by popular software such as the Tomcat JSP server or JBoss J2EE server. We benchmark JGroups with different network technologies, protocol stacks and cluster sizes. We show, using the default protocol stack, that group communication performance using UDP/IP depends on the switch capability to handle multicast packets. With UDP, Fast Ethernet can give better results than Gigabit Ethernet. We experiment with another configuration using TCP/IP and show that current J2EE application server clusters up to 16 nodes (the largest configuration we tested) can scale much better with this configuration. We attribute the superiority of TCP/IP based group communications over UDP/IP multicast to a better flow control management and a better usage of the network switches available in cluster environments. Finally, we discuss architectural improvements for a better modularity and resource usage of JGroups channels
Using Lightweight Transactions and Snapshots for Fault-Tolerant Services Based on Shared Storage Bricks
To satisfy current and future application needs in a cost effective manner, storage systems are evolving from mono-lithic disk arrays to networked storage architectures based on commodity components. So far, this architectural transi-tion has mostly been envisioned as a way to scale capacity and performance. In this work we examine how the block-level interface exported by such networked storage systems can be extended to deal with reliability. Our goals are: (a) At the design level, to examine how strong reliability se-mantics can be offered at the block level; (b) At the imple-mentation level, to examine the mechanisms required and how they may be provided in a modular and configurable manner. We first discuss how transactional-type semantics may be offered at the block level. We present a system design that uses the concept of atomic update intervals combined with existing, block-level locking and snapshot mechanisms, in contrast to the more common journaling techniques. We discuss in detail the design of the associated mechanisms and the trade-offs and challenges when dividing the re-quired functionality between the file-system and the block-level storage. Our approach is based on a unified and thus, non-redundant set of mechanisms for providing reliability both at the block and file level. Our design and imple-mentation effectively provide a tunable, lightweight trans-actions mechanism to higher system and application layers. Finally, we describe how the associated protocols can be implemented in a modular way in a prototype storage sys-tem we are currently building. As our system is currently being implemented, we do not present performance results
Mely: Efficient Workstealing for Multicore Event-Driven Systems
Many high-performance communicating systems are designed using the event-driven paradigm. As multicore platforms are now pervasive, it becomes crucial for such systems to take advantage of the available hardware parallelism. Event-coloring is a promising approach in this regard. First, it allows programmers to simply and progressively inject support for the safe, parallel execution of multiple event handlers through the use of annotations. Second, it relies on a workstealing algorithm to dynamically balance the execution of event handlers on the available cores. This paper studies the impact of the workstealing algorithm on the overall system performance. We first show that the only existing workstealing algorithm designed for event-coloring runtimes is not always efficient: for instance, it causes a 33% performance degradation on a Web server. We then introduce several enhancements to improve the workstealing behavior. An evaluation using both microbenchmarks and real applications, a Web server and the Secure File Server (SFS), shows that our system consistently outperforms a state-of-the-art runtime (Libasync-smp), with or without workstealing. In particular, our new workstealing improves performance by up to +25% compared to Libasync-smp without workstealing and by up to +73% compared to the Libasync-smp workstealing algorithm, in the Web server case
Un canevas logiciel pour la construction de systèmes de stockage reconfigurables pour grappes de machines
This thesis focuses on distributed storage systems for clusters of servers. Existing solutions are generally monolithic and hardly (re)configurable. As a consequence, code reuse is limited, administration of such services is complex, and developing robust and autonomic systems is difficult. We propose a software framework to alleviate these constraints. A storage service is constructed from a set of components and provides an explicit representation of control and data streams. The architecture allows a fine-grained tuning of the system properties, including networking protocols and strategies for data transfers. In addition, the execution infrastructure provides mechanisms for dynamic reconfiguration of the code, the parameters and the structure of the system. A prototype was implemented at the block level. It shows that a modular approach can help building flexible and custom systems and is compatible with good performance.Cette thèse s'intéresse aux systèmes de stockage répartis pour grappes de serveurs. Les solutions existantes sont généralement monolithiques et peu (re)configurables. Elles limitent la réutilisation de code, compliquent l'administration et le développement de systèmes robustes et autonomes. Nous proposons un canevas logiciel visant à lever ces contraintes. Un service de stockage est construit à partir d'un assemblage de composants et fournit une représentation explicite des flux de contrôle et de données. L'architecture permet un paramétrage fin des propriétés du système, y compris au niveau des protocoles de communication et des stratégies de transfert des données. L'infrastructure d'exécution offre, de plus, des mécanismes de reconfiguration dynamique du code, des paramètres et de la structure du système. Un prototype, implémenté au niveau bloc, montre qu'une approche modulaire est conciliable avec de bonnes performances et permet de construire des services flexibles et spécialisés
A Distributed Shared Buffer Space for Data-intensive Applications
Efficient memory allocation and data transfer for cluster-based data-intensive applications is a difficult task. Both changes in cluster interconnects and application workloads usually require tuning of the application and network code. We propose separating control and data transfer traffic by accessing data through a DSM-like cluster-wide shared buffer space and only including buffer references in the control messages. Using a generic API for accessing buffers allows for tuning data transfer without changing the application code. A prototype, implemented in the context of a distributed storage system, has been validated with several networking technologies, showing that such a framework can combine performance and flexibility.
Un canevas logiciel pour la construction de systèmes de stockage reconfigurables pour grappes de machines
Cette thèse s'intéresse aux systèmes de stockage répartis pour grappes de serveurs. Les solutions existantes sont généralement monolithiques et peu (re)configurables. Elles limitent la réutilisation de code, compliquent l'administration et le développement de systèmes robustes et autonomes. Nous proposons un canevas logiciel visant à lever ces contraintes. Un service de stockage est construit à partir d'un assemblage de composants et fournit une représentation explicite des flux de contrôle et de données. L'architecture permet un paramétrage fin des propriéte s du système, y compris au niveau des protocoles de communication et des stratégies de transfert des données. L'infrastructure d'exécution offre, de plus, des mécanismes de reconfiguration dynamique du code, des paramètres et de la structure du système. Un prototype, implémenté au niveau bloc, montre qu'une approche modulaire est conciliable avec de bonnes performances et permet de construire des services flexibles et spécialisés.GRENOBLE1-BU Sciences (384212103) / SudocSudocFranceF
Rebooting Virtualization Research (Again)
International audienceVisible or hidden, virtualization platforms remain the cornerstone of the cloud and the performance overheads of the latest generations have shrunk. Is hypervisor research dead? We argue that the upcoming trends of hardware disaggregation in the data center motivate a new chapter of virtualization research. We explain why the guest virtual machine abstraction is still relevant in such a new hardware environment and we discuss challenges and ideas for hypervisor and guest OS design in this context. Finally, we propose the architecture of a research platform to explore these questions
Simplifying Administration through Dynamic Reconfiguration in a Cooperative Cluster Storage System
Cluster Storage Systems where storage devices are distributed across a large number of nodes are able to reduce the I/O bottleneck problems present in most centralized storage systems. However, such distributed storage devices are hard to manage efficiently. In this paper, we examine the use of explicit, component-based (command and data) paths between hosts and disks as a vehicle for performing non-disruptive storage system reconfiguration. We describe the mechanisms necessary to perform reconfigurations and show how they can be used to handle two management tasks: migration between network technologies and rebuilding a disk in a mirror. Our approach is validated through initial performance measurements of these two tasks using a prototype implementation. The results show that on-line reconfiguration is possible at a modest cost