Replication in the Harp File System --- Liskov et al., 1991. Summary by Petros Maniatis. - Short summary: Harp adds availability to file systems by using a replicated set of servers, consisting of primary servers, backup servers and witnesses. Compared to NFS, Harp achieves better performance, even though it adds extra communication. The trick is to keep a log of the operations in main memory and supply each server with a UPS. Therefore, synchronous disk accesses are avoided in Harp. Basic idea is replicating storage servers through a primary storage manager. Furthermore, writes are aggregated through the use of the write-behind strategy, in conjunction with a UPS, to make sure that power failures don't kill the volatile write log. Harp is not a file system. Rather, it's a replication extension written using the VFS interface. It strives to maintain Unix and NFS file system semantics. Every file is assigned a server group. A server group consists of a primary server, a bunch of backups and a bunch of "witnesses". When any of the primary or backups is disconnected, or partitioned away, a new view of the server group is created, where one of the witnesses is promoted to serve as backup. Witnesses only store event logs (i.e., sequences of modifications on the file system). Logs are played back during recovery to resynchronize the state of the file system. Modifications on the file system, as stored in event logs, are applied by an applier kernel thread. This thread goes through the event log and calls the appropriate local filesystem calls to have them propagated to disk.