diff options
| author | Dan Engelbrecht <[email protected]> | 2024-05-08 13:02:10 +0200 |
|---|---|---|
| committer | GitHub Enterprise <[email protected]> | 2024-05-08 13:02:10 +0200 |
| commit | 1c6236576160630d6321b421c23074208a7f3d38 (patch) | |
| tree | a1dd1db7c66d72355ffa6cf62dfa71f3d49771e0 /src/zenstore/cache/cacherpc.cpp | |
| parent | 5.5.2-pre0 (diff) | |
| download | zen-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.cpp | 44 |
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)) { |