| Commit message (Collapse) | Author | Age | Files | Lines |
| ... | |
| | |
| |
| |
| |
| |
| |
| | |
This change primarily introduces improved logic for dealing with sending data from file references.
This is intended to reduce the amount of memory-mapping we end up doing when sending data from files. Windows now uses `TransmitFile` to send file data more efficiently using kernel-side I/O, but Linux/Mac basically behaves as before since they don't offer any true async file I/O support via asio. This should be implemented separately using a background I/O thread pool.
This PR also includes improved memory management for http/asio with reduced allocation counts, and a fix for a potential use-after-free in very high load scenarios.
|
| | |
| |
| |
| |
| | |
* remove unreferenced local in projectstore_cmd
* fix minor atomic memory issue in RotatingFileSink
|
| | |
| |
| |
| |
| |
| |
| |
| | |
commands (#706)
* added `--exclude-folders` to `zen upload`, `zen download` and `zen diff`
added `--exclude-extensions` to `zen upload` and `zen diff`
excluded folder names are now matched by folder name in subfolders in addition to root level folders
* allow multiple token separators
|
| | | |
|
| | |
| |
| |
| | |
sending error to Sentry (#705)
|
| | |
| |
| |
| |
| |
| |
| |
| |
| | |
- Improvement: Validate chunk hashes when dechunking files in oplog import
- Improvement: Use stream decompression when dechunking files
- Improvement: When assembling blocks for oplog export, make sure we keep under/at block size limit
- Improvement: Make cancelling of oplog import more responsive
- Improvement: Use decompress to composite to avoid allocating a new memory buffer for uncompressed chunks during oplog import
- Improvement: Reduce memory buffer size and allocate it on demand when writing multiple chunks to block store
- Improvement: Reduce lock contention when fetching/checking existence of chunks in block store
|
| | | |
|
| | |
| |
| | |
* Avoid rendering user text input as HTML
|
| | | |
|
| |/
|
|
| |
* optimize scavenge discovery by iterate over chunks only instead of iterating through all chunks in the scavenged files
* refactor scavenge lookup
|
| |
|
|
|
| |
minimises time spent doing setup work after the deadline has expired
also added log output with deadline/timeout information
|
| |
|
|
|
|
|
| |
* Add base port getter and set the dll directory for plugin dependencies
* Use UTF8 for dll paths
* Rename BasePort to m_BasePort for consistency
|
| |\ |
|
| | |
| |
| |
| | |
* optimize FindScavengeContent
* optimize GetValidFolderContent
|
| | | |
|
| | |
| |
| |
| | |
When changing the default limit-overwrite behavior, a unit test surfaced a bug where an put of data with overwrite cache policy would not get propagated via zen's built-in upstream mechanism with a matching overwrite cache policy to the upstream. This change ensures that it does and leaves the unit test configured to exercise this scenario.
|
| |/ |
|
| |
|
| |
* changed some logging string so they don't get caught in CI logging
|
| |
|
|
| |
* fix check for scavenged path matching target path
|
| |
|
|
|
|
|
|
|
|
| |
- Feature: `zen oplog-export`, `zen oplog-import` and `zen oplog-download` now has options to boost workers
- `--boost-worker-count` - Increase the number of worker threads - may cause computer to be less responsive
- `--boost-worker-memory` - Increase the limit where we write downloaded data to temporary storage to conserve space - may cause computer to be less responsive due to high memory usage
- `--boost-workers` - Enables both 'boost-worker-count' and 'boost-worker-memory' - may cause computer to be less responsive
- Improvement: Refactored boost options for `zen builds` operations `upload`, `download`, `diff`, `prime-cache`, `fetch-blob` and `validate-part`
- `--boost-worker-count` - Increase the number of worker threads - may cause computer to be less responsive
- `--boost-worker-memory` - Increase the limit where we write downloaded data to temporary storage to conserve space - may cause computer to be less responsive due to high memory usage
- `--boost-workers` - Enables both 'boost-worker-count' and 'boost-worker-memory' - may cause computer to be less responsive
|
| | |
|
| |
|
|
| |
- Bugfix: Upload of oplogs could reference multiple blocks for the same chunk causing redundant downloads of blocks
- Improvement: Use the improved block reuse selection function from zen builds upload in zen oplog-export to reduce oplog download size
|
| |
|
| |
* show source stats for jupiter/cache
|
| |
|
|
|
|
|
|
| |
this change adds OTEL tracing to a few places
* Top-level application lifecycle (config/init/cleanup, main loop)
* http.sys requests
it also brings some otlptrace optimizations and dynamic configuration of tracing. OTLP tracing is currently always disabled
|
| | |
|
| |
|
|
| |
* refactored `HttpServer` so all subclass member functions are proctected, to make it easier to extend base functionality
* added API service, can be used to enumerate registered endpoints (at `/api`). Currently only very basic information is provided
|
| | |
|
| |
|
| |
* fix validation during stream decompress of zero-size rawsize
|
| |
|
|
|
| |
executed in the destructor (#683)
don't call WriteChunks in batch operation if no chunks needs to be written
|
| |
|
|
| |
* add --zen-cache-upload option to zen oplog-import command
* fix buildstoragecache to not hold on to possibly materialized buffers
|
| | |
|
| | |
|
| | |
|
| |
|
| |
* implement --dedicated option on asio http server
|
| |
|
|
| |
* catch exception leaks in windows thread pool
* make non-assert exception an error, assert is kept as warning as it is already reported
|
| | |
|
| |
|
|
|
| |
* use fixed vectors for batch requests
* refactor cache batch value put/get to not execute code that can throw execeptions in destructor
* extend test with multi-bucket requests
|
| |
|
| |
* add checkes to protect against access violation due to failed disk read
|
| | |
|
| |
|
|
| |
snapshot (#673)
|
| |
|
|
| |
exception (#672)
|
| | |
|
| |
|
|
|
| |
- Improvement: Deeper validation of data when scrub is activated (cas/cache/project)
- Improvement: Enabled more multi threading when running scrub operations
- Improvement: Added means to force a scrub operation at startup with a new release using ZEN_DATA_FORCE_SCRUB_VERSION variable in xmake.lua
|
| | |
|
| |
|
| |
* fix source file offset in DecompressToStream implementations
|
| |
|
|
| |
with RawSize = 0 if the offset was out of bounds for the value. (#666)
|
| | |
|
| |
|
|
|
| |
* Eliminate spurious `FlushFileBuffers` calls on Windows by tracking writes
* Make cache log file creation optional
|
| |
|
|
|
| |
This change adds support for non-regex matching of routes. Instead of using regex patterns you can associate matcher functions with pattern names and string literal components are identified and matched directly.
Also implemented tests for `HttpRequestRouter` class.
|
| |
|
| |
* add --append option and improve state handling when using downloads for `zen builds download`
|