Patent ID: 8645660

Claim:
A computer system for allocating data replicas in a scalable and efficient manner, the system comprising the following: one or more processors; system memory; one or more computer-readable storage media having stored thereon computer-executable instructions that, when executed by the one or more processors, causes the computing system to perform a method comprising the following: an act of receiving a plurality of requests from multiple different clients for various data portions stored in a directory services store, wherein the data portions have been partitioned into a plurality of data partitions, each data partition comprising a primary writable copy and at least one secondary read-only copy of the data; determining which data copies of the plurality of data partitions are being requested more than other data copies of the plurality of data partitions; an act of determining that one or more network, data, directory services or client characteristics indicate that the secondary read-only copies of the partitioned data are to be dynamically re-allocated to ensure that the data is efficiently delivered to each of the clients; and based on the frequency of the requests and on the one or more network, data, directory services or client characteristics, an act of dynamically re-allocating the secondary data copies to various data partitions to ensure that the data is efficiently delivered to each of the clients.