diff options
| author | Dan Engelbrecht <[email protected]> | 2025-03-07 09:58:20 +0100 |
|---|---|---|
| committer | GitHub Enterprise <[email protected]> | 2025-03-07 09:58:20 +0100 |
| commit | 9b24647facccc9c7848a52f1f4c5e32055bf2f01 (patch) | |
| tree | d798889a2b3f6a0d72331890b75e92b0159ce0c3 /src/zenutil/jupiter/jupiterbuildstorage.cpp | |
| parent | reduced memory churn using fixed_xxx containers (#236) (diff) | |
| download | zen-9b24647facccc9c7848a52f1f4c5e32055bf2f01.tar.xz zen-9b24647facccc9c7848a52f1f4c5e32055bf2f01.zip | |
partial block fetch (#298)
- Improvement: Do partial requests of blocks if not all of the block is needed
- Improvement: Better progress/statistics on download
- Bugfix: Ensure that temporary folder for Jupiter downloads exists during verify phase
Diffstat (limited to 'src/zenutil/jupiter/jupiterbuildstorage.cpp')
| -rw-r--r-- | src/zenutil/jupiter/jupiterbuildstorage.cpp | 10 |
1 files changed, 6 insertions, 4 deletions
diff --git a/src/zenutil/jupiter/jupiterbuildstorage.cpp b/src/zenutil/jupiter/jupiterbuildstorage.cpp index 309885b05..bf89ce785 100644 --- a/src/zenutil/jupiter/jupiterbuildstorage.cpp +++ b/src/zenutil/jupiter/jupiterbuildstorage.cpp @@ -217,13 +217,15 @@ public: return WorkList; } - virtual IoBuffer GetBuildBlob(const Oid& BuildId, const IoHash& RawHash) override + virtual IoBuffer GetBuildBlob(const Oid& BuildId, const IoHash& RawHash, uint64_t RangeOffset, uint64_t RangeBytes) override { ZEN_TRACE_CPU("Jupiter::GetBuildBlob"); - Stopwatch ExecutionTimer; - auto _ = MakeGuard([&]() { m_Stats.TotalExecutionTimeUs += ExecutionTimer.GetElapsedTimeUs(); }); - JupiterResult GetBuildBlobResult = m_Session.GetBuildBlob(m_Namespace, m_Bucket, BuildId, RawHash, m_TempFolderPath); + Stopwatch ExecutionTimer; + auto _ = MakeGuard([&]() { m_Stats.TotalExecutionTimeUs += ExecutionTimer.GetElapsedTimeUs(); }); + CreateDirectories(m_TempFolderPath); + JupiterResult GetBuildBlobResult = + m_Session.GetBuildBlob(m_Namespace, m_Bucket, BuildId, RawHash, m_TempFolderPath, RangeOffset, RangeBytes); AddStatistic(GetBuildBlobResult); if (!GetBuildBlobResult.Success) { |