Information
-
Patent Application
-
20230297260
-
Publication Number
20230297260
-
Date Filed
March 18, 20222 years ago
-
Date Published
September 21, 2023a year ago
-
Inventors
-
Original Assignees
-
CPC
-
-
International Classifications
Abstract
A data storage node includes a plurality of compute nodes that allocate portions of local memory to a shared cache. The shared cache is configured with mirrored and non-mirrored segments that are sized as a function of the percentage of write IOs and read 10s in a historical traffic workload profile specific to an organization or storage node. The mirrored and non-mirrored segments are separately configured with pools of data slots. Within each segment, each pool is associated with same-size data slots that differ in size relative to the data slots of other pools. The sizes of the pools in the mirrored segment are set based on write IO size distribution in the historical traffic workload profile. The sizes of the pools in the non-mirrored segment are set based on read IO size distribution in the historical traffic workload profile.
Claims
- 1. A method comprising:
for a storage node comprising: a first compute node with a first local memory, a portion of which is allocated to a shared cache; and a second compute node with a second local memory, a portion of which is allocated to the shared cache:
calculating a mirrored memory segment size for the storage node based on an historical traffic workload as a product of percentage of write input-outputs (IOs) in the historical traffic workload and size of a portion of the shared cache allocated for data;calculating sizes of a plurality of pools of different size slots in the mirrored memory segment based on distribution of write IO sizes in the historical traffic workload as a product of percent write IOs within a range of the pool and the size of the mirrored memory segmentconfiguring the shared cache with a mirrored memory segment characterized by the calculated size and pools characterized by the calculated sizes;calculating a non-mirrored memory segment size for the storage node based on the historical traffic workload as a product of percentage of read IOs in the historical traffic workload and the size of a portion of the shared cache allocated for data; andconfiguring the shared cache with a non-mirrored memory segment characterized by the calculated size.
- 2. (canceled)
- 3. (canceled)
- 4. (canceled)
- 5. (canceled)
- 6. (canceled)
- 7. The method of claim 1 further comprising calculating sizes of a plurality of pools of different size slots in the non-mirrored memory segment based on distribution of read IO sizes in the historical traffic workload as a product of percent read IOs within a range of the pool and the size of the non-mirrored memory segment.
- 8. A non-transitory computer-readable storage medium storing instructions that when executed by a computer perform a method comprising:
for a storage node based on an historical traffic workload, the storage node comprising: a first compute node with a first local memory, a portion of which is allocated to a shared cache; and a second compute node with a second local memory, a portion of which is allocated to the shared cache:
calculating a mirrored memory segment size for the storage node based on an historical traffic workload as a product of percentage of write input-outputs (IOs) in the historical traffic workload and size of a portion of the shared cache allocated for data;calculating sizes of a plurality of pools of different size slots in the mirrored memory segment based on distribution of write IO sizes in the historical traffic workload as a product of percent write IOs within a range of the pool and the size of the mirrored memory segmentconfiguring the shared cache with a mirrored memory segment characterized by the calculated size and pools characterized by the calculated sizes;calculating a non-mirrored memory segment size for the storage node based on the historical traffic workload as a product of percentage of read IOs in the historical traffic workload and the size of a portion of the shared cache allocated for data; andconfiguring the shared cache with a non-mirrored memory segment characterized by the calculated size.
- 9. (canceled)
- 11. (canceled)
- 12. (canceled)
- 13. (canceled)
- 14. (canceled)
- 15. The non-transitory computer-readable storage medium of claim 8 in which the method further comprises calculating sizes of a plurality of pools of different size slots in the non-mirrored memory segment based on distribution of read IO sizes in the historical traffic workload as a product of percent read IOs within a range of the pool and the size of the non-mirrored memory segment.
- 16. An apparatus, comprising:
a storage node comprising a first compute node with a first local memory, a portion of which is allocated to a shared cache, and a second compute node with a second local memory, a portion of which is allocated to the shared cache, the shared cache configured with:
a mirrored memory segment characterized by a size calculated based on an historical traffic workload as a product of percentage of write input-outputs (IOs) in the historical traffic workload and size of a portion of the shared cache allocated for data in which the shared cache is configured with a plurality of pools associated with different slot sizes and the sizes of the plurality of pools in the mirrored memory segment is calculated based on distribution of write IO sizes in the historical traffic workload as a product of percent write IOs within a range of the pool and the size of the mirrored memory segment; anda non-mirrored memory segment characterized by a size calculated based on the historical traffic workload as a product of percentage of read IOs in the historical traffic workload and the size of a portion of the shared cache allocated for data.
- 17. (canceled)
- 18. (canceled)
- 19. (canceled)
- 20. The apparatus of claim 16 in which the shared cache is configured with a plurality of pools associated with different slot sizes and the sizes of the plurality of pools in the non-mirrored memory segment is calculated based on distribution of read IO sizes in the historical traffic workload as a product of percent read IOs within a range of the pool and the size of the non-mirrored memory segment.