Storage System UNIT-III
Storage System UNIT-III
Storage System UNIT-III
IEEE defines high availability as, “…the availability of resources in a computer system, in the
wake of component failures in the system.” While the Disaster Recovery Journal defines
disaster recovery as, “Resources and activities to re-establish information technology services
(including components such as infrastructure, telecommunications, systems, applications and
data) at an alternate site following a disruption of IT services”
1) Ordered writes:-
2) Soft updates and Transactions :-
Soft updates: - Soft updates is an approach to maintaining file system meta-data integrity in
the event of a crash or power outage. Soft updates work by tracking and enforcing
dependencies among updates to file system meta-data. Soft updates are an alternative to the
more commonly used approach of journaling file systems.
In file systems, metadata (e.g., directories, inodes, and free block maps) gives structure to
raw storage capacity. Metadata consists of pointers and descriptions for linking multiple disk
sectors into files and identifying those files. To be useful for persistent storage, a file system
must maintain the integrity of its metadata in the face of unpredictable system crashes, such
as power interruptions and operating system failures. Because such crashes usually result in
the loss of all information in volatile main memory, the information in nonvolatile storage
(i.e., disk) must always be consistent enough to deterministically reconstruct a coherent file
system state. Specifically, the on-disk image of the file system must have no dangling
pointers to uninitialized space, no ambiguous resource ownership caused by multiple
pointers, and no live resources to which there are no pointers. Maintaining these invariants
generally requires sequencing (or atomic grouping) of updates to small on-disk metadata
objects.
The soft updates mechanism tracks dependencies among updates to cached (i.e., in-memory)
copies of metadata and enforces these dependencies, via update sequencing, as the dirty
metadata blocks are written back to nonvolatile storage. Because most metadata blocks
contain many pointers, cyclic dependencies occur frequently when dependencies are
recorded only at the block level. Therefore, soft updates tracks dependencies on a per-pointer
basis and allow blocks to be written in any order. Any still-dependent updates in a metadata
block are rolled-back before the block is written and rolled-forward afterward. Thus,
dependency cycles are eliminated as an issue.
With soft updates, applications always see the most current copies of metadata blocks, and
the disk always sees copies that are consistent with its other contents. With soft updates, the
cost of maintaining integrity is low, and diskbased file system performance can be within a
few percent of a memorybased file system’s performance.
Coordinator
i) The coordinator receives a transaction request. If there is a failure at this point, the coordinator
aborts the transaction (i.e. upon recovery, it will consider the transaction aborted). Otherwise, the
coordinator sends a canCommit? message to the cohorts and moves to the waiting state.
ii) If there is a failure, timeout, or if the coordinator receives a No message in the waiting state,
the coordinator aborts the transaction and sends an abort message to all cohorts. Otherwise the
coordinator will receive Yes messages from all cohorts within the time window, so it sends
preCommit messages to all cohorts and moves to the prepared state.
iii) If the coordinator succeeds in the prepared state, it will move to the commit state. However if
the coordinator times out while waiting for an acknowledgement from a cohort, it will abort the
transaction. In the case where an acknowledgement is received from the majority of cohorts, the
coordinator moves to the commit state as well.
Cohort
The cohort receives a canCommit? message from the coordinator. If the cohort agrees it sends a
Yes message to the coordinator and moves to the prepared state. Otherwise it sends a No message
and aborts. If there is a failure, it moves to the abort state.
In the prepared state, if the cohort receives an abort message from the coordinator, fails, or times
out waiting for a commit, it aborts. If the cohort receives a preCommit message, it sends an ACK
message back and awaits a final commit or abort.
If, after a cohort member receives a preCommit message, the coordinator fails or times out, the
cohort member goes forward with the commit.
Disadvantages
i) The main disadvantage to this algorithm is that it cannot recover in the event the network is
segmented in any manner. The original 3PC algorithm assumes a fail-stop model, where
processes fail by crashing and crashes can be accurately detected, and does not work with
network partitions or asynchronous communication.
ii) Keidar and Dolev's E3PC algorithm eliminates this disadvantage.
iii) The protocol requires at least three round trips to complete, needing a minimum of three
round trip times (RTTs). This is potentially a long latency to complete each transaction.