ERASURE ENCODING USING ZONE SETS
Systems and methods for initializing, creating, and lock-free writing of data in distributed data storage system. Methods utilize zone sets to write data according to data storage policies in a lock-free manner. The distributed scale-out data storage system includes various software modules and libraries that enable enhanced data management efficiencies and methods for performing data management tasks.
1 . A method for initializing a zone set in a distributed data storage system having a plurality of storage drives, the method comprising the steps of:
querying a coordinator module to determine a zone set size using a configuration parameter; and
writing a plurality of zone set parameters into a label zone of a zone set.
2 . The method of claim 1 , wherein the configuration parameter includes one or more of a storage volume label, a zone set identifier, a cluster identifier, and a system identifier.
3 . The method of claim 1 , wherein the plurality of the zone set parameters include one or more of: a data redundancy value, a storage capacity for each zone within the zone set, a stripe size, and an identifier for each storage drive within the zone.
4 . The method of claim 1 , wherein the label zone is located at the lowest address on each of the plurality of storage devices.
5 . A method of creating a zone set in a distributed data storage system having a plurality of storage drives, the method comprising the steps of:
creating the zone set comprised of individual zones by allocating a uniform amount of storage space into each individual zone, each individual zone being located on a different storage drive within the plurality of storage drives;
allocating a write unit size to each zone of the zone sets;
assigning zones having the same size write unit to the zone set;
receiving a request to write a data segment; and
creating a first reservation of data storage space within the zone set in response to the request to write data, the first reservation including a storage policy.
6 . The method of claim 5 further comprising the step of receiving an indication that the amount of data storage space within the first reservation has been filled.
7 . The method of claim 6 further comprising the step of creating a second reservation of data storage space.
8 . The method of claim 5 further comprising the step of writing data in a stripe in the first reservation of data storage space.
9 . The method of claim 8 wherein a storage capacity of each stripe is the storage capacity of one write unit multiplied by a number of zones within a zone set.
10 . The method of claim 8 further comprising the steps of:
calculating an amount of redundant data that must be written to the stripe in accordance with the storage policy; and
writing the redundant data.
11 . The method of claim 10 further comprising the step of rotating a location of the storage space upon which redundant data is written.
12 . The method of claim 5 wherein each of the zone sets is comprised of five zones.
13 . The method of claim 5 wherein the uniform amount of storage space is 256 megabytes.
14 . The method of claim 5 wherein the storage policy is a data protection scheme.
15 . The method of claim 14 wherein the data protection scheme is at least one of erasure encoding and mirroring.
16 . The method of claim 5 further comprising the step of decomposing the zone set.
17 . A method of performing lock-free writing in a distributed data storage, the method comprising the steps of:
creating a write reservation for a data segment to be written to a zone set, the zone set being located on a plurality of different storage drives;
receiving a data segment;
writing the data segment into the write reservation according to a data storage policy scheme;
writing a location information for the data segment into a key-value pair; and
transacting the key-value pair.