| CPC G06F 16/1752 (2019.01) [G06F 16/1734 (2019.01)] | 20 Claims |

|
1. A method of storing data to a data storage, wherein the data storage is divided into two or more variable size chunks, each of the variable size chunks is divided into blocks, and the data storage comprises a set of metadata for the data storage including information indicating a size of each variable size chunk,
wherein the data storage is also divided into two fixed size chunks, each fixed size chunk has a fixed size x and includes padding, the padding is positioned within the fixed size chunk and/or after the fixed size chunk to increase data amount in the chunk,
wherein division into fixed size chunks is independent of division into variable size chunks,
wherein the metadata includes a change indicator for each fixed size chunk indicating whether data has been written to the fixed size chunk,
wherein for one or more incoming write input output (IO) operations, the method comprises the following processes (a) and (b), each of which is written to a corresponding fixed size chunk:
(a) writing an incoming write IO to a position of the corresponding size chunk in the data storage, based on current parsing of the corresponding fixed size chunk;
(b) setting the change indicator for the corresponding fixed size chunk to indicate that the corresponding fixed size chunk has been changed since it was divided into variable sized chunks; and
based on one or more of the change indicators indicating that the division of an associated fixed size chunk or chunks into variable sized chunks should be changed, the method further comprises:
rechunking the fixed size chunk into variable sized chunks and setting the change indicator for that fixed size chunk to indicate that no write IO has been written to the fixed size chunk since it was divided into variable size chunks, and
setting the change indicator for that fixed size chunk to indicate that the fixed size chunk has not changed.
|