aboutsummaryrefslogtreecommitdiff
path: root/zenstore/filecas.cpp
Commit message (Collapse)AuthorAgeFilesLines
* moved source directories into `/src` (#264)Stefan Boberg2023-05-021-1452/+0
| | | | | | * moved source directories into `/src` * updated bundle.lua for new `src` path * moved some docs, icon * removed old test trees
* save cache rawsize and rawhash in manifest file instead of log file (#251)Dan Engelbrecht2023-04-211-4/+4
| | | | * save cache rawsize and rawhash in manifest file instead of log file * don't use # as prefix for counts in log
* tweaks for enabling unity buildsStefan Boberg2023-04-191-6/+16
| | | | | | | | | | mostly changes to make sure anonymous namespaces don't clash and a change to avoid windows headers from leaking into other compilation units unity builds are not yet enabled by default, but can be enabled by uncommenting this line in the root `xmake.lua` ``` --add_rules("c++.unity_build") ```
* make sure initialization of a new filecas dont remove the cas manifest file ↵Dan Engelbrecht2023-04-191-1/+37
| | | | | | or tiny/small cas store folders (#246) * make sure initialization of a new filecas doesnt remove the cas manifest file or tiny/small cas store folders * changelog
* Make sure to add any scanned files to the cas registry (#230)Dan Engelbrecht2023-02-151-0/+1
|
* FileCas (#226)Dan Engelbrecht2023-02-131-124/+427
| | | | | * maintain snapshot of disk state in file cas * Add folder scanning to establish initial state for filecas and pre-scrubbing * changelog
* optimizations (#200)Dan Engelbrecht2022-12-071-5/+5
| | | | | | | | | | | | | * Use direct file read and direct buffer allocation for small IoBuffer materalization * Reduce range of materialized data in CompositeBuffer reading CompressedBuffer header reading often only need a small part and not the whole file * reduce lock contention in IoBuffer::Materialize * Reduce parsing of compressed headers Validate header type at decompression * faster CreateDirectories - start from leaf going up and recurse back * optimized BufferHeader::IsValid * Add ValidateCompressedHeader to use when we don't need the actual compressed data Validate that we always get compressed data in CidStore::AddChunk * changelog
* Size based gc trigger (#197)Dan Engelbrecht2022-12-021-3/+3
| | | | | - Feature: Disk size triggered GC, a soft disk usage limit for cache data. - Feature: New option `--gc-disk-size-soft-limit` (command line), `gc.cache.disksizesoftlimit` (lua config) controlling limit for soft disk usage limit. Defaults to zero which disables soft disk usage limit. - Improvement: Disk write pressure in GC log and cleaned up clutter in GC logging.
* reduce gc log spam (INFO -> DEBUG) (#199)Dan Engelbrecht2022-12-021-14/+14
|
* Fix disk usage stats (#194)Dan Engelbrecht2022-11-241-73/+214
| | | | | | | | * Improve tracking of used disk space for filecas and compactcas Add tracking of used disk space for project store Remove ZenCacheStore as GcStorage/GcContributor - underlying ZenCacheNamespace instances register themselves directly - removing this also fixes double reporting of GcStorageSize for namespaces * changelog
* Add `import-project` and `export-project` (#183)Dan Engelbrecht2022-11-181-1/+14
| | | * Add `import-project` and `export-project` command line parsing
* move BasicFile to zenutil to remove zenstore dependency from zen command (#190)Dan Engelbrecht2022-11-171-1/+1
|
* Adjust errors vs warnings messages (#160)Dan Engelbrecht2022-09-081-1/+1
| | | | * demote a number of ZEN_ERROR to ZEN_WARN * changelog
* Make cas storage an hidden implementation detail of CidStore (#130)v0.1.4-pre6v0.1.4-pre5Dan Engelbrecht2022-06-171-48/+63
| | | | | | | | | | | | | | | | | | - Bumped ZEN_SCHEMA_VERSION - CasStore no longer a public API, it is hidden behind CidStore - Moved cas.h from public header folder - CidStore no longer maps from Cid -> Cas, we store entries in Cas under RawHash - CasStore now decompresses data to validate content (matching against RawHash) - CasChunkSet renames to HashKeySet and put in separate header/cpp file - Disabled "Chunk" command for now as it relied on CAS being exposed as a service - Changed CAS http service to Cid http server - Moved "Run" command completely inside ZEN_WITH_EXEC_SERVICES define - Removed "cas.basic" test - Uncommented ".exec.basic" test and added return-skip at start of test - Moved ScrubContext to separate header file - Renamed CasGC to GcManager - Cleaned up configuration passing in cas store classes - Removed CAS stuff from GcContext and clarified naming in class - Remove migration code
* simplify lambda capturesDan Engelbrecht2022-05-021-2/+2
|
* always keep full log but read from index snapshot location if availableDan Engelbrecht2022-04-041-16/+18
|
* rename EMode to ModeDan Engelbrecht2022-04-011-3/+3
|
* Improved GC loggingDan Engelbrecht2022-03-311-6/+41
|
* Migration now works in larger disk IO chunksDan Engelbrecht2022-03-311-3/+3
| | | | BasicFile and CasLogFile now has new explicit modes instead of create true/false
* If open(O_CREAT) is used then a file mode must be givenMartin Ridgers2022-02-211-1/+1
|
* Explicitly set access permissions so we're not affected by process' umaskMartin Ridgers2022-02-211-1/+8
|
* Marked a few file descriptors to be closed on execute (POSIX)Martin Ridgers2022-02-211-1/+1
|
* Format fix.Per Larsson2022-01-221-1/+2
|
* Converted use of _format UDL to fmt::formatMartin Ridgers2022-01-101-10/+6
|
* Missing override decorationMartin Ridgers2022-01-071-1/+1
|
* Enabled POSIX-compatible implementations on MacMartin Ridgers2022-01-071-6/+2
|
* Paths are not wide on non-Windows so WideToUtf8() cannot be usedMartin Ridgers2021-12-151-5/+5
|
* Merged main.Per Larsson2021-12-141-14/+115
|\
| * Implemented filecas.cpp for POSIX platformsMartin Ridgers2021-10-251-2/+92
| |
| * Compile fixes due to std::fs::path's differing character typesMartin Ridgers2021-10-201-4/+7
| |
| * Fixed concrete Visitor to use the correct argument typesMartin Ridgers2021-10-201-2/+2
| |
| * Cross-platform argument to ZEN_DEBUG()Martin Ridgers2021-10-201-1/+1
| |
| * Use cross-platform ExtPathBuilder instead of ExtWideStrBuilderMartin Ridgers2021-10-181-3/+3
| |
| * Merged mainMartin Ridgers2021-10-161-7/+2
| |\
| * \ Merged mainMartin Ridgers2021-10-151-4/+4
| |\ \
| * | | Only include zencore/windows.h on WindowsMartin Ridgers2021-10-121-4/+6
| | | |
| * | | Corrected incorrect casing of include statementsMartin Ridgers2021-10-121-1/+1
| | | |
* | | | Remove Cid to CAS chunk mapping after GC.Per Larsson2021-12-131-0/+2
| | | |
* | | | Added size to GcStorage.Per Larsson2021-12-101-5/+5
| | | |
* | | | Added tombstone flag to file cas.Per Larsson2021-12-081-2/+11
| | | |
* | | | Added CAS total size.Per Larsson2021-11-301-5/+29
| | | |
* | | | gc: added DeletionMode flag to allow gc dry runsStefan Boberg2021-11-011-0/+11
| | | |
* | | | filecas: Fixed debug loggingStefan Boberg2021-11-011-10/+60
| | | |
* | | | cas: fixed some warningsStefan Boberg2021-10-231-5/+9
| | | | | | | | | | | | | | | | unsure why we don't get these when building in VS
* | | | filecas: Added commit log, chunk gcStefan Boberg2021-10-211-6/+89
| | | |
* | | | gc: Added GcStorage base class and hooked it up to CasGcStefan Boberg2021-10-211-6/+10
| | | |
* | | | cas: Adding cas.file.gc test for exercising garbage collection (incomplete)Stefan Boberg2021-10-201-1/+35
| |_|/ |/| |
* | | zencore: Enabled MSC warning 4668 to get warnings when preprocessor macros ↵Stefan Boberg2021-10-151-7/+2
| |/ |/| | | | | | | | | | | | | are used without an explicit definition Also fixed up various code to compile with this, by using ZEN_THIRD_PARTY_INCLUDES_START/ZEN_THIRD_PARTY_INCLUDES_END macros Removed prewindows.h/postwindows.h since they are no longer to be used due to the above
* | clang-formatStefan Boberg2021-10-151-4/+4
|/
* filecas: stress test code to understand access denied errorsStefan Boberg2021-10-081-6/+130
| | | | | | Added stress test for file cas file rename strategy (compiled out by default), to understand behaviour and why we get access denied errors in some cases when opening a file Also added code to ensure source file is deleted in the case where we end up hitting this error condition