aboutsummaryrefslogtreecommitdiff
path: root/zenserver/upstream/upstreamcache.cpp
diff options
context:
space:
mode:
authorDan Engelbrecht <[email protected]>2022-09-21 23:11:35 +0200
committerGitHub <[email protected]>2022-09-21 14:11:35 -0700
commitaefab0aa2975beaaeaf1a8760689c6cca4f3b114 (patch)
tree0cbcb9bdbed9d943c1c82050572065a0dfd8729a /zenserver/upstream/upstreamcache.cpp
parentlogging - don't do formatting of messages the will not be logged (#169) (diff)
downloadzen-aefab0aa2975beaaeaf1a8760689c6cca4f3b114.tar.xz
zen-aefab0aa2975beaaeaf1a8760689c6cca4f3b114.zip
Add elapsed seconds per individual request from upstream (#167)
Diffstat (limited to 'zenserver/upstream/upstreamcache.cpp')
-rw-r--r--zenserver/upstream/upstreamcache.cpp45
1 files changed, 32 insertions, 13 deletions
diff --git a/zenserver/upstream/upstreamcache.cpp b/zenserver/upstream/upstreamcache.cpp
index 6976e5bed..1aa195469 100644
--- a/zenserver/upstream/upstreamcache.cpp
+++ b/zenserver/upstream/upstreamcache.cpp
@@ -307,12 +307,14 @@ namespace detail {
CbPackage Package;
CbObject Record;
+ double ElapsedSeconds = 0.0;
if (!Result.Error)
{
std::string_view BlobStoreNamespace = GetActualBlobStoreNamespace(Session, Namespace);
CloudCacheResult RefResult =
Session.GetRef(BlobStoreNamespace, CacheKey.Bucket, CacheKey.Hash, ZenContentType::kCbObject);
AppendResult(RefResult, Result);
+ ElapsedSeconds = RefResult.ElapsedSeconds;
m_Status.SetFromErrorCode(RefResult.ErrorCode, RefResult.Reason);
@@ -340,7 +342,7 @@ namespace detail {
}
}
- OnComplete({.Request = *Request, .Record = Record, .Package = Package});
+ OnComplete({.Request = *Request, .Record = Record, .Package = Package, .ElapsedSeconds = ElapsedSeconds});
}
return Result;
@@ -392,11 +394,13 @@ namespace detail {
CacheChunkRequest& Request = *RequestPtr;
IoBuffer Payload;
+ double ElapsedSeconds = 0.0;
CompressedBuffer Compressed;
if (!Result.Error)
{
std::string_view BlobStoreNamespace = GetActualBlobStoreNamespace(Session, Namespace);
const CloudCacheResult BlobResult = Session.GetCompressedBlob(BlobStoreNamespace, Request.ChunkId);
+ ElapsedSeconds = BlobResult.ElapsedSeconds;
Payload = BlobResult.Response;
AppendResult(BlobResult, Result);
@@ -410,10 +414,11 @@ namespace detail {
if (Compressed)
{
- OnComplete({.Request = Request,
- .RawHash = IoHash::FromBLAKE3(Compressed.GetRawHash()),
- .RawSize = Compressed.GetRawSize(),
- .Value = Payload});
+ OnComplete({.Request = Request,
+ .RawHash = IoHash::FromBLAKE3(Compressed.GetRawHash()),
+ .RawSize = Compressed.GetRawSize(),
+ .Value = Payload,
+ .ElapsedSeconds = ElapsedSeconds});
}
else
{
@@ -438,6 +443,7 @@ namespace detail {
CacheValueRequest& Request = *RequestPtr;
IoBuffer Payload;
+ double ElapsedSeconds = 0.0;
CompressedBuffer Compressed;
if (!Result.Error)
{
@@ -445,7 +451,8 @@ namespace detail {
IoHash PayloadHash;
const CloudCacheResult BlobResult =
Session.GetInlineBlob(BlobStoreNamespace, Request.Key.Bucket, Request.Key.Hash, PayloadHash);
- Payload = BlobResult.Response;
+ ElapsedSeconds = BlobResult.ElapsedSeconds;
+ Payload = BlobResult.Response;
AppendResult(BlobResult, Result);
@@ -476,10 +483,11 @@ namespace detail {
if (Compressed)
{
- OnComplete({.Request = Request,
- .RawHash = IoHash::FromBLAKE3(Compressed.GetRawHash()),
- .RawSize = Compressed.GetRawSize(),
- .Value = Payload});
+ OnComplete({.Request = Request,
+ .RawHash = IoHash::FromBLAKE3(Compressed.GetRawHash()),
+ .RawSize = Compressed.GetRawSize(),
+ .Value = Payload,
+ .ElapsedSeconds = ElapsedSeconds});
}
else
{
@@ -897,7 +905,10 @@ namespace detail {
for (size_t Index = 0; CbFieldView Record : Results)
{
CacheKeyRequest* Request = Requests[Index++];
- OnComplete({.Request = *Request, .Record = Record.AsObjectView(), .Package = BatchResponse});
+ OnComplete({.Request = *Request,
+ .Record = Record.AsObjectView(),
+ .Package = BatchResponse,
+ .ElapsedSeconds = Result.ElapsedSeconds});
}
return {.Bytes = Result.Bytes, .ElapsedSeconds = Result.ElapsedSeconds, .Success = true};
@@ -1040,7 +1051,11 @@ namespace detail {
RawHash = IoHash::Zero;
}
}
- OnComplete({.Request = Request, .RawHash = RawHash, .RawSize = RawSize, .Value = std::move(Payload)});
+ OnComplete({.Request = Request,
+ .RawHash = RawHash,
+ .RawSize = RawSize,
+ .Value = std::move(Payload),
+ .ElapsedSeconds = Result.ElapsedSeconds});
}
return {.Bytes = Result.Bytes, .ElapsedSeconds = Result.ElapsedSeconds, .Success = true};
@@ -1166,7 +1181,11 @@ namespace detail {
RawHash = IoHash::Zero;
}
}
- OnComplete({.Request = Request, .RawHash = RawHash, .RawSize = RawSize, .Value = std::move(Payload)});
+ OnComplete({.Request = Request,
+ .RawHash = RawHash,
+ .RawSize = RawSize,
+ .Value = std::move(Payload),
+ .ElapsedSeconds = Result.ElapsedSeconds});
}
return {.Bytes = Result.Bytes, .ElapsedSeconds = Result.ElapsedSeconds, .Success = true};