A static pessimistic scheme for handling replicated databases

A replicated database system may partition into isolated groups in the presence of node and link failures. When the system has partitioned, a pessimistic scheme maintains availability and consistency of replicated data by ensuring that updates occur in at most one group. A pessimistic scheme is called a static scheme if these distinguished groups are determined only by the membership of different groups in the partitioned system. In this paper, we present a new static scheme that is more powerful than voting. In this scheme, the set of distinguished groups, called an acceptance set, is chosen at design time. To commit an update, a node checks if its enclosing group is a member of this acceptance set. Using an encoding scheme for groups, this check is implemented very efficiently. Another merit of the proposed scheme is that the problem of determining an optimal acceptance set is formulated as a sparse 0-1 linear programming problem. Hence, the optimization problem can be handled using the very rich class of existing techniques for solving such problems. Based on our experiments, we feel that this optimization approach is feasible for systems containing up to 10 nodes (copies).