Skip to content

Commit f753762

Browse files
authored
Merge pull request #2177 from k8s-infra-cherrypick-robot/cherry-pick-2176-to-release-1.21
[release-1.21] Fix partial cache tail latency by correcting the cache chunk size calc
2 parents ef68087 + b585ad7 commit f753762

File tree

2 files changed

+12
-7
lines changed

2 files changed

+12
-7
lines changed

pkg/gce-pd-csi-driver/cache.go

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -573,9 +573,11 @@ func isCachingSetup(mainLvName string) (error, bool) {
573573
return nil, false
574574
}
575575

576+
// cacheSize is always in GiB
576577
func fetchChunkSizeKiB(cacheSize string) (string, error) {
577578
var chunkSize float64
578579

580+
cacheSize = strings.TrimSuffix(cacheSize, "GiB")
579581
cacheSizeInt, err := strconv.ParseInt(cacheSize, 10, 64)
580582
if err != nil {
581583
return "0", err
@@ -691,10 +693,8 @@ func addRaidedLSSDToVg(vgName, lssdPath string) error {
691693

692694
func fetchPvSizeGiB() (string, error) {
693695
args := []string{
694-
"--select",
695-
"-o",
696+
"-o", "pv_name,pv_size",
696697
"--noheadings",
697-
"pv_size",
698698
"--units=b",
699699
}
700700
// RAIDed device is always registered with its /dev/md127 equivalent in VG so cannot check it directly based on the RAIDed LSSD path which could be /dev/md/csi-driver-data-cache

pkg/gce-pd-csi-driver/cache_test.go

Lines changed: 9 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -13,24 +13,29 @@ func TestFetchChunkSizeKiB(t *testing.T) {
1313
}{
1414
{
1515
name: "chunk size is in the allowed range",
16-
cacheSize: "500",
16+
cacheSize: "500GiB",
1717
expChunkSize: "512KiB", //range defined in fetchChunkSizeKiB
1818
},
1919
{
2020
name: "chunk size is set to the range ceil",
21-
cacheSize: "30000000",
21+
cacheSize: "30000000GiB",
2222
expChunkSize: "1048576KiB", //range defined in fetchChunkSizeKiB - max 1GiB
2323
},
2424
{
2525
name: "chunk size is set to the allowed range floor",
26-
cacheSize: "100",
26+
cacheSize: "100GiB",
2727
expChunkSize: "160KiB", //range defined in fetchChunkSizeKiB - min 160 KiB
2828
},
2929
{
3030
name: "cacheSize set to KiB also sets the chunk size to range floor",
31-
cacheSize: "1",
31+
cacheSize: "1GiB",
3232
expChunkSize: "160KiB", //range defined in fetchChunkSizeKiB - min 160 KiB
3333
},
34+
{
35+
name: "chunk size with GiB string parses correctly",
36+
cacheSize: "375GiB",
37+
expChunkSize: "384KiB",
38+
},
3439
{
3540
name: "invalid cacheSize",
3641
cacheSize: "fdfsdKi",

0 commit comments

Comments
 (0)