Results 1 - 10
of
25
The Design and Implementation of a Log-Structured File System
- ACM Transactions on Computer Systems
, 1992
"... This paper presents a new technique for disk storage management called a log-structured file system. A logstructured file system writes all modifications to disk sequentially in a log-like structure, thereby speeding up both file writing and crash recovery. The log is the only structure on disk; it ..."
Abstract
-
Cited by 808 (6 self)
- Add to MetaCart
This paper presents a new technique for disk storage management called a log-structured file system. A logstructured file system writes all modifications to disk sequentially in a log-like structure, thereby speeding up both file writing and crash recovery. The log is the only structure on disk; it contains indexing information so that files can be read back from the log efficiently. In order to maintain large free areas on disk for fast writing, we divide the log into segments and use a segment cleaner to compress the live information from heavily fragmented segments. We present a series of simulations that demonstrate the efficiency of a simple cleaning policy based on cost and benefit. We have implemented a prototype logstructured file system called Sprite LFS; it outperforms current Unix file systems by an order of magnitude for small-file writes while matching or exceeding Unix performance for reads and large writes. Even when the overhead for cleaning is included, Sprite LFS can use 70 % of the disk bandwidth for writing, whereas Unix file systems typically can use only 5-10%. 1.
Weighted Voting for Replicated Data
, 1979
"... In a new algorithm for maintaining replicated data, every copy of a replicated file is assigned some number of votes. Every transaction collects a read quorum of r votes to read a file, and a write quorum of w votes to write a file, such that r+w is greater than the total number number of votes assi ..."
Abstract
-
Cited by 496 (0 self)
- Add to MetaCart
In a new algorithm for maintaining replicated data, every copy of a replicated file is assigned some number of votes. Every transaction collects a read quorum of r votes to read a file, and a write quorum of w votes to write a file, such that r+w is greater than the total number number of votes assigned to the file. This ensures that there is a non-null intersection between every read quorum and every write quorum. Version numbers make it possible to determine which copies are current. The reliability and performance characteristics of a replicated file can be controlled by appropriately choosing r, w, and the file's voting configuration. The algorithm guarantees serial consistency, admits temporary copies in a natural way by the introduction of copies of an application system called Violet.
Fail-Stop Processors: An Approach to Designing Fault-Tolerant Computing Systems
, 1983
"... This paper was originally submitted to ACM Transactions on Programming Languages and Systems. The responsible editor was Susan L. Graham. The authors and editor kindly agreed to transfer the paper to the ACM Transactions on Computer Systems ..."
Abstract
-
Cited by 279 (16 self)
- Add to MetaCart
This paper was originally submitted to ACM Transactions on Programming Languages and Systems. The responsible editor was Susan L. Graham. The authors and editor kindly agreed to transfer the paper to the ACM Transactions on Computer Systems
The locus distributed operating system
, 1983
"... LOCUS Is a distributed operating system which supports transparent access to data through a network wide fllesystem, permits automatic replication of storaget supports transparent distributed process execution, supplies a number of high reliability functions such as nested transactions, and is upwar ..."
Abstract
-
Cited by 174 (7 self)
- Add to MetaCart
LOCUS Is a distributed operating system which supports transparent access to data through a network wide fllesystem, permits automatic replication of storaget supports transparent distributed process execution, supplies a number of high reliability functions such as nested transactions, and is upward compatible with Unix. Partitioned operation of subnetl and their dynamic merge is also supported. The system has been operational for about two years at UCLA and extensive experience In its use has been obtained. The complete system architecture is outlined in this paper, and that experience is summarized. 1
Replication Management Using the State Machine Approach
, 1993
"... This paper is a tutorial on the state machine approach. It describes the approach and its implementation for two representative environments. Small examples suffice to illustrate the points. However, the approach has been successfully applied to larger examples; some of these are mentioned in 9. Sec ..."
Abstract
-
Cited by 101 (0 self)
- Add to MetaCart
This paper is a tutorial on the state machine approach. It describes the approach and its implementation for two representative environments. Small examples suffice to illustrate the points. However, the approach has been successfully applied to larger examples; some of these are mentioned in 9. Section 2 describes how a system can be viewed in terms of a state machine, clients, and output devices. Coping with failures is the subject of 3 through 6. An important class of optimizations--- based on the use of time---is discussed in 7. Section 8 describes dynamic reconfiguration. The history of the approach and related work is discussed in 9
The Escrow Transactional Method
- ACM Transactions on Database Systems
, 1986
"... A method is presented for permitt.ing record updates by long-lived transactions without forbidding simultaneous access by other users to records modified. Earlier methods presented separately by Gawlick and Reuter are comparable but concentrate on “hot-spot ” situations, where even short transaction ..."
Abstract
-
Cited by 77 (1 self)
- Add to MetaCart
A method is presented for permitt.ing record updates by long-lived transactions without forbidding simultaneous access by other users to records modified. Earlier methods presented separately by Gawlick and Reuter are comparable but concentrate on “hot-spot ” situations, where even short transactions cannot lock frequently accessed fields without causing bottlenecks. The Escrow Method offered here is designed to support nonblocking record updates by transactions that are “long lived” and thus require long periods to complete. Recoverability of intermediate results prior to commit thus becomes a design goal, so that updates as of a given time can be guaranteed against memory or media failure while still retaining the prerogative to abort. This guarantee basically completes phase one of a two-phase commit, and several advantages result: (1) As with Gawlick’s and Reuter’s methods, high-concurrency items in the database will not act as a bottleneck; (2) transaction commit of different updates can be performed asynchronously, allowing natural distributed transactions; indeed, distributed transactions in the presence of delayed messages or occasional line disconnection become feasible in a way that we argue will tie up minimal resources for the purpose intended; and (3) it becomes natural to allow for human interaction in the middle of a transaction without loss of concurrent access or any special difficulty for the application programmer. The Escrow Method, like Gawlick’s Fast Path and Reuter’s Method, requires the database system to be an “expert ” about the type of transactional updates performed, most commonly updates involving incremental changes to aggregate quantities. However, the Escrow Method is extendable to other types of updates.
Reliable Distributed Programming in C++: the Arjuna Approach
- In Second Usenix C++ Conference
, 1990
"... Programming in a distributed system is fraught with potential difficulties caused, in part, by the physical distribution of the system itself. By making the distribution of the system transparent it is hoped that the task becomes comparable with that of programming a more traditional centralised sys ..."
Abstract
-
Cited by 23 (1 self)
- Add to MetaCart
Programming in a distributed system is fraught with potential difficulties caused, in part, by the physical distribution of the system itself. By making the distribution of the system transparent it is hoped that the task becomes comparable with that of programming a more traditional centralised system. Objectoriented programming systems are natural starting points for such an attempt due to the inherent modularisation and encapsulation properties they possess. Arjuna is one such system, programmed in C++, which permits the construction of reliable distributed applications in a relatively transparent manner. Objects in Arjuna can be located anywhere in the distributed system and are accessed as if they were purely local to the application. The use of remote procedure calls to perform the actual accesses is hidden by the use of stub generation techniques which operate on the original C++ class descriptions thus furthering the illusion of transparency. Reliability is achieved through the provision of traditional atomic transaction mechanisms implemented using only standard language features. 1.
Structuring Fault-Tolerant Object Systems for Modularity in a Distributed Environment
"... The object-oriented approach to system structuring has found widespread acceptance among designers and developers of robust computing systems. In this paper we propose a system structure for distributed programming systems that support persistent objects and describe how such properties as persisten ..."
Abstract
-
Cited by 22 (10 self)
- Add to MetaCart
The object-oriented approach to system structuring has found widespread acceptance among designers and developers of robust computing systems. In this paper we propose a system structure for distributed programming systems that support persistent objects and describe how such properties as persistence, recoverability etc. can be implemented. The proposed structure is modular, permitting easy exploitation of any distributed computing facilities provided by the underlying system. An existing system constructed according to the principles espoused here is examined to illustrate the practical utility of the proposed approach to system structuring.
Concurrency Control in Asynchronous Computations
, 1993
"... When independently executing processes share data, some form of concurrency control is needed to enforce the atomicity and sequencing constraints imposed by the program. We believe that concurrency control is hard largely because existing architectural support is inadequate. We define a new class of ..."
Abstract
-
Cited by 14 (2 self)
- Add to MetaCart
When independently executing processes share data, some form of concurrency control is needed to enforce the atomicity and sequencing constraints imposed by the program. We believe that concurrency control is hard largely because existing architectural support is inadequate. We define a new class of interconnection networks called isotach networks and explore isotach-based concurrency control by describing techniques that use the isotach network to achieve causal message delivery, atomicity, sequential consistency, and cache coherence. We show processes can pipeline their accesses to shared data in an isotach system without sacrificing sequential consistency. We define the isochron, a multicast with strong ordering properties implemented on an isotach network, and describe techniques by which processes can use isochrons to execute atomic actions without obtaining locks or other exclusive access rights. We describe compatible techniques for enforcing data dependences and show that the i...
Design and Modelling of a Parallel Data Server for Telecom Applications
, 1997
"... Telecom databases are databases used in the operation of the telecom network and as parts of applications in the telecom network. The first telecom databases were Service Control Points (SCP) in Intelligent Networks. These provided mostly number translations for various services, such as Freephone. ..."
Abstract
-
Cited by 11 (1 self)
- Add to MetaCart
Telecom databases are databases used in the operation of the telecom network and as parts of applications in the telecom network. The first telecom databases were Service Control Points (SCP) in Intelligent Networks. These provided mostly number translations for various services, such as Freephone. Also databases that keep track of the mobile phones (Home Location Registers, HLR) for mobile telecommunications were early starters. SCPs and HLRs are now becoming the platforms for service execution of telecommunication services. Other telecom databases are used for management of the network, especially for real-time charging information. Many information servers, such as Web Servers, Cache Servers, Mail Servers, File Servers are also becoming part of the telecom databases. These servers have in common that they all have to answer massive amounts of rather simple queries, that they have to be very reliable, and that they have requirements on short response times. Some of them also need lar...

