Scalable storage system with unique client assignment to storage server partitions
First Claim
1. A storage system for managing data elements in a distributed storage environment, the storage system comprising:
- a plurality of distributed clusters storing data elements from a plurality of clients, wherein each cluster comprises a plurality of storage servers and wherein the data elements are not centrally stored; and
a partition master communicatively coupled to the clusters, wherein the partition master assigns each client a cluster from the plurality of clusters and a unique partition within the assigned cluster, and further wherein each data element is stored in the partition assigned to the client and is replicated across the plurality of storage servers within the respective cluster.
2 Assignments
0 Petitions
Accused Products
Abstract
A massively scalable architecture for providing a highly reliable storage system that is capable of handling hundreds of millions of users and tens of billions of files. The system includes one or more clusters storing data elements that are received from a plurality of clients. Each cluster comprises a plurality of storage servers. A partition master assigns each client a unique partition within one of the clusters such that each data element is stored in the partition assigned to the client. The storage system can be easily scaled as the number of reads increases by adding individual storage servers to each storage cluster. In addition, the storage system easily scales to handle an increase in the number of writes, or as the number of files per cluster exceeds a predefined limit, by adding new storage clusters to the storage system.
136 Citations
22 Claims
-
1. A storage system for managing data elements in a distributed storage environment, the storage system comprising:
-
a plurality of distributed clusters storing data elements from a plurality of clients, wherein each cluster comprises a plurality of storage servers and wherein the data elements are not centrally stored; and
a partition master communicatively coupled to the clusters, wherein the partition master assigns each client a cluster from the plurality of clusters and a unique partition within the assigned cluster, and further wherein each data element is stored in the partition assigned to the client and is replicated across the plurality of storage servers within the respective cluster. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10)
-
-
11. A computing method for managing data elements in a distributed storage environment, wherein data elements are not centrally stored, the method comprising:
-
receiving a client request to store data elements;
assigning the client a unique partition within one of a plurality of storage clusters; and
storing the data elements in each of a plurality of servers within the storage cluster. - View Dependent Claims (12, 13, 14, 15, 16, 17, 18, 19)
-
-
20. In a storage system for managing data elements in a distributed storage environment, wherein data elements are not centrally stored, a computer-readable medium having computer-executable instructions for causing a system to perform a computing method for a managing data elements, the computing method comprising:
-
receiving a client request to store data elements;
assigning the client a unique partition within one of a plurality of distributed storage clusters; and
storing the data elements in each of a plurality of servers within the assigned storage cluster.
-
-
21. A computing system for managing data elements in a distributed storage environment, the computing system comprising:
-
a plurality of webs servers receiving client requests to store data elements;
a plurality of distributed clusters storing the data elements received from the clients, wherein each cluster comprises a plurality of storage servers and wherein data elements are not centrally stored;
a partition master communicatively coupled to the clusters, wherein the partition master maintains partition information mapping each client to a unique partition within one of the clusters; and
a storage access module executing on each of the web servers, wherein for each client request the storage access module communicates the request to the storage clusters as a function of the partition information. - View Dependent Claims (22)
-
Specification