714 research outputs found
Object Management for Persistence and Recoverability
PhD ThesisAs distribution becomes commonplace, there is a growing requirement for
applications that behave reliably when node or network failures occur. To
support reliability, operations on the components of a distributed application may
be declared to occur within the scope of an atomic action. This thesis describes
how atomic actions may be supported in an environment consisting of
applications that operate on objects.
To support the failure atomicity and permanence of effect properties of an
atomic action, the objects accessed within the scope of an atomic action must be
recoverable and persistent. This thesis describes how these properties may be
added to the class of an object. The approach adopted is to provide a class that
implements recovery and persistence mechanisms, and derive new classes from
this base class. By refining inherited operations so that recovery and persistence
is specific to that class, recoverable and persistent objects may be easily produced.
This thesis also describes how an atomic action may be implemented as a
class, so that instances of the class are atomic actions which manage the
recoverable and persistent objects. Multiple instance declarations produce nested
atomic actions, and the atomic action class also inherits persistence so that shortterm
commit information may be saved in an object store which is used to
maintain the passive state of persistent objects.
Since the mechanisms and classes that support recovery, persistence, and
atomic actions are constructed using the feature of an object-oriented language,
they may be implemented in environments that provide suitable support for
objects and object-oriented programming languages.Science and
Engineering Research Council,
SERC/Alve
Fine-Grain Checkpointing with In-Cache-Line Logging
Non-Volatile Memory offers the possibility of implementing high-performance,
durable data structures. However, achieving performance comparable to
well-designed data structures in non-persistent (transient) memory is
difficult, primarily because of the cost of ensuring the order in which memory
writes reach NVM. Often, this requires flushing data to NVM and waiting a full
memory round-trip time.
In this paper, we introduce two new techniques: Fine-Grained Checkpointing,
which ensures a consistent, quickly recoverable data structure in NVM after a
system failure, and In-Cache-Line Logging, an undo-logging technique that
enables recovery of earlier state without requiring cache-line flushes in the
normal case. We implemented these techniques in the Masstree data structure,
making it persistent and demonstrating the ease of applying them to a highly
optimized system and their low (5.9-15.4\%) runtime overhead cost.Comment: In 2019 Architectural Support for Programming Languages and Operating
Systems (ASPLOS 19), April 13, 2019, Providence, RI, US
Database independent Migration of Objects into an Object-Relational Database
This paper reports on the CERN-based WISDOM project which is studying the
serialisation and deserialisation of data to/from an object database
(objectivity) and ORACLE 9i.Comment: 26 pages, 18 figures; CMS CERN Conference Report cr02_01
Implementing fault tolerant applications using reflective object-oriented programming
Abstract: Shows how reflection and object-oriented programming can be used to ease the implementation of classical fault tolerance mechanisms in distributed applications. When the underlying runtime system does not provide fault tolerance transparently, classical approaches to implementing fault tolerance mechanisms often imply mixing functional programming with non-functional programming (e.g. error processing mechanisms). The use of reflection improves the transparency of fault tolerance mechanisms to the programmer and more generally provides a clearer separation between functional and non-functional programming. The implementations of some classical replication techniques using a reflective approach are presented in detail and illustrated by several examples, which have been prototyped on a network of Unix workstations. Lessons learnt from our experiments are drawn and future work is discussed
A Flexible Framework For Implementing Multi-Nested Software Transaction Memory
Programming with locks is very difficult in multi-threaded programmes. Concurrency control of access to shared data limits scalable locking strategies otherwise provided for in software transaction memory. This work addresses the subject of creating dependable software in the face of eminent failures. In the past, programmers who used lock-based synchronization to implement concurrent access to shared data had to grapple with problems with conventional locking techniques such as deadlocks, convoying, and priority inversion. This paper proposes another advanced feature for Dynamic Software Transactional Memory intended to extend the concepts of transaction processing to provide a nesting mechanism and efficient lock-free synchronization, recoverability and restorability. In addition, the code for implementation has also been researched, coded, tested, and implemented to achieve the desired objectives
Integrated persistent object manager (IPOM) : a model to support persistence and data sharing in object-oriented database systems
Computer Scienc
- âŠ