aboutsummaryrefslogtreecommitdiff
path: root/zenstore/blockstore.cpp
Commit message (Collapse)AuthorAgeFilesLines
* moved source directories into `/src` (#264)Stefan Boberg2023-05-021-1312/+0
| | | | | | * moved source directories into `/src` * updated bundle.lua for new `src` path * moved some docs, icon * removed old test trees
* made Ref<> constructor explicit (#262)Stefan Boberg2023-04-271-4/+4
| | | This change makes the Ref<> constructor explicit, which can help avoid unnecessary overheads and other accidents
* bugfixes (#261)Dan Engelbrecht2023-04-271-0/+5
| | | | | * Don't try to GC if now blocks to GC was found, regardless if we have locations in memory * Don't let exception leak from scope guard as throw in destructor will abort application * changelog
* Safely handle missing blocks when doing garbage collection in block store ↵Dan Engelbrecht2023-04-261-5/+18
| | | | data (#259)
* 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
* oplog and cache stats (#244)Dan Engelbrecht2023-04-211-1/+1
| | | | | | | | | | | | | | | | * basic oplog stats * add GetValueStats to cache store * RwLock::ExclusiveLockScope -> RwLock::SharedLockScope * add rawhash and attachment count to CacheValueStats * added cache-stats and project-stats commands * add cast to make Mac overload detection happy * fix accept type in cache-stats command * Add options to project-stats command * use resource paths for stats in project store * use resource paths for stats in cache * fix cache-info and project-info url discriminator * more control over details$ output * cleanup * changelog
* tweaks for enabling unity buildsStefan Boberg2023-04-191-2/+14
| | | | | | | | | | 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") ```
* reduce gc log spam (INFO -> DEBUG) (#199)Dan Engelbrecht2022-12-021-8/+8
|
* Fix disk usage stats (#194)Dan Engelbrecht2022-11-241-12/+13
| | | | | | | | * 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
* Don't resize block store block file to max size at creation (#193)Dan Engelbrecht2022-11-231-6/+7
| | | | * Don't resize block store block file to max size at creation * changelog
* Remove legacy code (#161)Dan Engelbrecht2022-09-081-211/+0
| | | | * changelog * remove obsolete legacy code
* merged from mainStefan Boberg2022-06-161-74/+151
|
* Always block GC of current write blockDan Engelbrecht2022-05-311-0/+4
|
* Make sure we can properly create the block file before assigning it for useDan Engelbrecht2022-05-271-14/+18
|
* Add catch2 support (#101)Stefan Boberg2022-05-201-6/+0
| | | | | | | Added option to use catch2 for unit tests Currently both doctest and catch2 are supported via some compatibility macros. doctest is the default, and ZEN_USE_CATCH2 needs to be defined to switch to catch2. Our goal is to evaluate how well catch2 works and switch to catch2 if everything pans out since UE5 now supports using catch2 for unit tests.
* Merge pull request #89 from EpicGames/de/namespacesv1.0.1.5Dan Engelbrecht2022-05-091-30/+10
|\ | | | | Add namespacecachestore layer to allow multiple structured cache namespaces
| * Added GetDirectoryContent utilityDan Engelbrecht2022-05-061-30/+10
| |
* | Make sure blockstore owner and block store state does not get out of sync ↵Dan Engelbrecht2022-05-081-50/+25
|/ | | | | | when fetching a chunk Move MarkAsDeleteOnClose() to IoBuffer(ExtendedCore) and set it on close, SetFileInformationByHandle sometimes fails if done in parallel with FileMapping
* handle that more than one block can be written to in parallelDan Engelbrecht2022-05-031-12/+24
|
* unused variable in test fixDan Engelbrecht2022-05-031-4/+4
|
* threading test for blockstoreDan Engelbrecht2022-05-031-1/+91
|
* more tests for block storeDan Engelbrecht2022-05-031-13/+329
|
* cleanupDan Engelbrecht2022-05-031-1/+1
|
* clean up any incomplete blocks if ReclaimSpace failsDan Engelbrecht2022-05-021-136/+153
|
* Make sure we close all block files when dropping a cache bucketDan Engelbrecht2022-05-021-0/+11
|
* simplify lambda capturesDan Engelbrecht2022-05-021-16/+6
|
* Refactor WriteChunk to not need callbackDan Engelbrecht2022-05-021-13/+6
|
* Don't use "GC" term in block storeDan Engelbrecht2022-05-021-2/+2
|
* cleanupDan Engelbrecht2022-05-021-25/+25
|
* add back gc space reclaim callDan Engelbrecht2022-05-021-5/+6
|
* use std::vector<std::pair>> instead of mapDan Engelbrecht2022-05-021-4/+4
|
* refactor structured cache to use blockstore migrateDan Engelbrecht2022-05-021-3/+3
|
* Move bulk of MigrateLegacyData to blockstore.cppDan Engelbrecht2022-05-021-4/+215
|
* cleanupDan Engelbrecht2022-05-011-8/+8
|
* reimplement CasContainerStrategy::ScrubDan Engelbrecht2022-05-011-0/+82
|
* remove m_TotalSize for blockstoreDan Engelbrecht2022-05-011-21/+23
| | | | fix scrub logic in structured cache store
* collectgarbage for compactcas and structured cache uses shared implementationDan Engelbrecht2022-05-011-23/+26
|
* threading issues resolvedDan Engelbrecht2022-05-011-67/+46
|
* first pass at generic block store with gcDan Engelbrecht2022-04-301-0/+508
|
* rename EMode to ModeDan Engelbrecht2022-04-011-2/+2
|
* Truncate migrated and new blocks after gc to save disk spaceDan Engelbrecht2022-03-311-0/+6
|
* Remove redundant lock in BlockStoreFileDan Engelbrecht2022-03-311-28/+1
|
* keep all block files open from startDan Engelbrecht2022-03-311-17/+10
|
* Migration now works in larger disk IO chunksDan Engelbrecht2022-03-311-2/+2
| | | | BasicFile and CasLogFile now has new explicit modes instead of create true/false
* review feedbackDan Engelbrecht2022-03-311-13/+12
|
* cleanup duplicate code in CollectGarbageDan Engelbrecht2022-03-311-2/+0
|
* Add separate blockstore.h/.cppDan Engelbrecht2022-03-311-0/+273