aboutsummaryrefslogtreecommitdiff
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
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)
-rw-r--r--zenserver/upstream/upstreamcache.cpp45
-rw-r--r--zenserver/upstream/upstreamcache.h3
2 files changed, 35 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};
diff --git a/zenserver/upstream/upstreamcache.h b/zenserver/upstream/upstreamcache.h
index 4a4bede0f..108c097da 100644
--- a/zenserver/upstream/upstreamcache.h
+++ b/zenserver/upstream/upstreamcache.h
@@ -75,6 +75,7 @@ struct CacheRecordGetCompleteParams
CacheKeyRequest& Request;
const CbObjectView& Record;
const CbPackage& Package;
+ double ElapsedSeconds{};
};
using OnCacheRecordGetComplete = std::function<void(CacheRecordGetCompleteParams&&)>;
@@ -85,6 +86,7 @@ struct CacheValueGetCompleteParams
IoHash RawHash;
uint64_t RawSize;
IoBuffer Value;
+ double ElapsedSeconds{};
};
using OnCacheValueGetComplete = std::function<void(CacheValueGetCompleteParams&&)>;
@@ -95,6 +97,7 @@ struct CacheChunkGetCompleteParams
IoHash RawHash;
uint64_t RawSize;
IoBuffer Value;
+ double ElapsedSeconds{};
};
using OnCacheChunksGetComplete = std::function<void(CacheChunkGetCompleteParams&&)>;