METHOD AND APPARATUS FOR LOW DELAY ACCESS TO KEY-VALUE BASED STORAGE SYSTEMS USING FEC TECHNIQUES
First Claim
1. A method for use in a key-value based storage system, the method comprising:
- dividing an object into K portions, where K is an integer;
selecting an erasure coding to apply to the K portions as a function of delay performance of the key-value based storage system including determining a number of parity blocks to generate to satisfy one or both of a delay target of putting the object into the key-value store and a delay target of subsequent read requests, where both delay targets are based on an offline performance simulation of delay performance when different numbers of parity blocks are used given the delay distributions obtained through measurements for different request types and object sizes;
applying the erasure coding to the K portions to create N blocks of data; and
sending the N blocks of data using separate transfers to the storage system.
2 Assignments
0 Petitions
Accused Products
Abstract
A method and apparatus is disclosed herein for low delay access to key-value based storage systems. In one embodiment, the method for putting data into a key-value store comprising dividing the data into K portions, where K is an integer; selecting an erasure coding to apply to the K portions as a function of delay performance of the key-value based storage system including determining a number of parity blocks to generate to satisfy one or both of a delay target of putting the object into the key-value store and a delay target of subsequent read requests based on an offline performance simulation of delay performance when different numbers of parity blocks are used given the delay distributions obtained through measurements for different request types and object sizes; applying the erasure coding to the K portions to create N blocks of data; sending the N write requests to write blocks of data to the storage system, where each block is assigned a unique key in the key-value store.
-
Citations
25 Claims
-
1. A method for use in a key-value based storage system, the method comprising:
-
dividing an object into K portions, where K is an integer; selecting an erasure coding to apply to the K portions as a function of delay performance of the key-value based storage system including determining a number of parity blocks to generate to satisfy one or both of a delay target of putting the object into the key-value store and a delay target of subsequent read requests, where both delay targets are based on an offline performance simulation of delay performance when different numbers of parity blocks are used given the delay distributions obtained through measurements for different request types and object sizes; applying the erasure coding to the K portions to create N blocks of data; and sending the N blocks of data using separate transfers to the storage system. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12)
-
-
13. An apparatus for use in a key-value based storage system, the apparatus comprising:
-
a communication interface for coupling to a network, the communication interface operable to receive an object from the network; a memory coupled to the communication interface to store the object; and a processor coupled to the memory and the communication interface, the processor operable to divide the object into K portions, where K is an integer, select an erasure coding to apply to the K portions as a function of delay performance of the key-value based storage system, by, at least in part, determining a number of parity blocks to generate to satisfy one or both of a delay target of putting the object into the key-value store and a delay target of subsequent read requests, where both delay targets are based on an offline performance simulation of delay performance when different numbers of parity blocks are used given the delay distributions obtained through measurements for different request types and object sizes; and apply the erasure coding to the K portions to create N blocks of data; and
wherein the processor operates with the communication interface to send the N blocks of data using separate transfers to the storage system. - View Dependent Claims (14, 15, 16, 17, 18, 19, 20, 21)
-
-
22. An article of manufacture having one or more non-transitory computer readable storage media storing instructions which, when executed by a system, causes the system to perform a method comprising:
-
dividing an object into K portions, where K is an integer; selecting an erasure coding to apply to the K portions as a function of delay performance of a key-value based storage system, including determining a number of parity blocks to generate to satisfy one or both of a delay target of putting the object into the key-value store and a delay target of subsequent read requests, where both delay targets are based on an offline performance simulation of delay performance when different numbers of parity blocks are used given the delay distributions obtained through measurements for different request types and object sizes; applying the erasure coding to the K portions to create N blocks of data; and sending the N blocks of data using separate transfers to the storage system. - View Dependent Claims (23, 24)
-
-
25. A method for use in a key-value based storage system, the method comprising:
-
dividing each of a plurality of objects into a plurality of portions, wherein each of the plurality of objects is associated with a delay target; applying erasure coding to the plurality of portions of each of the plurality of objects, including adapting the erasure coding in order to apply a different erasure coding to at least two objects of the plurality of objects based on differences between delay targets associated with the at least two objects; and sending erasure coded data that resulted from applying the erasure coding to portions of the plurality of objects to the storage system.
-
Specification