This approach has the potential of both distributing the operation processing load among the proxies and enabling clients to access the service by communicating with nearby proxies rather than a potentially distant centralized server. However, achieving even just serializability for operations executed at these proxies using standard replication approaches requires that a proxy involve either a centralized server or other (possibly distant) proxies on the critical path of each update operation.
Our system implements a service with a designated server and an unbounded number of proxies. We generically refer to the server and the proxies as processes. To support the service, a proxy joins the service. In doing so, it is positioned within a tree rooted at the server. All proxies in the subtree rooted at that child are said to disconnect. The child (or, if the child failed, each uppermost surviving proxy in the subtree) can inform its subtree of the disconnection. The subtree can stay put until the disconnection heals, or they might reconnect via the server.