aboutsummaryrefslogtreecommitdiff
path: root/src/zenutil/include
diff options
context:
space:
mode:
authorDan Engelbrecht <[email protected]>2025-03-27 16:08:47 +0100
committerGitHub Enterprise <[email protected]>2025-03-27 16:08:47 +0100
commit013ac818cd09c1d31bf9411e00b2bbbf02defa3f (patch)
treecdc94b8fe80f0c5db20f0417d76e5351fe480f4a /src/zenutil/include
parentMerge pull request #317 from ue-foundation/zs/ui-show-cook-artifacts (diff)
downloadzen-013ac818cd09c1d31bf9411e00b2bbbf02defa3f.tar.xz
zen-013ac818cd09c1d31bf9411e00b2bbbf02defa3f.zip
build cache prime (#327)
- Feature: zen `--boost-workers` option to builds `upload`, `download` and `validate-part` that will increase the number of worker threads, may cause computer to be less responsive - Feature: zen `--cache-prime-only` that uploads referenced data from a part to `--zen-cache-host` if it is not already present. Target folder will be untouched.
Diffstat (limited to 'src/zenutil/include')
-rw-r--r--src/zenutil/include/zenutil/buildstoragecache.h7
-rw-r--r--src/zenutil/include/zenutil/workerpools.h3
2 files changed, 9 insertions, 1 deletions
diff --git a/src/zenutil/include/zenutil/buildstoragecache.h b/src/zenutil/include/zenutil/buildstoragecache.h
index 08c936bf5..cab35328d 100644
--- a/src/zenutil/include/zenutil/buildstoragecache.h
+++ b/src/zenutil/include/zenutil/buildstoragecache.h
@@ -42,11 +42,16 @@ public:
};
virtual std::vector<BlobExistsResult> BlobsExists(const Oid& BuildId, std::span<const IoHash> BlobHashes) = 0;
+
+ virtual void Flush(
+ int32_t UpdateInteralMS,
+ std::function<bool(intptr_t Remaining)>&& UpdateCallback = [](intptr_t) { return true; }) = 0;
};
std::unique_ptr<BuildStorageCache> CreateZenBuildStorageCache(HttpClient& HttpClient,
BuildStorageCache::Statistics& Stats,
std::string_view Namespace,
std::string_view Bucket,
- const std::filesystem::path& TempFolderPath);
+ const std::filesystem::path& TempFolderPath,
+ bool BoostBackgroundThreadCount);
} // namespace zen
diff --git a/src/zenutil/include/zenutil/workerpools.h b/src/zenutil/include/zenutil/workerpools.h
index 9683ad720..df2033bca 100644
--- a/src/zenutil/include/zenutil/workerpools.h
+++ b/src/zenutil/include/zenutil/workerpools.h
@@ -21,6 +21,9 @@ WorkerThreadPool& GetMediumWorkerPool(EWorkloadType WorkloadType);
// Worker pool with std::thread::hardware_concurrency() / 8 worker threads, but at least one thread
WorkerThreadPool& GetSmallWorkerPool(EWorkloadType WorkloadType);
+// Worker pool with minimum number of worker threads, but at least one thread
+WorkerThreadPool& GetTinyWorkerPool(EWorkloadType WorkloadType);
+
// Special worker pool that does not use worker thread but issues all scheduled work on the calling thread
// This is useful for debugging when multiple async thread can make stepping in debugger complicated
WorkerThreadPool& GetSyncWorkerPool();