aboutsummaryrefslogtreecommitdiff
path: root/src/zenstore/cache/cacherpc.cpp
diff options
context:
space:
mode:
authorDan Engelbrecht <[email protected]>2024-05-08 13:02:10 +0200
committerGitHub Enterprise <[email protected]>2024-05-08 13:02:10 +0200
commit1c6236576160630d6321b421c23074208a7f3d38 (patch)
treea1dd1db7c66d72355ffa6cf62dfa71f3d49771e0 /src/zenstore/cache/cacherpc.cpp
parent5.5.2-pre0 (diff)
downloadzen-1c6236576160630d6321b421c23074208a7f3d38.tar.xz
zen-1c6236576160630d6321b421c23074208a7f3d38.zip
return as missing if out of range chunk (#78)
* treat invalid partial chunk request as a miss
Diffstat (limited to 'src/zenstore/cache/cacherpc.cpp')
-rw-r--r--src/zenstore/cache/cacherpc.cpp44
1 files changed, 24 insertions, 20 deletions
diff --git a/src/zenstore/cache/cacherpc.cpp b/src/zenstore/cache/cacherpc.cpp
index d2625b97c..903033085 100644
--- a/src/zenstore/cache/cacherpc.cpp
+++ b/src/zenstore/cache/cacherpc.cpp
@@ -1680,16 +1680,17 @@ CacheRpcHandler::WriteGetCacheChunksResponse([[maybe_unused]] const CacheRequest
}
else
{
- ZEN_WARN(
- "Failed to get partial chunk for attachment {}/{}/{} (rawsize: {}, offset: {}, size: {}). Sending full "
- "chunk",
- Namespace,
- Request.Key->Key.Bucket,
- Request.Key->ChunkId,
- Request.Value.DecodeRawSize(),
- Request.RequestedOffset,
- Request.RequestedSize)
- RpcResponse.AddAttachment(CbAttachment(Request.Value, Request.Key->ChunkId));
+ ZEN_WARN("GETCACHECHUNKS MISS (rawsize: {}, offset: {}, size: {}) - '{}/{}/{}/{}' in {}",
+ Namespace,
+ Request.Key->Key.Bucket,
+ Request.Key->Key.Hash,
+ Request.Key->ValueId,
+ Request.Value.DecodeRawSize(),
+ Request.RequestedOffset,
+ Request.RequestedSize,
+ NiceLatencyNs(Request.ElapsedTimeUs * 1000));
+ m_CacheStats.MissCount++;
+ Request.Exists = false;
}
}
else
@@ -1702,16 +1703,19 @@ CacheRpcHandler::WriteGetCacheChunksResponse([[maybe_unused]] const CacheRequest
Writer.AddInteger("RawSize"sv, Request.RawSize);
}
- ZEN_DEBUG("GETCACHECHUNKS HIT - '{}/{}/{}/{}' {} '{}' ({}) in {}",
- Namespace,
- Request.Key->Key.Bucket,
- Request.Key->Key.Hash,
- Request.Key->ValueId,
- NiceBytes(Request.RawSize),
- Request.IsRecordRequest ? "Record"sv : "Value"sv,
- Request.Source ? Request.Source->Url : "LOCAL"sv,
- NiceLatencyNs(Request.ElapsedTimeUs * 1000));
- m_CacheStats.HitCount++;
+ if (Request.Exists)
+ {
+ ZEN_DEBUG("GETCACHECHUNKS HIT - '{}/{}/{}/{}' {} '{}' ({}) in {}",
+ Namespace,
+ Request.Key->Key.Bucket,
+ Request.Key->Key.Hash,
+ Request.Key->ValueId,
+ NiceBytes(Request.RawSize),
+ Request.IsRecordRequest ? "Record"sv : "Value"sv,
+ Request.Source ? Request.Source->Url : "LOCAL"sv,
+ NiceLatencyNs(Request.ElapsedTimeUs * 1000));
+ m_CacheStats.HitCount++;
+ }
}
else if (!EnumHasAnyFlags(Request.DownstreamPolicy, CachePolicy::Query))
{