mirror of
https://github.com/facebook/sapling.git
synced 2024-10-10 00:45:18 +03:00
5ea2e581c6
Summary: In the legacy lfs extension, LFS blobs were stored as loosefiles on disk, and as we saw with loosefiles for remotefilelog, they can incur a significant overhead to maintain. Due to LFS blobs being large by definition, the number of loose LFS blobs should be reasonable for repack to walk over all of them to chose which one to throw away. A different approach would be to simply store the blobs in an on-disk format that allows automatic size management, and simple indexing. That format is an IndexedLog. This of course doesn't come without drawbacks, the main one being that the IndexedLog API mandate that the full blob is present on insertion, preventing streaming writes to it, the solution is to simply chunk the blobs before writing them to it. While proper streaming is not done just yet, the storage format no longer prevent it from being implemented. Reviewed By: DurhamG Differential Revision: D20633783 fbshipit-source-id: 37a88331e747cf22511aa348da2d30edfa481a60 |
||
---|---|---|
.. | ||
src | ||
Cargo.toml | ||
CMakeLists.txt | ||
RevisionStore.cpp | ||
RevisionStore.h |