Data redundancy for latency sensitive writes
A method for safe storage of a data portion, the method includes (a) receiving, at a storage system, the data portion; (b) selecting, based on at least a timing parameter, a redundancy scheme for safe storage of the data portion; wherein the redundancy scheme is selected out of (i) mirroring the data portion and (ii) applying a stripe based protection on the data portion, at a storage space of the storage system; and (c) safe storing the data portion by applying the selected redundancy scheme.
1 . A method for safe storage of a data portion, the method comprising:
receiving, at a storage system, the data portion;
executing by one or more processing circuitries of the storage system, based on at least a timing parameter, a redundancy scheme for safe storage of the data portion; wherein the redundancy scheme is selected out of (i) mirroring the data portion and (ii) applying a stripe based protection for adding the data portion to a pending stripe, at a storage space of the storage system;
safely storing the data portion by applying the selected redundancy scheme;
wherein the pending stripe stores multiple data portions associated with multiple values of pending time lapse, and wherein each of the multiple data portions was associated, upon reception, with a value of pending time lapse that is based at least on a size of the data portion; and
determining whether to close the pending stripe, when the pending stripe is not full, based on a stripe closing time of the pending stripe, wherein the stripe closing time is based on the multiple values of pending time lapse.
2 . The method according to claim 1 , comprising estimating a striping time period required to close a pending stripe destined to receive the data portion when applying of the stripe based protection; wherein the timing parameter is a relationship between the striping time period and a latency constraint associated with the data portion.
3 . The method according to claim 2 , comprising selecting to mirror the data portion when the striping time period does not conform with the latency constraint associated with the data portion.
4 . The method according to claim 2 , comprising evaluating a bandwidth of received data portions, and determining the striping time period based on (a) the bandwidth, and (b) an amount of data required for closing the pending stripe.
5 . The method according to claim 4 , wherein the evaluating of the bandwidth is based on values of the bandwidth over a period of time.
6 . The method according to claim 2 , comprising determining the latency constraint associated with the data portion.
7 . The method according to claim 6 , wherein the determining of the latency constraint is based on a size of the data portion.
8 . The method according to claim 6 , wherein the determining of the latency constraint is based on a quality of service associated with a user associated with the data portion.
9 . The method according to claim 2 , wherein the pending stripe stores data portions from multiple users, wherein the estimating of the striping time period is further based on one or more latency constraints associated with one or more of the data portions.
10 . The method according to claim 9 , wherein the one or more latency constraints are based on quality of service definitions associated with the one or more of the multiple users.
11 . The method according to claim 9 , wherein the one or more latency constraints are based on one or more sizes associated with the data portions.
12 . The method according to claim 2 , comprising closing the pending stripe before the pending stripe is full.
13 . The method according to claim 12 , wherein the determining of whether to close is based on latency constraints associated with data portions stored in the pending stripe.
14 . The method according to claim 12 , wherein the pending stripe stores data portions from multiple users, wherein the determining of whether to close is based on one or more latency constraints associated with one or more users of the multiple users.
15 . A non-transitory computer readable medium for safe storage of a data portion, the non-transitory computer readable medium stores instructions for:
receiving, at a storage system, the data portion;
executing by one or more processing circuitries of the storage system, based on at least a timing parameter, a redundancy scheme for safe storage of the data portion; wherein the redundancy scheme is selected out of (i) mirroring the data portion and (ii) applying a stripe based protection for adding the data portion to a pending stripe, at a storage space of the storage system;
safely storing the data portion by applying the selected redundancy scheme;
wherein the pending stripe stores multiple data portions associated with multiple values of pending time lapse, and wherein each of the multiple data portions was associated, upon reception, with a value of pending time lapse that is based at least on a size of the data portion; and
determining whether to close the pending stripe, when the pending stripe is not full, based on a stripe closing time of the pending stripe, wherein the stripe closing time is based on the multiple values of pending time lapse.
16 . The non-transitory computer readable medium according to claim 15 , that stores instructions for estimating a striping time period required to close a pending stripe destined to receive the data portion during the applying of the stripe based protection; wherein the timing parameter is a relationship between the striping time period and a latency constraint associated with the data portion.
17 . The non-transitory computer readable medium according to claim 16 , that stores instructions for selecting to mirror the data portion when the striping time period does not conform with the latency constraint associated with the data portion.
18 . The non-transitory computer readable medium according to claim 16 , that stores instructions for evaluating a bandwidth of received data portions, and determining the striping time period based on (a) the bandwidth, and (b) an amount of data required for closing the pending stripe.
19 . The non-transitory computer readable medium according to claim 16 , wherein the pending stripe stores data portions from multiple users, wherein the estimating of the striping time period is further based on one or more latency constraints associated with one or more of the data portions.
20 . The non-transitory computer readable medium according to claim 16 , that stores instructions for closing the pending stripe before the pending stripe is full.