| Commit message (Collapse) | Author | Age | Files | Lines |
| |\
| |
| | |
Zs/get all chunk infos
|
| | |\
| |/
|/| |
|
| | |
| |
| | |
failed to include note in recent merge
|
| | |
| |
| | |
this was introduced in a recent optimization and would cause CAS items to not be found after a shutdown/restart cycle
|
| | |
| |
| |
| |
| |
| |
| | |
with these changes it is possible to configure loggers on the command line. For instance:
`xmake run zenserver --log-trace=http_requests,http`
will configure the system so that the `http_request` and `http` loggers are set to TRACE level
|
| | |
| |
| |
| |
| | |
GatherReferences (#591)
* Use correct iterator index when looking up memcached payload in gatherreferences
|
| | |
| |
| | |
these changes clean up module dependencies and allow the transports subtree to be built standalone (in the UE tree for instance)
|
| | |
| |
| |
| |
| |
| | |
* added log level control/query to LoggerRef
* added debug logging to http plugin implementation
* added GetDebugName() to transport plugin interfaces
* added debug name to log output
|
| | | |
|
| | | |
|
| | |
| |
| |
| |
| | |
* reserve vectors in gcv2 upfront
* set max load factor for robin_map indexes to reduce memory usage
* set min load factor for robin_map indexes to allow them to shrink
|
| | |
| |
| |
| | |
* do a more accurate memory usage estimation for memcached entries
* early exit when checking memcache usage
|
| | | |
|
| | |
| |
| | |
* shut down thread pools earlier to worker threads has a chance to terminate before main thread atexit
|
| | | |
|
| | | |
|
| | |
| |
| |
| | |
Also changes the returned fields for each chunk from size->rawsize. Backwards compatibility is not a concern as this was unused in past zenserver releases.
|
| |/
|
|
| |
Add endpoint for querying all chunk infos in an oplog.
|
| |
|
| |
- Improvement: Reduce memory usage in GC and diskbucket flush
|
| |
|
|
|
|
| |
- Improvement: GCv2: Use separate PreCache step to improve concurrency when checking references
- Improvement: GCv2: Improved verbose logging
- Improvement: GCv2: Sort chunks to read by block/offset when finding references
- Improvement: GCv2: Exit as soon as no more unreferenced items are left
|
| |
|
| |
previously would not shut down the threadpool properly which would leave threads around. This was not a problem in practice for our usage since we keep the thread pool alive for the duration of the process but it's better to clean up properly.
|
| |
|
| |
- Improvement: Use two global worker thread pools instead of ad-hoc creation of worker pools
|
| |
|
|
| |
previously, the millisecond part was inexplicably logged after the date, not the time.
|
| | |
|
| | |
|
| |
|
|
| |
* close thread pool at destruction
* parallell casimpl::initialize
|
| | |
|
| |
|
|
|
|
| |
- Improvement: Added more trace scopes for GCv2
- Bugfix: Make sure we can override flags to "false" when running `zen gc` commmand
- `smallobjects`, `skipcid`, `skipdelete`, `verbose`
|
| |
|
|
| |
controlled manner (#573)
|
| |
|
|
| |
* fix missing locks/sync of log position when writing index snapshots
* changelog
|
| |
|
| |
* gcv2 tests for project store and bugfixes
|
| |
|
|
|
| |
the previous implementation of in-memory index snapshots serialise data to memory before writing to disk and vice versa when reading. This leads to some memory spikes which end up pushing useful data out of system cache and also cause stalls on I/O operations.
this change moves more code to a streaming serialisation approach which scales better from a memory usage perspective and also performs much better
|
| |
|
|
|
| |
- Feature: New endpoint `/admin/gc-stop` to cancel a running garbage collect operation
- Feature: Added `zen gc-stop` command to cancel a running garbage collect operation
- Bugfix: GCv2 - make sure to discover all projects and oplogs before checking for expired data
|
| |
|
|
| |
- GcScheduler will now cancel any running GC when it shuts down.
- Old GC is rather limited in *when* it reacts to cancel of GC. GCv2 is more responsive.
|
| | |
|
| | |
|
| |
|
|
|
| |
* added --powercycle option. when this is passed in the zenserver process will shut down immediately after initialization is complete. This is primarily useful when benchmarking init/cleanup but could also be used to verify/clean up disk state
* moved EmptyStandbyList code to make it accessible to more commands
|
| | |
|
| |
|
|
|
|
| |
- Feature: Added xmake task `updatefrontend` which updates the zip file containing the frontend html (`/src/zenserver/frontend/html.zip`)
- Improvement: The frontend html content is no longer appended at the end of the executable which prevented signing, instead it is compiled in from the `/src/zenserver/frontend/html.zip` archive
- Improvement: MacOS now does ad-hoc code signing by default when issuing `xmake bundle`, signing with proper cert is done on CI builds
|
| | |
|
| | |
|
| | |
|
| |
|
|
| |
* reduce work when there are no blocks to compact
* fix lock scopes
|
| | |
|
| | |
|
| | |
|
| | |
|
| |
|
|
|
|
|
|
|
|
|
| |
- Feature: Added new options to zenserver for GC V2
- `--gc-compactblock-threshold` GCV2 - how much of a compact block should be used to skip compacting the block, default is 90%
- `--gc-verbose` GCV2 - enable more verbose output when running a GC pass
- Feature: Added new options to `zen gc` command for GC V2
- `--compactblockthreshold` GCV2 - how much of a compact block should be used to skip compacting the block, default is 90%
- `--verbose` GCV2 - enable more verbose output when running a GC pass
- Feature: Added new parameters for endpoint `admin/gc` (PUT)
- `compactblockthreshold` GCV2 - how much of a compact block should be used to skip compacting the block, default is 90%
- `verbose` GCV2 - enable more verbose output when running a GC pass
|
| | |
|
| |
|
|
|
| |
- Refactor GCV2 so GcReferencer::RemoveExpiredData returns a store compactor, moving out the actual disk work from deleting items in the index.
- Refactor GCV2 GcResult to reuse GcCompactStoreStats and GcStats
- Make Compacting of stores non-parallell to not eat all the disk I/O when running GC
|