In this paper, we present an efficient algorithm for managing replicated data. We impose a logical tree structure on the set of copies of an object. In a failurefree environment the protocol executes read operations by reading one copy of an object while guaranteeing fault-tolerance of write operations. It also exhibits the property of graceful degradation, i.e., communication costs are minimal in a failure-free environment but may increase as failures occur. This approach in designing distributed systems is desirable since it provides faulttolerance without imposing unnecessary costs on the failure-free mode of operations.