| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
| |
* don't assert that we have moved bytes if source block is zero size
* handle invalid session ids gracefully
|
| |
|
|
|
|
| |
* resolve relative paths for root path
* block share paths that go outside of root path
* fix test using invalid share_path
* validate that root path is absolute
|
| |
|
| |
* separate collision of shared mutex from failure to create shared mutex
|
| |
|
| |
* Don't try to cache process handle if we don't have a session id
|
| |
|
|
|
|
| |
GCv2 (#93)
- Bugfix: Make sure we monitor and include new project/oplogs created during GCv2
- Bugfix: Make sure we monitor and include new namespaces/cache buckets created during GCv2
|
| |
|
|
| |
* fix alias request capture
* use single config file for workspaces
|
| |
|
|
|
|
|
| |
- Add `zen workspace-share` `--root-path` option - the root local file path of the workspace - if given it will automatically create the workspace before creating the share. If `--workspace` is omitted, an id will be generated from the `--root-path` parameter
- Add `/ws/share/{alias}/` endpoint - a shortcut to `/ws/{workspace_id}/{share_id}/` based endpoints using the alias for a workspace share
- Add `--alias` option to replace `--workspace` and `--share` options for `workspace-share` zen commands
- Rename `zen workspace create` `folder` option to `root-path`
- Rename `zen workspace create` `folder` option to `share-path`
|
| |
|
|
|
|
| |
* cache file size of block on open
* add ability to control size limit for small chunk callback when iterating block
* Add batch fetch of cache values in the GetCacheValues request
|
| |
|
|
|
| |
reduce risk NIC/router failure (#89)
Medium worker pool now uses a minimum of 2 threads (up from 1)
|
| |
|
|
|
| |
* message formatting optimizations
* bump iostorecompression small value threshold to 1MB
|
| | |
|
| |
|
| |
Feature: New 'workspaces' service which allows a user to share a local folder via zenserver. A workspace can have mulitple workspace shares and they provie an HTTP API that is compatible with the project oplog HTTP API. Workspaces and shares are preserved between runs. Workspaces feature is disabled by default - enable with --workspaces-enabled option when launching zenserver.
|
| |
|
| |
Improvement: Don't use "error:" in log messages unless there is an error as Horde CI will pick up that log line and interpret it as an error
|
| |
|
| |
* fix worklatch count in Oplog::IterateChunks
|
| |
|
|
|
| |
* Don't try to validate empty compact binary
* Don't try to free fake memory buffer pointer in iobuffer destructor
|
| |
|
| |
Improvement: Refactored IterateChunks to allow reuse in diskcachelayer and hide public GetBlockFile() function in BlockStore
|
| |
|
|
| |
* fix partial cache miss logging
* Handle zero size partial requests safer
|
| |
|
|
|
|
| |
* fix argument order when logging missed partial chunk
* make partial value a temporary variable
helps with debugging as the warning on bad range can tell the original size
* add asserts
|
| |
|
| |
* treat invalid partial chunk request as a miss
|
| |
|
|
| |
not given (#76)
|
| |
|
|
| |
* validate result when getting partial chunk and warn on failure
* changelog
|
| |
|
|
|
| |
- Improvement: Asserts gives an immediate ERROR log entry with callstack and reason
- Improvement: Asserts flushes the log before sending error report to Sentry
|
| |
|
|
|
|
| |
Wine (#71)
* added logic to change default HTTP server implementation when running on Wine
* added log message to inform user about potential problems when running under Wine
|
| |
|
|
| |
- Bugfix: Don't try to respond with zero size partial cache value when partial size is zero
- Improvement: Added more validation of data read from cache / cas
|
| |
|
| |
* use write and move in place for safer writing of files
|
| |
|
| |
- Improvement: Batch scope for put of cache values
|
| |
|
|
|
| |
- Bugfix: Remove extra loop causing GetProjectFiles for project store to find all chunks once for each chunk found
- Bugfix: Don't capture ChunkIndex variable in CasImpl::IterateChunks by reference as it causes crash
- Improvement: Make FileCasStrategy::IterateChunks (optionally) multithreaded (improves GetProjectFiles performance)
|
| |
|
|
|
|
|
|
| |
this change addresses some TSAN warnings for improved robustness and less TSAN noise
- Added dedicated timer for EnqueueStateExitFlagTimer
- Made log formatter `fullformatter` output consistent time stamps across threads
- Made Linux/Mac event implementation TSAN clean
|
| |
|
|
| |
- Bugfix: Properly set content type of chunks fetch from CidStore
- Improvement: Add IterateChunks(std::span<Oid>) for better performance in get oplog
|
| |
|
| |
- Improvement: Refactor `IoHash::HashBuffer` and `BLAKE3::HashBuffer` to not use memory mapped files. Performs better and saves ~10% of oplog export time on CI
|
| |
|
|
| |
- Bugfix: Always pre-cache oplog when creating project store GCv2 referencer
- Bugfix: Correctly capture attachments imported with oplog to void them being GCd before oplog is written
|
| |
|
|
| |
* verify running process before creating event
* make sure we don't signal/wait for a zenserver instance that we did not wait for to get ready
|
| |
|
| |
- Improvement: Reworked GetChunkInfos in oplog store to reduce disk thrashing and improve performance
|
| | |
|
| |
|
| |
- Bugfix: Harden GCv2 when errors occur and gracefully abort GC operation on error
|
| | |
|
| |
|
| |
- Change: GCv2 is now the default option, use `--gc-v2=false` to fall back to GCv1
|
| |
|
| |
- Improvement: Add batching when writing multiple small chunks to block store - decreases I/O load significantly on oplog import
|
| | |
|
| |
|
|
|
|
|
|
|
|
|
| |
* report down/up transfer speed during progress
* add disk buffering in http client
* offload block decoding and chunk writing form network worker pool threads
add block hash verification for blocks recevied at oplog import
* separate download-latch from write-latch to get more accurate download speed
* check headers when downloading with http client to go directly to file writing for large payloads
* we must clear write callback even if we only provide it as an argument to the Download() call
* make timeout optional in AddSponsorProcess
* check return codes when creating windows threadpool
|
| |
|
|
| |
* capture spawned server output and output on launch error
* fix logging and launch validation in tests
|
| |
|
|
| |
* reference cache gc update capture
* When importing oplogs we now import all attachments first and (optionally clean) write the oplog on success
|
| |
|
|
|
|
|
|
|
|
|
|
| |
- Feature: `zen down`
- --`data-dir` to specify a data directory to deduce which zen instance to bring down
- Feature: `zen attach`
- --`data-dir` to specify a data directory to deduce which zen instance to attach to222
- Feature: `zen status`
- --`port` filter running zen instances based on port
- --`data-dir` filter running zen instances based on information in the data directory
- Improvement: Trying to load a compact binary object from an empty file no longer causes access violation
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
- Feature: `zen up` command improvements
- --`port` allows you to specify a base port when starting an instance
- --`base-dir` allows you to specify a base directory for the zenserver executable if it is not located next to the zen.exe executable
- Feature: `zen down`
- --`port` allows you to specify a base port when shutting down an instance
- --`base-dir` allows you to specify a base directory for the zenserver executable if it is not located next to the zen.exe executable
- --`force` if regular shutdown fails it tries to find a running zenserver.exe process and terminate it
- If it fails to attach to the running server it now waits for it to exit when setting the RequestExit shared memory flag
- Improvement: zenserver now checks the RequestExit flag in the shared memory and exist gracefully if it is set
- Improvement: When adding a sponsor process to a running zenserver instance, we wait for it to be picked up from the shared memory section to determine success/fail
|
| |
|
|
|
| |
- Bugfix: Correctly calculate size freed/data moved from blocks in GCv2
- Improvement: Reduced details in remote store stats for oplog export/import to user
- Improvement: Transfer speed for oplog export/import is now an overall number rather than average of speed per single request
|
| |
|
|
| |
* add validation of input buffer size when trying to parse package message
* avoid doing memcopy when parsing package message
|
| | |
|
| |
|
|
|
| |
* add remote oplog store statistics
* block chunking when uploading oplog to zenserver (mirroring)
* make sure we can move temporary dechunked file into cas store
|
| | |
|
| | |
|