| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
|
|
|
|
|
| |
allow control of size for batch iteration
allow adding compositebuffers as attachments directly
add batch2 httpstore api to allow batching of CAS & Oid with range requests
allow responses with file handles from project store
Signed-off-by: Dan Engelbrecht <[email protected]>
|
| |
|
|
|
|
|
| |
- Improvement: Reworked workspace shares to be more secure. Workspaces and workspace shares can only be created using the `zen workspace` command, the http endpoint is disabled unless zenserver is started with the `--workspaces-allow-changes` option enabled.
- Each workspace are now configured via a `zenworkspaceconfig.json` file in the root of each workspace
- A workspace can allow shares to be created via the http interface if the workspace is created with the `--allow-share-create-from-http` option enabled
- A new http endpoint at `/ws` - issuing a `Get` operation will get you a list of workspaces
- A new http endpoint at `/ws/refresh` - issuing a `Get` will make zenserver scan for edits in workspaces and workspace shares
|
| |
|
|
| |
pressure (#205)
|
| |
|
| |
- Feature: Added options --bucketsize and --bucketsizes to zen cache-info to get data sizes in cache buckets and attachments
|
| | |
|
| |
|
| |
* remove PathFromHandle that throws to give better context on failures
|
| |
|
|
|
| |
them in memory (#188)
* Don't read chunks into memory during cache batch fetch unless we may cache them in memory
|
| |
|
|
|
| |
* kill gc v1
* block use of gc v1 from zen command line
* warn and flip to gcv2 if --gc-v2=false is specified for zenserver
|
| |
|
|
|
|
| |
* If a block is small (less than half max size) we add it to blocks to compact
Sort blocks when iterating over them
* do compact of block stores even if no new unused are found
* do compact phase even if bucket is empty
|
| | |
|
| |
|
|
|
| |
- Do a single call to mempcy when fetching attachments from the meta store in GC
- Use small lambda when calling std::sort in FilterReferences (enables inlining of the comparision function)
- Use a single function for < and == comparision in KeepUnusedReferences
|
| |
|
| |
* Use alternate IoHash comparision function - reduces KeepUnusedReferences execution time by ~20%
|
| |
|
| |
* zen command - add options to control meta data cache when triggering gc
|
| |
|
|
|
|
| |
* use tsl::robin_set for BlockIndexSet
don't calculate full block location when only block index is needed
* don't copy visitor function
* reserve space for attachments
|
| |
|
|
|
|
|
| |
- Improvement: Faster memcache trimming
- Reduce calculations while holding bucket lock for memcache trim analysis to reduce contention
- When trimming memcache, evict 25% more than required to reduce frequency of trimming
- When trimming memcache, don't repack memcache data vector, defer that to regular garbage collection
- When trimming memcache, deallocate memcache buffers when not holding exclusive lock in bucket
|
| |
|
|
|
| |
Added option `gc-attachment-passes` to zenserver
Cleaned up GCv2 start and stop logs and added identifier to easily find matching start and end of a GC pass in log file
Fixed project store not properly sorting references found during lock phase
|
| |
|
|
| |
* make sure we always clear writing block from m_ActiveWriteBlocks even if we have an exception
|
| |
|
| |
This change adds support for a namespace-qualified RPC endpoint for z$ at `/z$/<namespace>/$rpc` which may be used to validate RPC requests by URL inspection. The old scheme is still supported.
|
| |
|
|
|
| |
* optimize IoHash and OId comparisions
* refactor filtering of unused references
* add attachment filtering to gc
|
| |
|
| |
this appears to be required as of fmt v11
|
| |
|
| |
Don't lock disk cache buckets from writing when scanning records for attachment references
|
| |
|
|
|
|
|
|
|
|
| |
* optimized ValidateCbUInt
* optimized iohash comparision
* replace unordered set/map with tsl/robin set/map in blockstore
* increase max buffer size when writing cache bucket sidecar
* only store meta data for files < 4Gb
* faster ReadAttachmentsFromMetaData
* remove memcpy call in BlockStoreDiskLocation
* only write cache bucket state to disk if GC deleted anything
|
| | |
|
| | |
|
| |
|
|
| |
(#151)
|
| |
|
| |
* fix race condition in zenserver duing batched fetch
|
| |
|
|
| |
- Bugfix: If we fail to move a temporary file into place, try to re-open the file so we clean it up
- Improvement: Clean up cache bucket log files at startup as we store the matching information in the index snapshot for the bucket
|
| |
|
| |
- Improvement: Move GC logging in callback functions into "gc" context
|
| |
|
| |
- Feature: Added project store oplog index snapshots for faster opening of oplog - opening oplogs are roughly 10x faster
|
| |
|
|
| |
- Feature: Added option `--gc-cache-attachment-store` which caches referenced attachments in cache records on disk for faster GC - default is `false`
- Feature: Added option `--gc-projectstore-attachment-store` which caches referenced attachments in project store oplogs on disk for faster GC - default is `false`
|
| | |
|
| |
|
|
| |
blocking client requests (#134)
|
| | |
|
| | |
|
| |
|
|
| |
* Don't throw exception if sidecar file is missing.
* Log reasons for rejecting sidecar file
|
| |
|
| |
* if disk space is low, set the last gc time to avoid spamming retries
|
| |
|
|
|
| |
miss (#122)
* If we fail to get compression info for a partial request - log and report a miss
|
| |
|
| |
* make sure we don't reset write-pos for new block for each block iterated
|
| | |
|
| |
|
|
| |
* Retry writing GC state if it fails to handle transient problems
* If GC operation fails demote errors to warnings on consecutive fails
|
| | |
|
| |
|
|
| |
range (#109)
|
| |
|
| |
* add option to force gcv2 to run single threaded
|
| |
|
|
| |
* catch exceptions in threaded work
* don't abort all project file/chunk info fetch for single failure
|
| |
|
|
| |
malformed data (#101)
|
| |
|
| |
Skip and report invalid configurations for workspaces instead of crashing
|
| |
|
|
| |
* 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
|
| |
|
|
|
|
| |
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
|