summaryrefslogtreecommitdiff
path: root/src/buildtool/storage/large_object_cas.hpp
AgeCommit message (Collapse)Author
2025-03-24LargeObjectCAS: Use TmpFile for splicingMaksim Denisov
...and remove LargeObject
2025-03-24TmpDir: minor refactoringMaksim Denisov
2024-11-14storage: Implement IWYU suggestionsPaul Cristian Sarbu
2024-11-14tpp includes: Add hint for IWYU lintingPaul Cristian Sarbu
IWYU needs to be explicitly instructed how to handle included .tpp files in order to not falsely suggest their removal. Conversely, it also needs to know not to suggest including .tpp files instead of the corresponding .hpp files.
2024-10-07Enable misc-* checks.Maksim Denisov
2024-09-26Fix enum sizes proposed by clang-tidy.Maksim Denisov
Enable performance-enum-size check.
2024-08-30Replace bazel_re::Digest in LargeObjectCASMaksim Denisov
...with ArtifactDigest.
2024-08-27Reformat code to comply with clang-format 18Klaus Aehlig
... while keeping our .clang-format file.
2024-07-05Call uplinking via UplinkerMaksim Denisov
... instead of static calls to GarbageCollector
2024-07-05Use StorageConfig with generation for initialization of Storage's generationsMaksim Denisov
...instead of std::filesystem::path. StorageConfig is extended to return paths of Storage's parts.
2024-07-05Use StorageConfig functionality via Instance()Maksim Denisov
...to track changes during refactoring easier.
2024-06-28Use (un)expected for CAS accessOliver Reiche
2024-04-17Compactification: Obtain storage roots from LocalCAS.Maksim Denisov
2024-04-02LargeBlobs: Splice large objects from external sources.Maksim Denisov
For splicing of large objects from external sources additional checks are performed: * The digest of the spliced result must be equal to the expected digest; * The parts of a spliced tree must be in the storage. Tested: * Regular splicing of large objects; * If the result is unexpected, splicing fails; * If some parts of a tree are missing, splicing fails.
2024-04-02LargeBlobs: Uplink large objects.Maksim Denisov
* Uplink parts of the large entry before entry itself; * Uplink large entries in LargeObjectCAS::GetEntryPath to not split things two times; * Promote spliced tree during uplinking of a large tree entry to properly promote parts of the tree; * Uplink large entries in LocalUplink{Blob, Tree} to support proper uplinking in Action Cache and Target Cache; Tested: * Uplink large blobs and trees; * Uplink a large object that depends on other large objects.
2024-04-02LargeBlobs: Splice large objects implicitly.Maksim Denisov
Implicitly reconstruct objects during regular uplinking of Blobs/Trees.
2024-04-02LargeBlobs: Split large objects.Maksim Denisov
* Add LargeObjectCAS fields for files and trees to LocalCAS; * Add logic for splitting objects located in the main storage. Tested: Splitting of large, small and empty objects.
2024-04-02LargeObjectCAS: Implement auxiliary class for storing error information.Maksim Denisov
2024-04-02LargeObjectCAS: Store large objects.Maksim Denisov
Every large object is keyed by the hash of the result and contains hashes of the parts from which the result can be reconstructed.