Demonstration venue · read-only. Every page can be browsed; the buttons that would change it are switched off. Create an account to run TaxoReview on your own data. A simulation from public publication records: the people listed were not invited and did not agree to review.
? Tutorial for this page

Richard D. Schlichting

dblp:s/RichardDSchlichting · DBLP profile ↗
← Back
74ranked-venue papers
7as first author
0since 2021 · last 2020
—ORCID · none

Domains — the database's venue-derived domains; a paper can count in several

Systems, architecture and hardware · 34 · 4 first-authorSoftware engineering, systems software and programming languages · 19 · 2 first-authorSecurity and privacy · 13 · 2 first-authorComputer networks · 6Databases, data management, data science and information retrieval · 1Applied, interdisciplinary, general and emerging computing · 1

Expertise — from the expertise taxonomy: the topics of the expert's papers under the CCF categories. A weight counts papers with recency: 1 for a paper about the topic, 0.3 when the topic is its context, halved every five years.

Computer architecture, parallel and distributed computing, and storage systems
22 papers
Distributed systems · 81% Cloud and datacenter computing · 11% Electronic design automation · 5%
Computer networks
7 papers
Network performance modeling · 43% Network measurement and analytics · 24% Transport protocols and congestion control · 20%
Software engineering, system software, and programming languages
9 papers
Requirements engineering and software design · 34% Software maintenance and evolution · 34% Software testing · 10%
Databases, data mining, and information retrieval
1 paper
Transaction processing and concurrency control · 100%

Topics — the 30 heaviest of 71, each with the papers that count most for it

TopicWeightPapersLastEvidence papers
Transaction processing and concurrency control
serializability
0.412020
A Drop-in Middleware for Serializable DB Clustering across Geo-distributed Sites · Proc. VLDB Endow. 2020
Distributed systems › distributed system architecture
geo-distributed systems
0.412020
A Drop-in Middleware for Serializable DB Clustering across Geo-distributed Sites · Proc. VLDB Endow. 2020
Distributed systems
consistency models
0.312018
Brief Announcement: MUSIC: Multi-Site Entry Consistencyfor Geo-Distributed Services · PODC 2018
Distributed systems
distributed coordination
0.312018
Brief Announcement: MUSIC: Multi-Site Entry Consistencyfor Geo-Distributed Services · PODC 2018
Distributed systems › consistency models
entry consistency
0.312018
Brief Announcement: MUSIC: Multi-Site Entry Consistencyfor Geo-Distributed Services · PODC 2018
Cloud and datacenter computing › geo-distributed cloud
geo-distributed services
0.222020
A Drop-in Middleware for Serializable DB Clustering across Geo-distributed Sites · Proc. VLDB Endow. 2020
Brief Announcement: MUSIC: Multi-Site Entry Consistencyfor Geo-Distributed Services · PODC 2018
Distributed systems
fault tolerance
0.272011
Probabilistic Model-Driven Recovery in Distributed Systems · IEEE Trans. Dependable Secur. Comput. 2011
Building Survivable Services Using Redundancy and Adaptation · IEEE Trans. Computers 2003
A Configurable Membership Service · IEEE Trans. Computers 1998
Requirements engineering and software design › software architecture
self-adaptive systems
0.212013
Self-Management of Adaptable Component-Based Applications · IEEE Trans. Software Eng. 2013
Network performance modeling › performance prediction
end-to-end performance prediction
0.112011
Using link gradients to predict the impact of network latency on multitier applications · IEEE/ACM Trans. Netw. 2011
Electronic design automation › hardware verification and test
fault diagnosis
0.112011
Probabilistic Model-Driven Recovery in Distributed Systems · IEEE Trans. Dependable Secur. Comput. 2011
Distributed systems
grid computing
0.122006
The impact of Web service integration on grid performance · HPDC 2005
Replicating Nondeterministic Services on Grid Environments · HPDC 2006
Distributed systems
consensus
0.112006
Replicating Nondeterministic Services on Grid Environments · HPDC 2006
Distributed systems › consensus
paxos
0.112006
Replicating Nondeterministic Services on Grid Environments · HPDC 2006
Distributed systems
replication
0.112006
Replicating Nondeterministic Services on Grid Environments · HPDC 2006
Distributed systems › service-oriented architecture
web services
0.112005
The impact of Web service integration on grid performance · HPDC 2005
Distributed systems
middleware
0.021999
Real-Time Dependable Channels: Customizing QoS Attributes for Distributed Systems · IEEE Trans. Parallel Distributed Syst. 1999
Agent Middleware for Heterogeneous Scientific Simulations · SC 1998
Performance modeling and evaluation › markov models
markov decision process
0.012011
Probabilistic Model-Driven Recovery in Distributed Systems · IEEE Trans. Dependable Secur. Comput. 2011
Compilers and program optimization › dynamic optimization
profile-guided optimization
0.012002
Profile-Directed Optimization of Event-Based Programs · PLDI 2002
Distributed systems › distributed system architecture
multi-tier application
0.012009
Link Gradients: Predicting the Impact of Network Latency on Multitier Applications · INFOCOM 2009
Distributed systems
group communication
0.021998
Coyote: A System for Constructing Fine-Grain Configurable Communication Services · ACM Trans. Comput. Syst. 1998
A System for Constructing Configurable High-Level Protocols · SIGCOMM 1995
Cloud and datacenter computing
quality of service
0.011999
Real-Time Dependable Channels: Customizing QoS Attributes for Distributed Systems · IEEE Trans. Parallel Distributed Syst. 1999
Computational science and engineering
multiphysics simulation
0.011998
Agent Middleware for Heterogeneous Scientific Simulations · SC 1998
Distributed systems › group communication
group membership
0.011998
A Configurable Membership Service · IEEE Trans. Computers 1998
Distributed systems › group communication › group membership
membership service
0.011998
A Configurable Membership Service · IEEE Trans. Computers 1998
Parallel and multicore computing
parallel programming models
0.021998
Supporting Fault-Tolerant Parallel Programming in Linda · IEEE Trans. Parallel Distributed Syst. 1995
Agent Middleware for Heterogeneous Scientific Simulations · SC 1998
Distributed systems
remote procedure call
0.031993
Supporting Heterogeneity and Distribution in the Numerical Propulsion System · HPDC 1993
Facilitating Mixed Language Programming in Distributed Systems · IEEE Trans. Software Eng. 1987
Using Message Passing for Distributed Programming: Proof Rules, Disciplines · ACM Trans. Program. Lang. Syst. 1984
Internet architecture and protocols
protocol implementation
0.011995
A System for Constructing Configurable High-Level Protocols · SIGCOMM 1995
Distributed systems
programming language support
0.011995
Programming Language Support for Writing Fault-Tolerant Distributed Software · IEEE Trans. Computers 1995
Distributed systems › distributed system architecture
heterogeneous distributed systems
0.021993
Supporting Heterogeneity and Distribution in the Numerical Propulsion System · HPDC 1993
Facilitating Mixed Language Programming in Distributed Systems · IEEE Trans. Software Eng. 1987
Embedded and real-time systems
real-time communication
0.011999
Real-Time Dependable Channels: Customizing QoS Attributes for Distributed Systems · IEEE Trans. Parallel Distributed Syst. 1999

Methods — techniques the papers use, named apart from their topics

entry-consistent redo log · 0.9drop-in middleware · 0.9spectral analysis · 0.4delay injection · 0.4rule-based adaptation · 0.2offline/online decision making · 0.2markov decision theory · 0.1fault injection · 0.1bayesian estimation · 0.1static analysis · 0.1message authentication code · 0.1binary rewriting · 0.1rule-based policy composition · 0.1prototype implementation · 0.1primary-backup replication · 0.1paxos protocol · 0.1non-hierarchical module composition · 0.1event-driven execution · 0.1
YearPublicationVenuePosition
2020 MUSIC: Multi-Site Critical Sections over Geo-Distributed State
Bharath Balasubramanian, Pamela Zave, Richard D. Schlichting, Mohammad Salehe, Shankaranarayanan Puzhavakath Narayanan, S. Hossein Mortazavi, Eyal de Lara, Matti A. Hiltunen, Kaustubh R. Joshi, Gueyoung Jung
ICDCS3
2020 A Drop-in Middleware for Serializable DB Clustering across Geo-distributed Sites
abstract
Many geo-distributed services at web-scale companies still rely on databases (DBs) primarily optimized for single-site performance. At AT&T this is exemplified by services in the network control plane that rely on third-party software that uses DBs like MariaDB and PostgreSQL, which do not provide strict serializability across sites without a significant performance impact. Moreover, it is often impractical for these services to re-purpose their code to use newer DBs optimized for geo-distribution. In this paper, a novel drop-in solution for DB clustering across sites called Metric is presented that can be used by services without changing a single line of code. Metric leverages the single-site performance of an existing service's DB and combines it with a cross-site clustering solution based on an entry-consistent redo log that is specifically tailored for geo-distribution. Detailed correctness arguments are presented and extensive evaluations with various benchmarks show that Metric outperforms other solutions for the access patterns in our production use-cases where service replicas access different tables on different sites. In particular, Metric achieves up to 56% less latency and 5.2x higher throughput than MariaDB and PostgreSQL clustering, and up to 90% less latency and 26x higher throughput than CockroachDB and TiDB, systems that are designed to support geo-distribution.
Enrique Saurez, Bharath Balasubramanian, Richard D. Schlichting, Brendan Tschaen, Shankaranarayanan Puzhavakath Narayanan, Zhe Huang 0001, Umakishore Ramachandran
Proc. VLDB Endow.3
2019 Switchboard: A Middleware for Wide-Area Service Chaining
abstract
Production networks are transitioning from the use of physical middleboxes to virtual network functions (VNFs), which makes it easy to construct highly-customized service chains of VNFs dynamically using software. Wide-area service chains are increasingly important given the emergence of heterogeneous execution platforms consisting of customer premise equipment (CPE), small edge cloud sites, and large centralized cloud data centers, since only part of the service chain can be deployed at the CPE and even the closest edge site may not always be able to process all the customers' traffic. Switchboard is a middleware for realizing and managing such an ecosystem of diverse VNFs and cloud platforms. It exploits principles from service-oriented architectures to treat VNFs as independent services, and provides a traffic routing platform shared by all VNFs. Moreover, Switchboard's global controller optimizes wide-area routes based on a holistic view of customer traffic as well as the resources available at VNFs and the underlying network. Switchboard globally optimized routes achieve up to 57% higher throughput and 49% lower latency than a distributed load balancing approach in a wide-area testbed. Its routing platform supports line-rate traffic with millions of concurrent flows.
Abhigyan Sharma, Yoji Ozawa, Matti A. Hiltunen, Kaustubh R. Joshi, Richard D. Schlichting, Zhaoyu Gao
Middleware5
2018 SuperCell: Adaptive Software-Defined Storage for Cloud Storage Workloads
abstract
The explosive growth of data due to the increasing adoption of cloud technologies in the enterprise has created a strong demand for more flexible, cost-effective, and scalable storage solutions. Many storage systems, however, are not well matched to the workloads they service due to the difficulty of configuring the storage system optimally a priori with only approximate knowledge of the workload characteristics. This paper shows how cloud-based orchestration can be leveraged to create flexible storage solutions that use continuous adaptation to tailor themselves to their target application workloads, and in doing so, provide superior performance, cost, and scalability over traditional fixed designs. To demonstrate this approach, we have built "SuperCell," a Ceph-based distributed storage solution with a recommendation engine for the storage configuration. SuperCell provides storage operators with real-time recommendations on how to reconfigure the storage system to optimize its performance, cost, and efficiency based on statistical storage modeling and data analysis of the actual workload. Using real cloud storage workloads, we experimentally demonstrate that SuperCell reduces the cost of storage systems by up to 48%, while meeting service level agreement (SLA) 99% of the time, a level that any static design fails to meet for the workloads.
Keitaro Uehara, Yu Xiang 0003, Yih-Farn Robin Chen, Matti A. Hiltunen, Kaustubh R. Joshi, Richard D. Schlichting
CCGrid6
2018 Feasibility Study of Location-Conscious Multi-Site Erasure-Coded Ceph Storage for Disaster Recovery
abstract
A multi-site, distributed storage system deployment is frequently needed for disaster recovery. Traditional master-slave backup/restore solutions have their limitations and cannot meet the high data durability, system availability, and low latency required in many use cases. Software-defined storage (SDS) achieves flexibility, scalability, and cost-effectiveness through disaggregation of storage hardware from software and enables innovations in storage architectures. The open-source SDS Ceph solution can be used to build storage systems with high reliability using a disaster recovery (DR) configuration among multiple sites while maintaining cost-effectiveness. However, using multi-site erasure coding has the potential issue of longer read latency because of communication delays caused by data chunks distributed among multiple sites. This paper proposes location-conscious, multi-site erasure-coded Ceph storage that achieves both high reliability and lower read latency - even for sites that are geographically distant from each other. The investigation was conducted using a Ceph tool to confirm localities with the proposed Ceph CRUSH map, and experiments were conducted to evaluate I/O traffic to validate the proposed hypothesis. Our results show that the proposed location-conscious multi-site erasure-coded storage can be implemented in Ceph with both high reliability and low latency.
Keitaro Uehara, Yih-Farn Robin Chen, Matti A. Hiltunen, Kaustubh R. Joshi, Richard D. Schlichting
IC2E5
2018 Brief Announcement: MUSIC: Multi-Site Entry Consistencyfor Geo-Distributed Services
Bharath Balasubramanian, Richard D. Schlichting, Pamela Zave
PODC2
2015 Airfoil: A Topology Aware Distributed Load Balancing Service
abstract
Load balancing is one of the most basic services needed by cloud applications. While today's clouds and load balancers provide highly customizable load distribution policies, they are forced out of necessity to ignore the impact of load balancing on the network. However, such network agnostic behavior can lead to inefficient utilization of cloud resources and poor performance, especially for upcoming network centric applications such as network function virtualization (NFV). But can network topology, a cloud property that is hidden from tenants, be made to effectively influence load balancing, a function that is intimately tied to per-tenant application structure that is largely invisible to the cloud? We answer that question in this paper by presenting Airfoil, a novel topology-aware distributed load balancer as a service (LBaaS) that takes network topology into consideration while providing cloud tenants with application-specific load balancing policies. By finding the best communication pattern with linear programming, the most efficient load balancing strategy is calculated without using any heuristics or approximations. We evaluate Airfoil over a range of scenarios from classical web applications to NFV pipelines, and show that it can decrease the network utilization of the most highly loaded network links by over 50%. For network constrained applications, such reductions imply a doubling of application capacity without any additional infrastructure.
Hiroya Matsuba, Kaustubh R. Joshi, Matti A. Hiltunen, Richard D. Schlichting
CLOUD4
2015 Ostro: Scalable Placement Optimization of Complex Application Topologies in Large-Scale Data Centers
abstract
A complex cloud application consists of virtual machines (VMs) running software such as web servers and load balancers, storage in the form of disk volumes, and network connections that enable communication between VMs and between VMs and disk volumes. The application is also associated with various requirements, including not only quantities such as the sizes of the VMs and disk volumes, but also quality of service (QoS) attributes such as throughput, latency, and reliability. This paper presents Ostro, an Open Stack-based scheduler that optimizes the utilization of data center resources, while satisfying the requirements of the cloud applications. The novelty of the approach realized by Ostro is that it makes holistic placement decisions, in which all the requirements of an application -- described using an application topology abstraction -- are considered jointly. Specific placement algorithms for application topologies are described including an estimate-based greedy algorithm and a time-bounded A algorithm. These algorithms can deal with complex topologies that have heterogeneous resource requirements, while still being scalable enough to handle the placement of hundreds of VMs and volumes across several thousands of host servers. The approach is evaluated using both extensive simulations and realistic experiments. These results show that Ostro significantly improves resource utilization when compared with naive approaches.
Gueyoung Jung, Matti A. Hiltunen, Kaustubh R. Joshi, Rajesh Krishna Panta, Richard D. Schlichting
ICDCS5
2014 Discovering the Structure of Cloud Applications Using Sampled Packet Traces
abstract
Accurate and up-to-date knowledge of how a cloud tenant's VMs utilize the underlying cloud infrastructure is essential for many cloud management tasks including tenant onboarding, optimized VM placement, performance optimization, and debugging. Unfortunately, existing solutions such as instrumentation at the hypervisors or standard networking protocols such as LLDP only provide a partial picture of cloud tenant's application structures and how they stress the underlying infrastructure. In this paper, we consider whether it is possible to use sFlow, a standardized mechanism for packet header sampling available in most commodity network switches, to extract such information in an accurate and scalable manner. We overcome the challenges posed by the purely passive and highly sampled nature of sFlow data, and describe a tool, sFinder, that automatically and continuously extracts such information. Our evaluation using sampled sFlow data from a real private cloud show that sFinder is accurate and efficient.
Hiroya Matsuba, Matti A. Hiltunen, Kaustubh R. Joshi, Richard D. Schlichting
IC2E4
2013 CloudTops: Latency Aware Placement of Virtual Desktops in Distributed Cloud Infrastructures
Nishio Yamada, Toshiyuki Moritsu, Kaustubh R. Joshi, Matti A. Hiltunen, Richard D. Schlichting
CLOSER5
2013 Content-Based Scheduling of Virtual Machines (VMs) in the Cloud
abstract
Organizations of all sizes are shifting their IT infrastructures to the cloud because of its cost efficiency and convenience. Because of the on-demand nature of the Infrastructure as a Service (IaaS) clouds, hundreds of thousands of virtual machines (VMs) may be deployed and terminated in a single large cloud data center each day. In this paper, we propose a content-based scheduling algorithm for the placement of VMs in data centers. We take advantage of the fact that it is possible to find identical disk blocks in different VM disk images with similar operating systems by scheduling VMs with high content similarity on the same hosts. That allows us to reduce the amount of data transferred when deploying a VM on a destination host. In this paper, we first present our study of content similarity between different VMs, based on a large set of VMs with different operating systems that represent the majority of popular operating systems in use today. Our analysis shows that content similarity between VMs with the same operating system and close version numbers (e.g., Ubuntu 12.04 vs. Ubuntu 11.10) can be as high as 60%. We also show that there is close to zero content similarity between VMs with different operating systems. Second, based on the above results, we designed a content-based scheduling algorithm that lowers the network traffic associated with transfer of VM disk images inside data centers. Our experimental results show that the amount of data transfer associated with deployment of VMs and transfer of virtual disk images can be lowered by more than 70%, resulting in significant savings in data center network utilization and congestion.
Sobir Bazarbayev, Matti A. Hiltunen, Kaustubh R. Joshi, William H. Sanders, Richard D. Schlichting
ICDCS5
2013 Self-Management of Adaptable Component-Based Applications
abstract
The problem of self-optimization and adaptation in the context of customizable systems is becoming increasingly important with the emergence of complex software systems and unpredictable execution environments. Here, a general framework for automatically deciding on when and how to adapt a system whenever it deviates from the desired behavior is presented. In this framework, the system's target behavior is described as a high-level policy that establishes goals for a set of performance indicators. The decision process is based on information provided independently for each component that describes the available adaptations, their impact on performance indicators, and any limitations or requirements. The technique consists of both offline and online phases. Offline, rules are generated specifying component adaptations that may help to achieve the established goals when a given change in the execution context occurs. Online, the corresponding rules are evaluated when a change occurs to choose which adaptations to perform. Experimental results using a prototype framework in the context of a web-based application demonstrate the effectiveness of this approach.
Liliana Rosa, Luís E. T. Rodrigues, Antónia Lopes, Matti A. Hiltunen, Richard D. Schlichting
IEEE Trans. Software Eng.5
2011 Probabilistic Model-Driven Recovery in Distributed Systems
abstract
Automatic system monitoring and recovery has the potential to provide effective, low-cost ways to improve dependability in distributed software systems. However, automating recovery is challenging in practice because accurate fault diagnosis is hampered by monitoring tools and techniques that often have low fault coverage, poor fault localization, detection delays, and false positives. In this paper, we present a holistic model-based approach that overcomes these challenges and enables automatic recovery in distributed systems. To do so, it uses theoretically sound techniques including Bayesian estimation and Markov decision theory to provide controllers that choose good, if not optimal, recovery actions according to a user-defined optimization criteria. By combining monitoring and recovery, the approach realizes benefits that could not have been obtained by using them in isolation. We experimentally validate our framework by fault injection on realistic e-commerce systems.
Kaustubh R. Joshi, Matti A. Hiltunen, William H. Sanders, Richard D. Schlichting
IEEE Trans. Dependable Secur. Comput.4
2011 Using link gradients to predict the impact of network latency on multitier applications
abstract
Managing geographically dispersed deployments of complex multitier applications involves dealing with the substantial effects of network latency. However, the effects of network latency on an application's end-to-end performance can be far from obvious, thus making it difficult to predict the true impact of infrastructure changes such as network upgrades or server relocation on the users of an application. In this paper, we propose a new metric to quantify this impact called the link gradient. We develop a novel noise-resistant, nonintrusive technique to measure the link gradients in running systems without requiring knowledge of the system structure by using a combination of run-time delay injection and spectral analysis. We evaluate the intrusiveness and accuracy of our approach using micro-benchmarks and a deployment of two benchmark multitier Web applications on PlanetLab. Using these results, we show that link gradients can be used to accurately predict the impact of network latency changes on the end-to-end responsiveness of individual application transactions, even in new application configurations and without requiring a dedicated test environment.
Kaustubh R. Joshi, Matti A. Hiltunen, Richard D. Schlichting, William H. Sanders
IEEE/ACM Trans. Netw.4
2010 Performance and availability aware regeneration for cloud based multitier applications
abstract
Virtual machine technology enables agile system deployments in which software components can be cheaply moved, replicated, and allocated hardware resources in a controlled fashion. This paper examines how these facilities can be used to provide enhanced solutions to the classic problem of ensuring high availability while maintaining performance. By regenerating software components to restore the redundancy of a system whenever failures occur, we achieve improved availability compared to a system with a fixed redundancy level. Moreover, by smartly controlling component placement and resource allocation using information about application control flow and performance predictions from queuing models, we ensure that the resulting performance degradation is minimized. We consider an environment in which a collection of multitier enterprise applications operates across multiple hosts, racks, clusters, and data centers to maximize failure independence. Simulation results show that our proposed approach provides better availability and significantly lower degradation of system response times compared to traditional approaches.
Gueyoung Jung, Kaustubh R. Joshi, Matti A. Hiltunen, Richard D. Schlichting, Calton Pu
DSN4
2010 Mistral: Dynamically Managing Power, Performance, and Adaptation Cost in Cloud Infrastructures
abstract
Server consolidation based on virtualization is an important technique for improving power efficiency and resource utilization in cloud infrastructures. However, to ensure satisfactory performance on shared resources under changing application workloads, dynamic management of the resource pool via online adaptation is critical. The inherent tradeoffs between power and performance as well as between the cost of an adaptation and its benefits make such management challenging. In this paper, we present Mistral, a holistic controller framework that optimizes power consumption, performance benefits, and the transient costs incurred by various adaptations and the controller itself to maximize overall utility. Mistral can handle multiple distributed applications and large-scale infrastructures through a multi-level adaptation hierarchy and scalable optimization algorithm. We show that our approach outstrips other strategies that address the tradeoff between only two of the objectives (power, performance, and transient costs).
Gueyoung Jung, Matti A. Hiltunen, Kaustubh R. Joshi, Richard D. Schlichting, Calton Pu
ICDCS4
2009 Link Gradients: Predicting the Impact of Network Latency on Multitier Applications
abstract
Geographically dispersed deployments of large and complex multitier enterprise applications introduce many challenges, including those involved in predicting the impact of network latency on end-to-end transaction response times. Here, a measurement-based approach to quantifying this impact using a new metric called the link gradient is presented. A non-intrusive technique for measuring the link gradient in running systems using delay injection and spectral analysis is presented, along with experimental results on PlanetLab that demonstrate that the link gradient can be used to predict end-to-end responsiveness, even in new and untested application configurations.
Kaustubh R. Joshi, Matti A. Hiltunen, William H. Sanders, Richard D. Schlichting
INFOCOM5
2009 A Cost-Sensitive Adaptation Engine for Server Consolidation of Multitier Applications
Gueyoung Jung, Kaustubh R. Joshi, Matti A. Hiltunen, Richard D. Schlichting, Calton Pu
Middleware4
2009 From Local Impact Functions to Global Adaptation of Service Compositions
Liliana Rosa, Luís E. T. Rodrigues, Antónia Lopes, Matti A. Hiltunen, Richard D. Schlichting
SSS5
2009 Cholla: A Framework for Composing and Coordinating Adaptations in Networked Systems
abstract
The ability of networked system software to adapt in a controlled manner to changes in the environment and requirements is crucial, but difficult to realize in complex systems with multiple interacting software layers/components. Typically, many components in a networked system implement adaptive behaviors and encapsulate their own adaptation logic (policies), making the whole system's adaptive behavior hard to analyze, coordinate, and test. This paper describes Cholla, a software architecture that separates the policy decisions of how and when adaptive components in networked systems react to their environment into separate centralized controllers that are constructed from composable rule sets. Centralizing policy decisions into controllers in Cholla facilitates the analysis, coordination, and testing of these policies, while the composable nature of these controllers allows them to be customized to changing user, application, and hardware demands. In addition to describing the architecture of Cholla, this paper also presents a Linux-based prototype implementation of this architecture that controls and coordinates adaptation policy decisions inside network protocols and multimedia applications. An experimental evaluation of this prototype demonstrates that Cholla's controller architecture enables component-based construction and customization of adaptation policies in networked systems, and that these policies can effectively control and coordinate adaptation.
Patrick G. Bridges, Matti A. Hiltunen, Richard D. Schlichting
IEEE Trans. Computers3
2007 A configurable and extensible transport protocol
Patrick G. Bridges, Gary T. Wong, Matti A. Hiltunen, Richard D. Schlichting, Matthew J. Barrick
IEEE/ACM Trans. Netw.4
2006 Automatic Recovery Using Bounded Partially Observable Markov Decision Processes
abstract
This paper provides a technique, based on partially observable Markov decision processes (POMDPs), for building automatic recovery controllers to guide distributed system recovery in a way that provides provable assurances on the quality of the generated recovery actions even when the diagnostic information may be imprecise. Lower bounds on the cost of recovery are introduced and proved, and it is shown how the characteristics of the recovery process can be used to ensure that the lower bounds converge even on undiscounted models. The bounds used in an appropriate online controller provide it with provable termination properties. Simulation-based experimental results on a realistic e-commerce system demonstrate that the proposed bounds can be improved iteratively, and the resulting controller convincingly outperforms a controller that uses heuristics instead of bounds
Kaustubh R. Joshi, William H. Sanders, Matti A. Hiltunen, Richard D. Schlichting
DSN4
2006 Replicating Nondeterministic Services on Grid Environments
abstract
Replication is a technique commonly used to increase the availability of services in distributed systems, including grid and Web services. While replication is relatively easy for services with fully deterministic behavior, grid and Web services often include nondeterministic operations. The traditional way to replicate such nondeterministic services is to use the primary-backup approach. While this is straightforward in synchronous systems with perfect failure detection, typical grid environments are not usually considered to be synchronous systems. This paper addresses the problem of replicating nondeterministic services by designing a protocol based on Paxos and proposing two performance optimizations suitable for replicated grid services. The first improves the performance in the case where some service operations do not change the service state, while the second optimizes grid service requests that use transactions. Evaluations done both on a local cluster and on Planet-Lab demonstrate that these optimizations significantly reduce the service response time and increase the throughput of replicated services
Xianan Zhang, Flavio Paiva Junqueira, Matti A. Hiltunen, Keith Marzullo, Richard D. Schlichting
HPDC5
2006 Peer-to-Peer Error Recovery for Hybrid Satellite-Terrestrial Networks
abstract
Media companies (and other organizations with large amounts of digital content) require prompt broadcast of extremely large files from a single source to a collection of geographically dispersed destinations. Due to the high cost of terrestrial networks of sufficient bandwidth, satellite networks are commonly used for such transfers. However, current satellite transfers rely on expensive error correction via forward error correction and whole-file retransmission. This paper presents a new, hybrid solution combining the advantages of satellite and terrestrial networks to provide cost-effective reliable file transfer. Specifically, we propose a new peer-to-peer scheme exploiting fast terrestrial networks and multiple receivers to recover from high loss rates (5% or more) in near real-time (latency < 400ms). This solution is efficient, robust under variable packet loss and connectivity, user tunable, scales well, and doubles bandwidth compared to existing approaches. The system has been validated via extensive simulations using a terrestrial network based on the AT&T common backbone core network
Eric Weigle, Matti A. Hiltunen, Richard D. Schlichting, Vinay A. Vaishampayan, Andrew A. Chien
Peer-to-Peer Computing3
2006 System Call Monitoring Using Authenticated System Calls
abstract
System call monitoring is a technique for detecting and controlling compromised applications by checking at runtime that each system call conforms to a policy that specifies the program's normal behavior. Here, we introduce a new approach to implementing system call monitoring based on authenticated system calls. An authenticated system call is a system call augmented with extra arguments that specify the policy for that call, and a cryptographic message authentication code that guarantees the integrity of the policy and the system call arguments. This extra information is used by the kernel to verify the system call. The version of the application in which regular system calls have been replaced by authenticated calls is generated automatically by an installer program that reads the application binary, uses static analysis to generate policies, and then rewrites the binary with the authenticated calls. This paper presents the approach, describes a prototype implementation based on Linux and the PLTO binary rewriting system, and gives experimental results suggesting that the approach is effective in protecting against compromised applications at modest cost
Mohan Rajagopalan, Matti A. Hiltunen, Trevor Jim, Richard D. Schlichting
IEEE Trans. Dependable Secur. Comput.4
2005 Applying grid technology to Web application systems
abstract
Grid middleware such as the Globus toolkit and grid standards such as the open grid services architecture (OGSA) are intended to be expressive enough for building distributed enterprise applications, yet their use in this context remains largely unexplored. Here, two specific issues related to the use of grid technology for Web application systems, an important class of enterprise applications is examined. The first is whether existing middleware can be used to move legacy Web applications to a grid platform, and if so, how; the second is whether such grid-enabling brings advantages in terms of additional functionality, enhanced performance, or simplified management. These issues are addressed by grid-enabling a sample J2EE Internet banking application and comparing its performance with the original version, and then designing a scalable software architecture that can use the dynamic resource allocation facilities of grids to handle fluctuating client demands. Initial performance studies suggest that the architecture can indeed scale in response to changes in client load, indicating that the application of grid technology in this context is potentially useful as a way to enhance the manageability of the overall system.
Ryoichi Ueda, Matti A. Hiltunen, Richard D. Schlichting
CCGRID3
2005 A high performance configurable transport protocol for grid computing
abstract
Grid computing infrastructures and applications are increasingly diverse with networks ranging from very high bandwidth optical networks to wireless networks and applications ranging from remote visualization to sensor data collection. For such environments, standard transport protocols such as TCP and UDP are not always sufficient or optimal given their fixed set of properties and their lack of flexibility. As an alternative, we present H-CTP, a high-performance configurable transport protocol that can be used to build customized transport services for a wide range of grid computing scenarios. H-CTP is based on an earlier configurable transport protocol called CTP, but with a collection of optimizations that meet the challenge of providing configurability while maintaining performance that meets the requirements of such demanding applications. This paper motivates the need for customizable transport in this area, presents the design of H-CTP, and gives results from performance studies that compare H-CTP with both CTP and TCP. These show, for example, that H-CTP is able to achieve throughput of over 900 Mbps across Gigabit links. Three diverse grid scenarios are used as example applications and for the H-CTP/TCP comparisons: remote visualization, fast message passing, and sensor grids.
Xinran (Ryan) Wu, Andrew A. Chien, Matti A. Hiltunen, Richard D. Schlichting
CCGRID4
2005 Authenticated System Calls
abstract
System call monitoring is a technique for detecting and controlling compromised applications by checking at runtime that each system call conforms to a policy that specifies the program's normal behavior. A new approach to system call monitoring based on authenticated system calls is introduced. An authenticated system call is a system call augmented with extra arguments that specify the policy for that call and a cryptographic message authentication code (MAC) that guarantees the integrity of the policy and the system call arguments. This extra information is used by the kernel to verify the system call. The version of the application in which regular system calls have been replaced by authenticated calls is generated automatically by an installer program that reads the application binary, uses static analysis to generate policies, and then rewrites the binary with the authenticated calls. This paper presents the approach, describes a prototype implementation based on Linux and the PLTO binary rewriting system, and gives experimental results suggesting that the approach is effective in protecting against compromised applications at modest cost.
Mohan Rajagopalan, Matti A. Hiltunen, Trevor Jim, Richard D. Schlichting
DSN4
2005 The impact of Web service integration on grid performance
abstract
The past few years have seen an increasingly tight link between grid computing and Web services, with the latest standards defining a grid computing architecture as a set of services built using Web services standards and protocols. However, the reputation of these technologies (SOAP, XML, WSDL, HTTP) is that they are heavyweight and slow, something that is potentially a concern given the current and anticipated application mix for high performance grid architectures. This paper reports the results of a performance evaluation carried out on Globus 3.9.4, a reference implementation of the new GGF standards that are built on the Web services resource framework (WSRF). The evaluation approach combines low interference measurement (black box) techniques with more sophisticated sampling-based profiling (gray box) techniques. The results indicate possible opportunities for optimization, as well as provide useful input for the designers of grid services.
François Taïani, Matti A. Hiltunen, Richard D. Schlichting
HPDC3
2005 Automatic Model-Driven Recovery in Distributed Systems
abstract
Automatic system monitoring and recovery has the potential to provide a low-cost solution for high availability. However, automating recovery is difficult in practice because of the challenge of accurate fault diagnosis in the presence of low coverage, poor localization ability, and false positives that are inherent in many widely used monitoring techniques. In this paper, we present a holistic model-based approach that overcomes these challenges and enables automatic recovery in distributed systems. To do so, it uses theoretically sound techniques including Bayesian estimation and Markov decision theory to provide controllers that choose good, if not optimal, recovery actions according to a user-defined optimization criteria. By combining monitoring and recovery, the approach realizes benefits that could not have been obtained by using them in isolation. In this paper, we present two recovery algorithms with complementary properties and trade-offs, and validate our algorithms (through simulation) by fault injection on a realistic e-commerce system.
Kaustubh R. Joshi, William H. Sanders, Matti A. Hiltunen, Richard D. Schlichting
SRDS4
2004 Fault-tolerant grid services using primary-backup: feasibility and performance
abstract
The combination of grid technology and Web services has produced an attractive platform for deploying distributed applications: grid services, as represented by the Open Grid Services Infrastructure (OGSI) and its Globus toolkit implementation. As the use of grid services grows in popularity, tolerating failures becomes increasingly important. This work addresses the problem of building a reliable and highly-available grid service by replicating the service on two or more hosts using the primary-backup approach. The primary goal is to evaluate the ease and efficiency with which this can be done, by first designing a primary-backup protocol using OGSI, and then implementing it using Globus to evaluate performance implications and tradeoffs. We compared three implementations: one that makes heavy use of the notification interface defined in OGSI, one that uses standard grid service requests instead of notification, and one that uses low-level socket primitives. The overall conclusion is that, while the performance penalty of using Globus primitives - especially notification - for replica coordination can be significant, the OGSI model is suitable for building highly-available services and it makes the task of engineering such services easier.
Xianan Zhang, Dmitrii Zagorodnov, Matti A. Hiltunen, Keith Marzullo, Richard D. Schlichting
CLUSTER5
2004 Customizing Dependability Attributes for Mobile Service Platforms
abstract
Mobile service platforms are used to facilitate access to enterprise services such as email, product inventory, or design drawing databases by a wide range of mobile devices using a variety of access protocols. This paper presents a quality of service (QoS) architecture that allows flexible combinations of dependability attributes such as reliability, timeliness, and security to be enforced on a per service request basis. In addition to components that implement the underlying dependability techniques, the architecture includes policy components that evaluate a request's requirements and dynamically determine an appropriate execution strategy. The architecture has been integrated into an experimental version of iMobile, a mobile service platform being developed at AT&T. This paper describes the design and implementation of the architecture, and gives initial experimental results for the iMobile prototype.
Matti A. Hiltunen, Richard D. Schlichting
DSN3
2003 Cassyopia: Compiler Assisted System Optimization
Mohan Rajagopalan, Saumya K. Debray, Matti A. Hiltunen, Richard D. Schlichting
HotOS4
2003 QoS customization in distributed object systems
abstract
Abstract Applications built on networked collections of computers are increasingly using distributed object platforms such as CORBA,Java Remote Method Invocation (RMI), and DCOM to standardize object interactions. With this increased use comes the increased need for enhanced quality of service (QoS) attributes related to fault tolerance, security, and timeliness. This paper describes an architecture called CQoS (configurable QoS) for implementing such enhancements in a transparent, highly customizable, and portable manner. CQoS consists of two parts: application‐ and platform‐dependent interceptors and generic QoS components. The generic QoS components are implemented using Cactus, a system for building highly configurable protocols and services in distributed systems. The CQoS architecture and the interfaces between the different components are described, together with implementations of QoS attributes using Cactus and interceptors for CORBA and Java RMI. Experimental results are given for a test application executing on a Linux cluster using Cactus/J, the Java implementation of Cactus. Compared with other approaches, CQoS emphasizes portability across different distributed object platforms, while the use of Cactus allows custom combinations of fault‐tolerance, security, and timeliness attributes to be realized on a per‐object basis in a straightforward way. Copyright © 2003 John Wiley & Sons, Ltd.
Matti A. Hiltunen, Mohan Rajagopalan, Richard D. Schlichting
Softw. Pract. Exp.4
2003 Building Survivable Services Using Redundancy and Adaptation
abstract
Survivable systems-that is, systems that can continue to provide service despite failures, intrusions, and other threats-are increasingly needed in a wide variety of civilian and military application areas. As a step toward realizing such systems, this paper advocates the use of redundancy and adaptation to build survivable services that can provide core functionality for implementing survivability in networked environments. An approach to building such services using these techniques is described and a concrete example involving a survivable communication service is given. This service is based on Cactus, a system for building highly configurable network protocols that offers the flexibility needed to easily add redundant and adaptive components. Initial performance results for a prototype implementation of the communication service built using Cactus/C2.1 running on Linux are also given.
Matti A. Hiltunen, Richard D. Schlichting, Carlos A. Ugarte
IEEE Trans. Computers2
2002 Dependability and the Grid: Issues and Challenges
Richard D. Schlichting, Andrew A. Chien, Carl Kesselman, Keith Marzullo, James S. Plank, Santosh K. Shrivastava
DSN1
2002 Profile-Directed Optimization of Event-Based Programs
abstract
Events are used as a fundamental abstraction in programs ranging from graphical user interfaces (GUIs) to systems for building customized network protocols. While providing a flexible structuring and execution paradigm, events have the potentially serious drawback of extra execution overhead due to the indirection between modules that raise events and those that handle them. This paper describes an approach to addressing this issue using static optimization techniques. This approach, which exploits the underlying predictability often exhibited by event-based programs, is based on first profiling the program to identify commonly occurring event sequences. A variety of techniques that use the resulting profile information are then applied to the program to reduce the overheads associated with such mechanisms as indirect function calls and argument marshaling. In addition to describing the overall approach, experimental results are given that demonstrate the effectiveness of the techniques. These results are from event-based programs written for X Windows, a system for building GUIs, and Cactus, a system for constructing highly configurable distributed services and network protocols.
Mohan Rajagopalan, Saumya K. Debray, Matti A. Hiltunen, Richard D. Schlichting
PLDI4
2001 Enhancing Survivability of Security Services Using Redundanc
abstract
Traditional distributed system services that provide guarantees related to confidentiality, integrity, and authenticity enhance security, but are not survivable since each attribute is implemented by a single method. This paper advocates the use of redundancy to increase survivability by using multiple methods to implement each security attribute and doing so in ways that can vary unpredictably. As a concrete example, the design and implementation of a highly configurable secure communication service called SecComm are presented. The service has been implemented using Cactus, a system for building highly configurable protocols and services for distributed systems. Initial performance results for a prototype implementation on Linux are also given.
Matti A. Hiltunen, Richard D. Schlichting, Carlos A. Ugarte
DSN2
2001 Supporting Coordinated Adaption in Networked Systems
abstract
Summary form only given. Our position is that the true potential of adaptation can only be realized if support is provided for more general solutions, including adaptations that span multiple hosts and multiple system components, and algorithmic adaptations that involve changing the underlying algorithms used by the system at runtime. Such a general solution must, however, address the difficult issues related to these types of adaptations. Adaptation by multiple related components, for example, must be coordinated so that these adaptations work together to implement consistent adaptation policies. Likewise, large-scale algorithmic adaptations need to be coordinated using graceful adaptation strategies in which as much normal processing as possible continues during the changeover. Here, we summarize our approach to addressing these problems in Cactus, a system for constructing highly-configurable distributed services and protocols.
Patrick G. Bridges, Wen-Ke Chen, Matti A. Hiltunen, Richard D. Schlichting
HotOS4
2001 Constructing Adaptive Software in Distributed Systems
abstract
Adaptive software that can react to changes in the execution environment or user requirements by switching algorithms at run time is powerful yet difficult to implement, especially in distributed systems. This paper describes a software architecture for constructing such adaptive software and a graceful adaptive protocol that allows adaptations to be made in a coordinated manner across hosts transparently to the application. A realization of the architecture based on Cactus, a system for constructing highly configurable distributed services and protocols, is also presented. The approach is illustrated by outlining examples of adaptive components from a group communication service.
Wen-Ke Chen, Matti A. Hiltunen, Richard D. Schlichting
ICDCS3
2001 A Configurable and Extensible Transport Protocol
abstract
The ability to configure transport protocols from collections of smaller software modules allows the characteristics of the protocol to be customized for a specific application or network technology. This paper describes an approach to building such customized protocols using Cactus, a system in which micro-protocols implementing individual attributes of transport can be combined into a composite protocol that realizes the desired overall functionality. In contrast with similar systems, Cactus supports non-hierarchical module composition and event-driven execution, both of which increase flexibility and allow finer-grain modules implementing orthogonal properties. To illustrate this approach, the design and implementation of a configurable transport protocol called CTP is presented. CTP allows customization of a number of properties including reliable transmission, congestion detection and control, jitter control, and message ordering. This suite of micro-protocols has been implemented using Cactus/C 2.0 on Red Hat Linux 6.2, with initial experimental results indicating that the ability to target the guarantees more precisely to the needs of applications can in fact result in better performance.
Gary T. Wong, Matti A. Hiltunen, Richard D. Schlichting
INFOCOM3
2001 Providing QoS Customization in Distributed Object Systems
Matti A. Hiltunen, Mohan Rajagopalan, Richard D. Schlichting
Middleware4
2001 Supporting configurability and real time in RTD channels
abstract
Abstract Network communication services that can be configured to customize functionality provide significant advantages over monolithic versions, but can be difficult to construct if the services must also provide real‐time guarantees on message delivery. This paper describes how practical issues related to the combination of configurability and real time have been addressed in real‐time dependable (RTD) channels, a communication abstraction that has been prototyped using the Cactus system. The architecture and implementation of RTD channels are described, including facilities for translating an application's quality of service requirements into configuration‐specific resource requirements, and an admission control architecture that uses system‐wide information to determine whether sufficient resources exist to create new channels. In addition, the results of experiments that demonstrate that the desired channel properties—including real‐time guarantees—are provided for various configurations are presented. Finally, practical problems and lessons learned from implementing RTD channels on the general‐purpose MK 7.3 Mach operating system are discussed. Copyright © 2001 John Wiley & Sons, Ltd.
Rajsekhar Das, Matti A. Hiltunen, Richard D. Schlichting
Softw. Pract. Exp.3
1999 Configurable Communication Protocols for Mobile Computing
abstract
Mobile computing systems present challenges for message routing, support for disconnected operation, and providing quality of service guarantees related to latency, bandwidth and jitter. While multiple approaches have been developed, existing systems typically support only a small set of solutions in each area. This paper describes the design of a collection of communication protocols that supports multiple solutions within a single integrated framework based on the Coyote system. These protocols are constructed by subdividing the required functionality into orthogonal functions and then implementing variants of these functions as fine-grain software modules called micro-protocols. A custom service is then realized by choosing micro-protocols based on functionality and configuring them together with a standard runtime system that implements an event-oriented execution model.
Nina T. Bhatti, Richard D. Schlichting
ISADS2
1999 Real-Time Dependable Channels: Customizing QoS Attributes for Distributed Systems
abstract
Communication services that provide enhanced Quality of Service (QoS) guarantees related to dependability and real time are important for many applications in distributed systems. This paper presents real-time dependable (RTD) channels, a communication-oriented abstraction that can be configured to meet the QoS requirements of a variety of distributed applications. This customization ability is based on using CactusRT, a system that supports the construction of middleware services out of software modules called micro-protocols. Each micro-protocol implements a different semantic property or property variant and interacts with other micro-protocols using an event-driven model supported by the CactusRT runtime system. In addition to RTD channels CactusRT and its implementation are described. This prototype executes on a cluster of Pentium PCs running the OpenGroup/RI MK 7.3 Mach real-time operating system and CORDS, a system for building network protocols based on the x-kernel.
Matti A. Hiltunen, Richard D. Schlichting, Xiaonan Han, Melvin M. Cardozo, Rajsekhar Das
IEEE Trans. Parallel Distributed Syst.2
1998 Agent Middleware for Heterogeneous Scientific Simulations
abstract
The current technology of parallel and distributed systems allows users to exploit a variety of resources across networks. However, the support provided is often insufficient for computational scientists to simulate complicated real-world scenarios in which different kinds of scientific applications need to be combined to perform high fidelity simulations. As a result, users waste a large amount of time and effort developing custom techniques for performing semantic-level communication between heterogeneous scientific simulations. This paper describes a new middleware system that provides high-level transparency in the form of agents that automatically transfer and transform data between simulations that use different mathematical and physical modeling approaches. Based on a specification that correlates different discrete points in finite difference method (FDM), finite element method (FEM) or particle simulations, the agents provide a variety of techniques for semantically transforming the values associated with correlated points and automatically determine to which processes the values must be transferred. To facilitate use and minimize impact on user programs, the agent system includes three types of library calls that manage task identification, register different kinds of discrete points and construct a correlation table according to the specification, and transfer messages that incorporate extraction and transformation of the values on the correlated points. Another library specially optimized for parallel simulations that use a SPMD (Single Program Multiple Data stream) structure is also offered to control communication through the agents. A prototype system has been developed on the Hitachi SR2201 parallel machine as well as workstation clusters, and applied to several example applications. These include an advanced device simulation that combines quantum transport simulation with electric potential simulation, and a simulation of thermal flow resulting from high-frequency device operation that hybridizes molecular dynamics simulation with macroscopic continuum simulation. These combinations can be efficiently realized using the small number of library calls within the agent system together with additional routines that change the data formats of discrete points. The time overhead of the agent calculations is shown experimentally to agree closely with the theoretically-predicted values modeled as a function of the number of discrete points and domain decomposition in parallel simulations. This value becomes insignificant compared with that of the simulation processes for heterogeneous large-scale simulations.
Shirun Ho, Satoshi Itoh, Sigeo Ihara, Richard D. Schlichting
SC4
1998 A Configurable Membership Service
abstract
A membership service is used to maintain information about which sites are functioning in a distributed system at any given time. Many such services have been defined, with each implementing a unique combination of properties that simplify the construction of higher levels of the system. Despite this wealth of possibilities, however, any given service typically realizes only one set of properties, which makes it difficult to tailor the service provided to the specific needs of the application. Here, a configurable membership service that addresses this problem is described. This service is based on decomposing membership into its constituent abstract properties and then implementing these properties as separate software modules called micro-protocols that can be configured together to produce a customized membership service. A prototype C++ implementation of the membership service for a simulated distributed environment is also described.
Matti A. Hiltunen, Richard D. Schlichting
IEEE Trans. Computers2
1998 Coyote: A System for Constructing Fine-Grain Configurable Communication Services
abstract
Communication-oriented abstractions such as atomic multicast, group RPC, and protocols for location-independent mobile computing can simplify the development of complex applications built on distributed systems. This article describes Coyote, a system that supports the construction of highly modular and configurable versions of such abstractions. Coyote extends the notion of protocol objects and hierarchical composition found in existing systems with support for finer-grain microprotocol objects and a nonhierarchical composition scheme for use within a single layer of a protocol stack. A customized service is constructed by selecting microprotocols based on their semantic guarantees and configuring them together with a standard runtime system to form a composite protocol implementing the service. This composite protocol is then composed hierarchically with other protocols to form a complete network subsystem. The overall approach is described and illustrated with examples of services that have been constructed using Coyote, including atomic multicast, group RPC, membership, and mobile computing protocols. A prototype implementation based on extending x -kernel version 3.2 running on Mach 3.0 with support for microprotocols is also presented, together with performance results from a suite of microprotocols from which over 60 variants of group RPC can be constructed.
Nina T. Bhatti, Matti A. Hiltunen, Richard D. Schlichting, Wanda Chiu
ACM Trans. Comput. Syst.3
1997 Access Control in Wide-Area Networks
abstract
Access control involves maintaining information about which users can access system resources and ensuring that access is restricted to authorized users. In wide-area networks such as the Internet, implementing access control is difficult, since resources may be replicated, the task of managing access rights may be distributed among multiple sites, and events such as host failures, host recoveries, and network partitions must be dealt with. This paper explores the problem of access control in such an environment, and in particular the inherent tradeoff between security, availability, and performance. Techniques for dealing with access control in the presence of partitions are presented and used as the basis for an algorithm that allows application control over these tradeoffs.
Matti A. Hiltunen, Richard D. Schlichting
ICDCS2
1997 Interconnecting Interactive and Remote Parallel Components Using Schooner
abstract
In scientific applications where parallel computation is used to model physical processes, enhancing the user's ability to monitor and control programs executing on remote parallel machines can improve the overall experimental process. Here, a simple approach to providing such facilities is presented in which a scientific visualization system and a remote parallel computation are incorporated into a single metacomputation using the Schooner software interconnection system. This scheme gives the user the ability to, for example, select dynamically the parallel platform to be used, monitor the progress of the computation, and modify parameters. To illustrate this approach, a series of experiments is described in which the AVS scientific visualization system and a parallel neural net code executing on either an Intel Paragon, Sequent Symmetry, or PVM-based Sun Sparcstation cluster are interconnected. These experiments demonstrate not just the feasibility of structuring parallel computations as part of a larger metacomputation using Schooner, but also that these benefits can be achieved with an adjustable cost that can be tuned to the specific needs of the application. © 1997 John Wiley & Sons, Ltd.
Zhanliang Chen, Richard D. Schlichting
Softw. Pract. Exp.2
1995 Constructing a Configurable Group RPC Service
abstract
Current Remote Procedure Call (RPC) services implement a variety of semantics, with many of the differences related to how communication and server failures are handled. The list increases even more when considering group RPC, a variant of RPC often used for fault-tolerance where an invocation is sent to a group of servers rather than one. This paper presents an approach to constructing group RPC in which a single configurable system is used to build different variants of the service. The approach is based on implementing each property as a separate software module called a micro-protocol, and then configuring the micro-protocols needed to implement the desired service together using a software framework based on the x-kernel. The properties of point-to-point and group RPC are identified and classified, and the general execution model described. An example consisting of a modular implementation of a group RPC service is given to illustrate the approach. Dependency issues that restrict configurability are also addressed.
Matti A. Hiltunen, Richard D. Schlichting
ICDCS2
1995 Properties of membership services
abstract
A membership service is used in a distributed system to maintain information about which sites are functioning and which have failed at any given time. Such services have proven to be fundamental for constructing distributed applications, with many example services and algorithms defined in the literature. Despite these efforts, however, little has been done on examining the abstract properties important to membership independent of a given service. Here, these properties are identified and characterized. Message ordering graphs are used to specify the effect of each property on the message flow as seen by the application, and dependency graphs are used to characterize the relationship between properties. These graphs help differentiate existing services, as well as facilitate the design of new services in which only those properties actually required by an application are included.>
Matti A. Hiltunen, Richard D. Schlichting
ISADS2
1995 A System for Constructing Configurable High-Level Protocols
abstract
New distributed computing applications are driving the development of more specialized protocols, as well as demanding greater control over the communication substrate. Here, a network subsystem that supports modular, fine-grained construction of high-level protocols such as atomic multicast and group RPC is described. The approach is based on extending the standard hierarchical model of the x-kernel with composite protocols in which micro-protocol objects are composed within a standard runtime framework. Each micro-protocol realizes a separate semantic property, leading to a highly modular and configurable implementation. In contrast with similar systems, this approach provides finer granularity and more flexible inter-object communication. The design and prototype implementation runing on Mach are described. Performance results are also given for a micro-protocol suite implementing variants of group RPC.
Nina T. Bhatti, Richard D. Schlichting
SIGCOMM2
1995 Programming Language Support for Writing Fault-Tolerant Distributed Software
abstract
Good programming language support can simplify the task of writing fault-tolerant distributed software. Here, an approach to providing such support is described in which a general high-level distributed programming language is augmented with mechanisms for fault tolerance. Unlike approaches based on sequential languages or specialized languages oriented towards a given fault-tolerance technique, this approach gives the programmer a high level of abstraction, while still maintaining flexibility and execution efficiency. The paper first describes a programming model that captures the important characteristics that should be supported by a programming language of this type. It then presents a realization of this approach in the form of FT-SR, a programming language that augments the SR distributed programming language with features for replication, recovery, and failure notification. In addition to outlining these extensions, an example program consisting of a data manager and its associated stable storage is given. Finally, an implementation of the language that uses the x-kernel and runs standalone on a network of Sun workstations is discussed. The overall structure and several of the algorithms used in the runtime are interesting in their own right.>
Richard D. Schlichting, Vicraj T. Thomas
IEEE Trans. Computers1
1995 Supporting Fault-Tolerant Parallel Programming in Linda
abstract
Linda is a language for programming parallel applications whose most notable feature is a distributed shared memory called tuple space. While suitable for a wide variety of programs, one shortcoming of the language as commonly defined and implemented is a lack of support for writing programs that can tolerate failures in the underlying computing platform. This paper describes FT-Linda, a version of Linda that addresses this problem by providing two major enhancements that facilitate the writing of fault-tolerant applications: stable tuple spaces and atomic execution of tuple space operations. The former is a type of stable storage in which tuple values are guaranteed to persist across failures, while the latter allows collections of tuple operations to be executed in an all-or-nothing fashion despite failures and concurrency. The design of these enhancements is presented in detail and illustrated by examples drawn from both the Linda and fault-tolerance domains. An implementation of FT-Linda for a network of workstations is also described. The design is based on replicating the contents of stable tuple spaces to provide failure resilience and then updating the copies using atomic multicast. This strategy allows an efficient implementation in which only a single multicast message is needed for each atomic collection of tuple space operations.>
David E. Bakken, Richard D. Schlichting
IEEE Trans. Parallel Distributed Syst.2
1994 Using Schooner to support distribution and heterogeneity in the Numerical Propulsion System Simulation project
abstract
Abstract The Numerical Propulsion System Simulation (NPSS) project has been initiated by NASA to explore the use of computer simulation in the development of new aircraft propulsion technology. With this approach, each engine component is modeled by a separate computational code, with a simulation executive connecting the codes and modeling component interactions. Since each code potentially executes on a different machine in a network, a simulation run is a heterogeneous distributed program in which diverse software and hardware elements are incorporated into a single computation. In the paper a prototype simulation executive that supports this type of programming is described. The two components of this executive are the AVS scientific visualization system and the Schooner heterogeneous remote procedure call (RPC) facility. In addition, the match between Schooner's capabilities and the needs of NPSS is evaluated based on our experience with a collection of test codes. The basic conclusion is that, while Schooner fared well in general, it exhibited certain deficiencies that dictated changes in its design and implementation. This discussion not only documents the evolution of Schooner, but also serves to highlight the practical problems that can be encountered when dealing with heterogeneity and distribution in such applications.
Patrick T. Homer, Richard D. Schlichting
Concurr. Pract. Exp.2
1994 A Software Platform for Constructing Scientific Applications from Heterogeneous Resources
Patrick T. Homer, Richard D. Schlichting
J. Parallel Distributed Comput.2
1993 Supporting Heterogeneity and Distribution in the Numerical Propulsion System
abstract
The numerical propulsion system simulation (NPSS) project has been initiated by NASA to expand the use of computer simulation in the development of new aircraft engines. A major goal is to study interactions between engine components using multiple computational codes, each modeling a separate component and potentially executing on a different machine in a network. Thus, a simulation run is a heterogeneous distributed program controlled by a simulation executive. This paper describes a prototype executive composed of the AVS visualization system and the Schooner heterogeneous remote procedure call (RPC) facility. In addition, the match between Schooner's capabilities and the needs of NPSS is evaluated based on the authors experience with a collection of test codes. This discussion not only documents the evolution of Schooner, but also serves to highlight the practical problems that can be encountered when dealing with heterogeneity and distribution in such applications.>
Patrick T. Homer, Richard D. Schlichting
HPDC2
1993 Modularity in the design and implementation of Consul
abstract
Consul is a system designed to support the use of fault-tolerance techniques in the construction of fault-tolerant distributed systems structured according to the state machine approach. The way in which modularity has been used in the design and implementation of Consul is described. The approach makes it easy to configure a system customized to the needs of a specific application and facilitates the development of the individual components that make up Consul.>
Shivakant Mishra, Larry L. Peterson, Richard D. Schlichting
ISADS3
1993 An Approach to Constructing Modular Fault-Tolerant Protocols
abstract
Modularization is a well-known technique for simplifying complex software. An approach to modularizing fault-tolerant protocols such as reliable multicast and membership is described. The approach is based on implementing a protocol's individual properties as separate microprotocols and then combining selected microprotocols using an event-driven software framework. A system is constructed by composing these frameworks with traditional network protocols using standard hierarchical techniques. In addition to simplifying the software, this model helps clarify the dependencies among properties of fault-tolerant protocols and makes it possible to construct systems that are customized to the specifics of the application or underlying architecture. An example involving reliable group multicast is given, together with a description of a prototype implementation using the SR concurrent programming language.>
Matti A. Hiltunen, Richard D. Schlichting
SRDS2
1993 Experience with Modularity in Consul
abstract
Abstract The use of modularity in the design and implementation of complex software simplifies the development process, as well as facilitating the construction of customized configurations. This paper describes our experience using modularity in Consul, a communication substrate used for constructing fault‐tolerant distributed programs. First, Consul is presented as a case study of how modularity is feasible in both the design and the implementation of such systems. Secondly, general lessons about modularity in fault‐tolerant systems based on our experience with Consul are given. Issues that are addressed include deciding how the system is divided into various modules, dealing with problems that result when protocols are combined, and ensuring that the underlying object infrastructure provides adequate support. The key observation is that the modularization process is most affected by dependencies between modules, both direct dependencies caused by one module explicitly using another's operation and indirect dependencies where one module is affected by another without direct interaction. Although our observations are based on designing and implementing Consul, the lessons are applicable to any fault‐tolerant distributed system.
Shivakant Mishra, Larry L. Peterson, Richard D. Schlichting
Softw. Pract. Exp.3
1992 A Mult-Paradigm Programming Language for Constructing Fault-Tolerant, Distributed Systems
abstract
The design of FT-SR, a programming language based on SR and oriented toward constructing fault-tolerant distributed systems, is presented. The language, which is based on the existing SR language, is unique in that it has been designed to support equally well any of the programming paradigms that have been developed for this type of system, including the object/action model, the restartable action paradigm, and the state machine approach. To do this, the language is designed to support the implementation of systems modeled as collections of fail-stop atomic objects. Such objects execute operations as atomic actions except when a failure or series of failures cause underlying implementation assumptions to be violated; in this case, notification is provided. An example program consisting of a data manager and its associated stable storage is given.>
Richard D. Schlichting, Vicraj T. Thomas
SRDS1
1990 Integrating Emerald into a System for Mixed-Language Programming
Roger Hayes, Norman C. Hutchinson, Richard D. Schlichting
Comput. Lang.3
1989 Implementing Fault-Tolerant Replicated Ojects Using Psync
abstract
Psync is an IPC protocol that explicitly preserves the partial order of messages exchanged among a set of processes. A description is given of how Psync can be used to implement replicated objects in the presence of network and host failures. Unlike conventional algorithms that depend on an underlying mechanism that totally orders messages for implementing replicated objects, the authors' approach exploits the partial order provided by Psync to achieve additional concurrency.>
Shivakant Mishra, Larry L. Peterson, Richard D. Schlichting
SRDS3
1989 Preserving and Using Context Information in Interprocess Communication
abstract
When processes in a network communicate, the messages they exchange define a partial ordering of externally visible events. While the significance of this partial order in distributed computing is well understood, it has not been made an explicit part of the communication substrate upon which distributed programs are implemented. This paper describes a new interprocess communication mechanism, called Psync , that explicitly encodes this partial ordering with each message. The paper shows how Psync can be efficiently implemented on an unreliable communications network, and it demonstrates how conversations serve as an elegant foundation for ordering messages exchanged in a distributed computation and for recovering from processor failures.
Larry L. Peterson, Nick C. Buchholz, Richard D. Schlichting
ACM Trans. Comput. Syst.3
1988 A Simple System for Constructing Distributed, Mixed-language Programs
abstract
Abstract The Mixed‐Language Programming (MLP) System is a simple system that facilitates construction of sequential programs in which procedures can be written in different programming languages to exploit heterogeneity in language functionality. In addition, MLP provides a simple remote procedure call (RPC) facility that allows heterogeneity in machine functionality to be exploited. To minimize implementation cost, the system does not solve all of the problems related to mixed‐language programming; rather, MLP is designed to handle common situations well. Among the unique aspects of MLP are its advanced facilities, which allow complex situations to be handled with user intervention; for example, these facilities allow arguments of a type not defined by a language to be used by procedures written in that language. This paper overviews the use of MLP and describes its implementation. In addition, two programs that have been written using the MLP system—a small database system and a collection of plot routines—are discussed. The system executes on a collection of Vaxes and Suns running Berkeley UNIX. Currently supported languages are C, Pascal and Icon.
Roger Hayes, Steve W. Manweiler, Richard D. Schlichting
Softw. Pract. Exp.3
1987 A File Replication Facility for Berkeley Unix
abstract
Abstract This paper describes two mechanisms – reproduction sets and metafiles – that provide low‐cost, semi‐automatic file replication and location transparency facilities for an interconnected collection of machines running Berkeley Unix. A reproduction set is a collection of files that the system attempts to keep identical; this is done on a ‘best effort’ basis, with the system relying on the user to handle unusual situations. A metafile is a special file that contains symbolic pathnames of other files, each of which may be on any machine in the network; opening a metafile results in opening an available constituent file. Examples are given to illustrate the use of these mechanisms. Their implementation and performance are also described.
Titus D. M. Purdin, Richard D. Schlichting, Gregory R. Andrews
Softw. Pract. Exp.2
1987 The Design of the Saguaro Distributed Operating System
abstract
This paper describes the design of the Saguaro operating system for computers connected by a local-area network. Systems constructed on such an architecture have the potential advantages of concurrency and robustness. In Saguaro, these advantages are made available to the user through several mechanisms. One is channels, an interprocess communication and synchronization facility that allows the input and output of different commands to be connected to form general graphs of communicating processes. Two additional mechanisms are provided to support semitransparent file replication and access: reproduction sets and metafiles. A reproduction set is a collection of files that the system attempts to keep identical on a "best effort" basis. A metafile is a special file that contains symbolic pathnames of other files; when a metafile is opened, the system selects an available constituent file and opens it instead. The advantages of concurrency and robustness are also realized at the system level by the use of pools of server processes and decentralized allocation protocols. Saguaro also makes extensive use of a type system to describe user data such as files and to specify the types of arguments to commands and procedures. This enables the system to assist in type checking and leads to a user interface in which command-specific templates are available to facilitate command invocation.
Gregory R. Andrews, Richard D. Schlichting, Roger Hayes, Titus D. M. Purdin
IEEE Trans. Software Eng.2
1987 Facilitating Mixed Language Programming in Distributed Systems
abstract
An approach for facilitating mixed language programming in distributed systems is presented. It is based on adding a generic remote procedure call facility to each language, and the use of a type system to describe procedural interfaces, as well as data to be transferred between procedures. This type scheme also specifies a machine-independent representation for all data. By defining standard mappings for each programming language, the data conversions required for cross-langauge calls may be performed, automatically in most cases, by active agents that provide the interface between program components written in different languages. When necessary, explicit control of the conversation is possible. A prototype implementation of a system based on this approach has been constructed on a collection of machines running Berkeley UNIX®.
Roger Hayes, Richard D. Schlichting
IEEE Trans. Software Eng.2
1985 A Technique for Estimating Performance of Fault-Tolerant Programs
abstract
A technique is presented for estimating the performance of programs written for execution on fail-stop processors. It is based on modeling the program as a discrete-time Markov chain and then using z-transforms to derive a probability distribution for time to completion.
Richard D. Schlichting
IEEE Trans. Software Eng.1
1984 Fault-Tolerant Broadcasts
Fred B. Schneider, David Gries, Richard D. Schlichting
Sci. Comput. Program.3
1984 Using Message Passing for Distributed Programming: Proof Rules, Disciplines
abstract
Inference rules are derived for proving partial correctness of concurrent programs that use message passing.These rules extend the notion of a satisfaction proof, first proposed for proving correctness of programs that use synchronous message-passing, to asynchronous message-passing, rendezvous, and remote procedures.Two types of asynchronous message-passing are considered: unreliable datagrams and reliable virtual circuits.The proof rules show how interference can arise and be controlled.
Richard D. Schlichting, Fred B. Schneider
ACM Trans. Program. Lang. Syst.1
1983 Fail-Stop Processors: An Approach to Designing Fault-Tolerant Computing Systems
abstract
Fault-
Richard D. Schlichting, Fred B. Schneider
ACM Trans. Comput. Syst.1
1982 Understanding and Using Asynchronous Message Passing (Preliminary Version)
abstract
Message passing provides a way for concurrently executing processes to communicate and synchronize. In this paper, we develop proof rules for asynchronous message-passing primitives (i.e. “send no-wait”). Two benefits accrue from this. The obvious one is that partial correctness proofs can be written for concurrent programs that use such primitives. This allows programs to be understood as predicate transformers, instead of by contemplating all possible execution interleavings. The second benefit is that the proof rules and their derivation shed light on how interference arises when message-passing operations are used and on how this interference can be controlled. This provides insight into programming techniques to eliminate interference in programs that involve asynchronous activity. Three safe uses of asynchronous message passing are described here: the transfer of values, the transfer of monotonic predicates, and the use of acknowledgments.
Richard D. Schlichting, Fred B. Schneider
PODC1