Systems and methods to achieve effective streaming of data blocks in data backups
Methods and systems for block-level data prioritization during a backup operation are disclosed. According to some embodiments, the method includes extracting a backup data criticality from header information of one or more data blocks. The method further includes based on the extracted backup data criticality, assigning a weighted value corresponding to the backup data criticality. The method further includes for each data block, calculating a Euclidean distance of the data block to a consecutive data block using the weighted value.
1. A computer-implemented method for block-level data prioritization during a backup operation, the method comprising:
for each data block of a plurality of data blocks in a queue,
extracting a backup data criticality from header information of the data block;
based on the extracted backup data criticality, assigning a weighted value corresponding to the backup data criticality; and
calculating a distance between the data block and a consecutive data block of the data block based on the weighted value corresponding to the backup data criticality, wherein calculating the distance between the data block and the consecutive data block of the data block comprises obtaining a dot product of the weighted value corresponding to the backup data criticality and a sequence of the data block in the queue; and
sorting the plurality of data blocks by selecting a nearest and most critical data block to be routed for backup based on the calculated distance between each data block and the consecutive data block of the data block.
2. The method of claim 1 , further comprising prior to extracting the backup data criticality from the header information of the data block,
sniffing data object information of a data object;
determining the backup data criticality based on the data object information; and
appending the backup data criticality to the header information of the data block.
3. The method of claim 1 , further comprising evaluating the plurality of data blocks to identify at least one dependent data block associated with a parent block, wherein the plurality of data blocks comprise the parent block and the at least one dependent data block.
4. The method of claim 1 , further comprising
routing the sorted data blocks to a stream buffer in a concurrent fashion for streaming operations.
5. The method of claim 2 , wherein the data object information includes a data type.
6. A non-transitory machine-readable medium having instructions stored therein, which when executed by a processor, cause the processor to perform operations, the operations comprising:
for each data block of a plurality of data blocks in a queue,
extracting a backup data criticality from header information of the data block;
based on the extracted backup data criticality, assigning a weighted value corresponding to the backup data criticality; and
calculating a distance between the data block and a consecutive data block of the data block based on the weighted value corresponding to the backup data criticality, wherein calculating the distance between the data block and the consecutive data block of the data block comprises obtaining a dot product of the weighted value corresponding to the backup data criticality and a sequence of the data block in the queue; and
sorting the plurality of data blocks by selecting a nearest and most critical data block to be routed for backup based on the calculated distance between each data block and the consecutive data block of the data block.
7. The non-transitory machine-readable medium of claim 6 , wherein the operations further comprise prior to extracting the backup data criticality from the header information of the data block,
sniffing data object information of a data object;
determining the backup data criticality based on the data object information; and
appending the backup data criticality to the header information of the data block.
8. The non-transitory machine-readable medium of claim 6 , wherein the operations further comprise evaluating the plurality of data blocks to identify at least one dependent data block associated with a parent block, wherein the plurality of data blocks comprise the parent block and the at least one dependent data block.
9. The non-transitory machine-readable medium of claim 6 , wherein the operations further comprise:
routing the sorted data blocks to a stream buffer in a concurrent fashion for streaming operations.
10. The non-transitory machine-readable medium of claim 7 , wherein the data object information includes a data type.
11. A data processing system, comprising:
a processor; and
a memory coupled to the processor to store instructions, which when executed by the processor, cause the processor to perform operations, the operations including:
for each data block of a plurality of data blocks in a queue,
extracting a backup data criticality from header information of the data block;
based on the extracted backup data criticality, assigning a weighted value corresponding to the backup data criticality; and
calculating a distance between the data block and a consecutive data block of the data block based on the weighted value corresponding to the backup data criticality, wherein calculating the distance between the data block and the consecutive data block of the data block comprises obtaining a dot product of the weighted value corresponding to the backup data criticality and a sequence of the data block in the queue; and
sorting the plurality of data blocks by selecting a nearest and most critical data block to be routed for backup based on the calculated distance between each data block and the consecutive data block of the data block.
12. The data processing system of claim 11 , wherein the operations further include prior to extracting the backup data criticality from the header information of the data block,
sniffing data object information of a data object;
determining the backup data criticality based on the data object information; and
appending the backup data criticality to the header information of the data block.
13. The data processing system of claim 11 , wherein the operations further include evaluating the plurality of data blocks to identify at least one dependent data block associated with a parent block, wherein the plurality of data blocks comprise the parent block and the at least one dependent data block.
14. The data processing system of claim 11 , wherein the operations further include:
routing the sorted data blocks to a stream buffer in a concurrent fashion for streaming operations.