| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
|
|
|
|
|
|
|
| |
* make sure to close log file when resetting log
* drop entries that refers to missing blocks
* Don't scrub keys that has been rewritten
* currectly count added bytes / m_TotalSize
* fix negative sleep time in BlockStoreFile::Open()
* be defensive when fetching log position
* append to log files *after* we updated all state successfully
* explicitly close stuff in destructors with exception catching
* clean up empty size block store files
|
| |
|
|
|
| |
- Feature: `zen builds pause`, `zen builds resume` and `zen builds abort` commands to control a running `zen builds` command
- `--process-id` the process id to control, if omitted it tries to find a running process using the same executable as itself
- Improvement: Process report now indicates if it is pausing or aborting
|
| |
|
|
|
| |
* Don't count a miss twice for memory stats if the entry can't be found
* changelog
|
| |
|
|
| |
- Bugfix: Flush the last block before closing the last new block written to during blockstore compact. UE-291196
- Feature: Drop unreachable CAS data during GC pass. UE-291196
|
| |
|
| |
Improvement: Faster oplog validate to reduce GC wall time and disk I/O pressure
|
| |
|
|
| |
* check low disk space condition more frequently and trigger GC when low water mark is reached
* show waited time when waiting for zenserver instance to exit
|
| |
|
|
| |
* don't hold exclusive locks while deleting files from a dropped bucket/namespace
* cleaner detection of missing namespace when issuing a drop
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* use ParallelWork in rpc playback
* use ParallelWork in projectstore
* use ParallelWork in buildstore
* use ParallelWork in cachedisklayer
* use ParallelWork in compactcas
* use ParallelWork in filecas
* don't set abort flag in ParallelWork destructor
* add PrepareFileForScatteredWrite for temp files in httpclient
* Use PrepareFileForScatteredWrite when stream-decompressing files
* be more relaxed when deleting temp files
* allow explicit zen-cache when using direct host url without resolving
* fix lambda capture when writing loose chunks
* no delay when attempting to remove temp files
|
| |
|
|
| |
memory for no reason (#397)
|
| |
|
|
|
| |
- Improvement: Cleaned up snapshot writing for CompactCAS/FileCas/Cache/Project stores
- Improvement: Safer recovery when failing to delete log for CompactCAS/FileCas/Cache/Project stores
- Improvement: Added log file reset when writing snapshot at startup for FileCas
|
| |
|
|
| |
Feature: Add per bucket cache configuration (Lua options file only)
Improvement: --cache-memlayer-sizethreshold is now deprecated and has a new name: --cache-bucket-memlayer-sizethreshold to line up with per cache bucket configuration
|
| |
|
| |
* tweak block iteration chunk sizes
|
| |
|
| |
* make sure we remove the cas log file when writing full index at startup
|
| |
|
|
|
| |
contention (#385)
* make RemoveExpiredData and PreCache serial to reduce CPU overhead / lock contention
|
| |
|
|
|
| |
- Improvement: Optimize block compact reducing memcpy operations
- Improvement: Handle padding of block store blocks when compacting to avoid excessive flusing of write buffer
- Improvement: Handle padding when writing oplog index snapshot to avoid unnecessary flushing of write buffer
|
| |
|
| |
* optimize cache bucket snapshot and sidecar writing
|
| |
|
|
| |
* oom and ood exceptions in GC are now treated as warnings instead of errors
|
| |
|
|
|
| |
* block writing GC state/info if disk is full
* fix if/else on error while writing gc state
|
| |
|
| |
* Bugfix: Add explicit lambda capture in CasContainer::IterateChunks to avoid accessing state data references
|
| |
|
|
| |
* validate incoming CbObject to cache when receiving a package
* validate records when fetched from store in cache before parsing them
|
| | |
|
| | |
|
| |
|
| |
- Feature: zenserver option `--buildstore-disksizelimit` to set an soft upper limit for build storage data. Defaults to 1TB.
|
| |
|
|
|
| |
* save payload size in log for buildstore
* read/write access times and manifest for buldstore
* use retry when removing temporary files
|
| |
|
| |
- Feature: `zen builds` auth option `--oidctoken-exe-path` to let zen run the OidcToken executable to get and refresh authentication token
|
| |
|
| |
* do cache bucket flush/write snapshot as part of compact to reduce disk I/O
|
| |
|
| |
- Bugfix: Long file paths now works correctly on Windows
|
| |
|
|
|
|
| |
- Feature: zenserver: Add command line option `--gc-buildstore-duration-seconds` to control GC life time of build store data
- Improvement: ELF and MachO executable files are no longer chunked
- Improvement: Compress chunks in blocks that encloses a full file (such as small executables)
- Bugfix: Strip path delimiter at end of string in StringToPath
|
| |
|
|
|
|
|
|
|
| |
- **EXPERIMENTAL** `zen builds`
- Feature: `--zen-cache-host` option for `upload` and `download` operations to use a zenserver host `/builds` endpoint for storing build blob and blob metadata
- Feature: New `/builds` endpoint for caching build blobs and blob metadata
- `/builds/{namespace}/{bucket}/{buildid}/blobs/{hash}` `GET` and `PUT` method for storing and fetching blobs
- `/builds/{namespace}/{bucket}/{buildid}/blobs/putBlobMetadata` `POST` method for storing metadata about blobs
- `/builds/{namespace}/{bucket}/{buildid}/blobs/getBlobMetadata` `POST` method for fetching metadata about blobs
- `/builds/{namespace}/{bucket}/{buildid}/blobs/exists` `POST` method for checking existance of blobs
|
| |
|
|
|
|
| |
* Added EASTL to help with eliminating memory allocations
* Applied EASTL to eliminate memory allocations, primarily by using `fixed_vector` et al to use stack allocations / inline struct allocations
Reduces memory events in traces by close to a factor of 10 in test scenario (starting editor for project F)
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
| |
* add modification tick to filesystem traversal
* add ShowDetails option to ProgressBar
* log callstack if we terminate process
* handle chunking if MaxSize > 1MB
* BasicFile write helpers and WriteToTempFile simplifications
* bugfix for CompositeBuffer::IterateRange when using DecompressToComposite for actually comrpessed data
revert of earlier optimization
* faster compress/decompress for large disk-based files
* enable progress feedback in IoHash::HashBuffer
* add payload validation in HttpClient::Get
* fix range requests (range is including end byte)
* remove BuildPartId for blob/block related operations in builds api
|
| | |
|
| |
|
|
|
|
| |
add DirectoryContent::IncludeFileSizes
add DirectoryContent::IncludeAttributes
add multithreaded GetDirectoryContent
use multithreaded GetDirectoryContent in workspace folder scanning
|
| |
|
|
|
|
| |
move jupiter.h/cpp -> zenutil
move packageformat.h/.cpp -> zenhttp
zenutil now depends on zenhttp instead of the inverse
|
| |
|
|
| |
* Suppress progress report callback if oplog import detects oplog with zero ops
* output error code when catching system errors
|
| |
|
|
|
|
|
| |
With this change, LLM tags are assigned using the name,parent tuple rather than just by name only. This allows tag hierarchies like `cache/store` and `project/store` which would previously get collapsed into the first pair seen when registering the `store` tag.
This PR also adds some more LLM tag annotations to more accurately associate memory allocations with subsystems
In addition, this PR also tweaks the frequency of timer marker events to increase the resolution in Insights and avoid some cases of Insights deciding that marker events are too far apart since we don't allocate as frequently as UE tends to.
|
| |
|
|
|
|
| |
- Improvement: Batch fetch record attachments when appropriate
- Improvement: Reduce memory buffer allocation in BlockStore::IterateBlock
- Improvement: Tweaked BlockStore::IterateBlock logic when to use threaded work (at least 4 chunks requested)
- Bugfix: CasContainerStrategy::IterateChunks could give wrong payload/index when requesting 1 or 2 chunks
|
| |
|
| |
This change adds more instrumentation for memory tracking, so that as little as possible comes through as Unknown in Insights analysis.
|
| |
|
| |
Feature: zen command oplog-export and oplog-import now supports --builds remote target using the Jupiter builds API
|
| |
|
|
|
| |
* added LLM tag to properly tag RPC allocations
* annotated some more httpsys functions with memory tags
* only emit memory scope events if the active tag is different from the new tag
|
| |
|
| |
Feature: Project store "getchunks" rpc call /prj/{project}/oplog/{log}/rpc extended to accept both CAS (RawHash) and Id (Oid) identifiers as well as partial ranges
|
| |
|
| |
some fixes to make everything build using unity build mode. Mostly moved code from anonymous namespaces into local impl namespace to avoid ambiguity in name resolution.
|
| | |
|
| |
|
|
|
| |
* eliminated allocation in SetCurrentThreadName
* reduced memory allocator activity in cache RPC response building
* reduced allocations in compact binary building
|
| | |
|
| |
|
|
|
| |
* added FLLMTag which can be used to register memory tags outside of core
* changed `UE_MEMSCOPE` -> `ZEN_MEMSCOPE` for consistency
* instrumented some subsystems with dynamic tags
|
| |
|
|
|
|
| |
* Make sure we don't throw exception from worker thread
* secure async project flush
* secure workspaces
* spelling
|
| |
|
|
|
| |
* use plain sorted array instead of map of vectors
* reserve vectors up front = 5% perf increase
* don't do batch read of chunks if we have a single chunk -> 1% perf gain
|
| |
|
|
| |
* add missing shardlock during compact in filecas
* add warning log when filecas fails to open a file it expects to be present
|
| |
|
|
|
|
| |
* Allow caller to control threshold for bulk-loading chunks in IterateChunks
* use smaller batch chunk reading for /fileinfos and /chunkinfos as we do not intend to read the payload
* use smaller batch read buffer when just querying for size of attachments
|