2,603 research outputs found
Distributed Execution Indexing
This work-in-progress report presents both the design and partial evaluation
of distributed execution indexing, a technique for microservice applications
that precisely identifies dynamic instances of inter-service remote procedure
calls (RPCs). Such an indexing scheme is critical for request-level fault
injection techniques, which aim to automatically find failure-handling bugs in
microservice applications.Distributed execution indexes enable granular
specification of request-level faults, while also establishing a correspondence
between inter-service RPCs across multiple executions, as is required to
perform a systematic search of the fault space.In this paper, we formally
define the general concept of a distributed execution index, which can be
parameterized on different ways of identifying an RPC in a single service. We
identify an instantiation that maintains precision in the presence of a variety
of program structure complexities such as loops, function indirection, and
concurrency with scheduling nondeterminism. We demonstrate that this particular
instantiation addresses gaps in the state-of-the-art in request-level fault
injection and show that they are all special cases of distributed execution
indexing. We discuss the implementation challenges and provide an
implementation of distributed execution indexing as an extension of
\Filibuster{}, a resilience testing tool for microservice applications for the
Java programming language, which supports fault injection for gRPC and HTTP
Design of deadlock detection and prevention algorithms in distributed systems
A distributed system consists of a collection of processes which communicate with each other by exchanging messages to achieve a common goal. One of the key problems in distributed systems is the possibility of deadlock. Processes are said to be deadlocked when some processes are blocked on resource requests that can never be satisfied unless drastic systems action is taken. Two distributed deadlock detection algorithms handling multiple outstanding requests is proposed and are proven to be correct: it detects all cycles and does not detect false deadlocks. The algorithms are based on the concept of chasing the edge of the waitfor graph (probe-based). Simulation results show that the proposed algorithm performs very well compared to some existing algorithms. A deadlock prevention algorithm based on the notion of coloring the nodes of the waitfor graph is also proposed. Rollback is quite less compared to some existing algorithms
Building a Truly Distributed Constraint Solver with JADE
Real life problems such as scheduling meeting between people at different
locations can be modelled as distributed Constraint Satisfaction Problems
(CSPs). Suitable and satisfactory solutions can then be found using constraint
satisfaction algorithms which can be exhaustive (backtracking) or otherwise
(local search). However, most research in this area tested their algorithms by
simulation on a single PC with a single program entry point. The main
contribution of our work is the design and implementation of a truly
distributed constraint solver based on a local search algorithm using Java
Agent DEvelopment framework (JADE) to enable communication between agents on
different machines. Particularly, we discuss design and implementation issues
related to truly distributed constraint solver which might not be critical when
simulated on a single machine. Evaluation results indicate that our truly
distributed constraint solver works well within the observed limitations when
tested with various distributed CSPs. Our application can also incorporate any
constraint solving algorithm with little modifications.Comment: 7 page
On deadlock detection in distributed computing systems
With the advent of distributed computing systems, the problem of deadlock, which has been essentially solved for centralized computing systems, has reappeared. Existing centralized deadlock detection techniques are either too expensive or they do not work correctly in distributed computing systems. Although several algorithms have been developed specifically for distributed systems, the majority of them have also been shown to be inefficient or incorrect. A new algorithm is proposed which is more efficient than any existing distributed deadlock detection algorithm. (Author)supported in part by the Foundation
Research Program of the Naval Postgraduate School with funds provided the by Chief of Naval Researchhttp://archive.org/details/ondeadlockdetect00badaApproved for public release; distribution is unlimited
Correct-by-construction microarchitectural pipelining
This paper presents a method for correct-by-construction microarchitectural pipelining that handles cyclic systems with dependencies between iterations. Our method combines previously known bypass and retiming transformations with a few transformations valid only for elastic systems with early evaluation (namely, empty FIFO insertion, FIFO capacity sizing, insertion of anti-tokens, and introducing early evaluation multiplexors). By converting the design to a synchronous elastic form and then applying this extended set of transformations, one can pipeline a functional specification with an automatically generated distributed controller that implements stalling logic resolving data hazards off the critical path of the design. We have developed an interactive toolkit for exploring elastic microarchitectural transformations. The method is illustrated by pipelining a few simple examples of instruction set architecture ISA specifications.Peer ReviewedPostprint (published version
An Evaluation of Network Access Protocols for Distributed Real-time Database Systems
Cataloged from PDF version of article.The results of a considerable number of works addressing various features of real-time database systems (RTDBSs) have recently appeared in the literature. An issue that has not received much attention yet is the performance of the communication network configuration in a distributed RTDBS. In this article, we examine the impact of underlying network architecture on the performance of a distributed RTDBS. In particular, we evaluate the real-time performance of distributed transactions in terms of the fraction of satisfied deadlines under various network access strategies. We also critically examine the common assumption of constant network delay for each communication message exchanged in a distributed RTDBS. (C) 1997 by Elsevier Science Inc
- …