Patent ID: 8886705

Claim:
A system for distributed data storage, the system comprising: a plurality of computing nodes, wherein each node of the plurality of computing nodes includes memory and one or more processors, the each node of the plurality of computing nodes is configured to execute storage management software that causes the system to converge toward a system-wide storage goal, wherein the storage management software is configured to implement role-based addressing such that the plurality of nodes do not need to maintain information regarding a global state of the system, the memory of each respective node of the plurality of computing nodes stores program instructions executable by the one or more processors of the respective node to determine a local state of the respective node, and at least one node of the plurality of computing nodes is associated with a corresponding exclusive role of a plurality of exclusive roles and at least two nodes of the plurality of computing nodes are associated with a shared role; and a goal-oriented storage manager configured to select a first node group from a plurality of node groups, wherein the first node group corresponds to the local state of the respective node, and the first node group is associated with a resource role, add the respective node to the first node group, receive information regarding each node group of the plurality of node groups, determine states of other nodes of the plurality of computing nodes based on the information regarding each node group, and depending upon the local state of the respective node and the states of the other nodes relative to the system-wide storage goal, perform an action to modify the local state of the respective node to conform the local state to the system-wide storage goal such that an optimal state for the distributed data storage system is identified, wherein the optimal state is defined by at least one goal metric, the plurality of exclusive roles are defined to represent a range of utilization of a plurality of node resources, and the distributed data storage system converges towards the optimal state based on the system-wide storage goal.