Recently there has been considerable interest in the study of replica-control protocols which are based on organizing several copies of an object into logical structures, such as rectangular grids. In addition to high availability, another objective in exploiting such structures is to improve the degree of load sharing in a system. In this paper, we extend the scope of grid structures to general grids, which allow holes in various positions of a rectangular structure and are useful to consider because they often produce availabilities that are higher than solid grids, where every position must be occupied by a node. In addition to proposing an improvement to the existing grid protocol, we also offer new insights into the performance of the grids, from both availability and load sharing points of view. Algorithms for designing grids to maximize availability independently, and also in conjunction with a load sharing constraint are given.