IP Library Granted Patent US 12,045,481
Granted Patent B2
US 12,045,481 · App. 17/708,271 · Granted Jul 23, 2024

Read amplification reduction in a virtual storage system when compression is enabled for a zoned checksum scheme

Inventors: Ritika (Uttar Pradesh, IN); Jagadish Vasudeva (Bangalore, IN); Vani Vully (Bangalore, IN); Raj Kamal (Bangalore, IN); Deepak Dangi (Bangaluru, IN); Parag Deshmukh (Bangalore, IN)
Assignee: NetApp, Inc.
G06F3/064G06F3/0619G06F3/0659G06F3/0664G06F3/0689
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 12,045,481
App. No.
17/708,271
Granted
Jul 23, 2024
Kind
B2
Abstract

Systems and methods for reducing read application in a virtual storage system are provided. According to one embodiment, read amplification is reduced when AZCS compression is being utilized by avoiding restarting of a read process via a slow path via a RAID layer of the virtual storage system when a data block associated with a read request and obtained via a first fast path read has been found not to be compressed. Instead, a second fast path read may be performed to obtain the corresponding checksum. Alternatively, or additionally, heuristics may be used to predict the odds of the data block being compressed. For example, when information encoded within a PVBN of the data block that identifies the PVBN as being within a compressed AZCS zone has shown to be sufficiently/insufficiently predictive of the data block being compressed, then a flag may be set to enable/disable fast path reads.

Claims (57)

1. A virtual storage system comprising:

one or more processing resources; and

a non-transitory computer-readable medium, coupled to the one or more processing resources, having stored therein instructions that when executed by the one or more processing resources cause the virtual storage system to:

receive a read request from a client specifying a logical address of a data block;

based on a volume block number associated with the logical address, make a first determination regarding whether the data block is stored within a compressible zone of a plurality of zones of a zoned checksum scheme of a volume in which it is permissible to store both compressed data and a corresponding checksum within a given data block;

after the first determination is found to be affirmative, issue a first fast path read operation for the data block to a storage layer of the virtual storage system;

after completion of the first fast path read operation for the data block, make a second determination regarding whether a checksum is present in the data block; and

after the second determination is found to be negative, perform, by the storage layer, a second fast path read operation for a checksum corresponding to the data of the data block, wherein the checksum corresponding to the data of the data block is stored separate from the data block.

2. The virtual storage system of claim 1 , wherein the zoned checksum scheme comprises advanced zone checksum (AZCS).

3. The virtual storage system of claim 1 , wherein the checksum corresponding to the data of the data block is stored within a checksum block containing a plurality of checksums for respective data blocks of a zone of the plurality of zones.

4. The virtual storage system of claim 3 , wherein execution of the instructions by the one or more processing resources further cause the virtual storage system to:

after the first determination is found to be negative, make a third determination regarding whether the checksum block is within a threshold number of blocks of the data block; and

after the third determination is found to be affirmative, issue a fast path read operation to the storage layer for both the data block and the checksum block.

5. The virtual storage system of claim 4 , wherein the threshold number of data blocks is 1.

6. The virtual storage system of claim 4 , wherein execution of the instructions by the one or more processing resources further cause the virtual storage system to:

prior to said making the third determination, after the first determination is found to be negative, make a fourth determination regarding whether (i) the read request is part of a read chain having a length less than a length threshold and (ii) fast path read processing is enabled for the volume; and

trigger the third determination after the fourth determination is found to be affirmative.

7. The virtual storage system of claim 6 , wherein execution of the instructions by the one or more processing resources further cause the virtual storage system to responsive to the fourth determination being negative, issue a read to a data storage virtualization layer of the virtual storage system for the data block and the corresponding checksum.

8. The virtual storage system of claim 6 , wherein the data storage virtualization layer comprises a redundant array of independent disks (RAID) layer.

9. The virtual storage system of claim 1 , wherein execution of the instructions by the one or more processing resources further cause the virtual storage system to, responsive to the second determination, update a set of volume-level heuristic data for the volume within a current active window.

10. The virtual storage system of claim 9 , wherein the set of volume-level heuristic data includes a read counter representing a total number of fast path read operations that have been performed for data blocks within any compressible zone of the plurality of zones and a success counter representing a number of the total number of fast path read operations for which respective checksums were present within the respective data blocks.

11. The virtual storage system of claim 9 , wherein execution of the instructions by the one or more processing resources further cause the virtual storage system to:

calculate a success rate for the current active window based on the success counter and the read counter; and

update a flag within the set of volume-level heuristic data indicative of whether fast path read processing is enabled for the volume based on the success rate meeting or exceeding a success threshold.

12. The virtual storage system of claim 11 , wherein the success threshold is 70%.

13. A method comprising:

receiving, by a file system of a virtual storage system, a read request from a client specifying a logical address of a data block;

based on a volume block number associated with the logical address, making a first determination by the file system regarding whether the data block is stored within a compressible zone of a plurality of zones of a zoned checksum scheme of a volume in which it is permissible to store both compressed data and a corresponding checksum within a given data block;

after the first determination is found to be affirmative, issuing, by the file system, a first fast path read operation for the data block to a storage layer of the virtual storage system;

after completion of the first fast path read operation for the data block, making a second determination by the storage layer regarding whether a checksum is present in the data block; and

after the second determination is found to be negative, issuing, by the storage layer, a second fast path read operation for a checksum corresponding to the data of the data block, wherein the checksum corresponding to the data of the data block is stored separate from the data block.

14. The method of claim 13 , wherein the zoned checksum scheme comprises advanced zone checksum (AZCS).

15. The method of claim 13 , wherein the checksum is stored within a checksum block containing a plurality of checksums for respective data blocks of a zone of the plurality of zones.

16. The method of claim 15 , further comprising:

after the first determination is found to be negative, making a third determination by the file system regarding whether the checksum block is within a threshold number of blocks of the data block; and

after the third determination is found to be affirmative, issuing, by the file system, a fast path read operation to the storage layer for both the data block and the checksum block.

17. The method of claim 16 , further comprising:

prior to said making the third determination, after the first determination is found to be negative, making a fourth determination by the file system regarding whether (i) the read request is part of a read chain having a length less than a length threshold and (ii) fast path read processing is enabled for the volume; and

triggering said making the third determination, after the fourth determination is found to be affirmative.

18. The method of claim 17 , further comprising after the fourth determination is found to be negative, issuing, by the file system, a read to a redundant array of independent disks (RAID) layer of the virtual storage system for the data block and the corresponding checksum.

19. The method of claim 13 , further comprising after the second determination, updating a set of volume-level heuristic data for the volume.

20. A non-transitory machine readable medium storing instructions, which when executed by one or more processing resources of a virtual storage system, cause the virtual storage system to:

receive a read request from a client specifying a logical address of a data block;

based on a volume block number associated with the logical address, make a first determination regarding whether the data block is stored within a compressible zone of a plurality of zones of a zoned checksum scheme of a volume in which it is permissible to store both compressed data and a corresponding checksum within a given data block;

after the first determination is found to be affirmative, issue a first fast path read operation for the data block to a storage layer of the virtual storage system;

after completion of the first fast path read operation for the data block, make a second determination regarding whether a checksum is present in the data block; and

after the second determination is found to be negative, perform, by the storage layer, a second fast path read operation for a checksum corresponding to the data of the data block.

21. The non-transitory machine readable medium of claim 20 , wherein the zoned checksum scheme comprises advanced zone checksum (AZCS).

22. The non-transitory machine readable medium of claim 20 , wherein the checksum is stored within a checksum block containing a plurality of checksums for respective data blocks of a zone of the plurality of zones.

23. The non-transitory machine readable medium of claim 22 , wherein the instructions further cause the virtual storage system to:

after the first determination is found to be negative, make a third determination by the file system regarding whether the checksum block is within a threshold number of blocks of the data block; and

after the third determination is found to be affirmative, issue, by the file system, a fast path read operation to the storage layer for both the data block and the checksum block.

24. The non-transitory machine readable medium of claim 20 , wherein the instructions further cause the virtual storage system to:

prior to said making the third determination, after the first determination is found to be negative, make a fourth determination by the file system regarding whether (i) the read request is part of a read chain having a length less than a length threshold and (ii) fast path read processing is enabled for the volume; and

trigger making of the third determination, after the fourth determination is found to be affirmative.

25. The non-transitory machine readable medium of claim 24 , wherein the instructions further cause the virtual storage system to after the fourth determination is found to be negative, issue, by the file system, a read to a redundant array of independent disks (RAID) layer of the virtual storage system for the data block and the corresponding checksum.

26. The non-transitory machine readable medium of claim 20 , wherein the instructions further cause the virtual storage system to after the second determination, update a set of volume-level heuristic data for the volume.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 18, 2022
From: ., RITIKA; VASUDEVA, JAGADISH; VULLY, VANI; KAMAL, RAJ; DANGI, DEEPAK; DESHMUKH, PARAG
To: NETAPP, INC.
Reel/Frame 059627/0427 →
Continuity (1)
Related Publication 20230315315A1 · Oct 5, 2023
Cited By (1)
US 12,554,427