aboutsummaryrefslogtreecommitdiff
path: root/src
Commit message (Collapse)AuthorAgeFilesLines
...
* Make sure IoBuffer is a valid null-buffer after move operation (#610)Dan Engelbrecht2023-12-142-4/+15
|
* Don't use copy of Payloads array when fetching memcached payload in GC (#609)Dan Engelbrecht2023-12-131-1/+1
| | | * Don't use copy of Payloads array when fetching memcached payload in GC
* fix peak disk load in gc status (#608)Dan Engelbrecht2023-12-131-12/+11
| | | * MaxLoad is max load per monitor slot, not the MaxLoad for the entire graph
* skip invalid chunks when reclaiming space in block store (#607)Dan Engelbrecht2023-12-131-0/+13
| | | * skip invalid chunks when reclaiming space in block store
* improve trace (#606)Dan Engelbrecht2023-12-135-37/+65
| | | | | * Adding some more trace scopes for better visiblity * Removed spammy trace scope when replaying oplogs * Remove "::Disk" from trace scopes - redundant now that we have merge disk and memory layers
* fix crash at log exit (#605)Dan Engelbrecht2023-12-131-7/+5
| | | * keep g_FileSink alive until spdlog has shut down
* use mimalloc where available (#601)Stefan Boberg2023-12-121-15/+11
| | | enabling mimalloc path for `Memory::Alloc` and `Memory::Free`
* Adding an info command to display a top-level summary of disk space etc (#602)Stefan Boberg2023-12-128-31/+336
| | | | | this also adds a central, shared folder for storing information which may be found by any instance on the host. The directory is currently located alongside the default install and state directory. Initially this is used to store a collection of known `root_manifest` locations and a copy of the latest manifest version which allow us to find all known locations where zen state is present.
* premature logging shutdown fix (#603)v0.2.36Stefan Boberg2023-12-121-0/+9
|
* header only compressed buffers are valid (#604)Dan Engelbrecht2023-12-121-2/+2
| | | - Bugfix: Allow attachments that contains a raw size of zero
* Merge branch 'main' of https://github.com/EpicGames/zenStefan Boberg2023-12-11117-5211/+9027
|\
| * Make sure that PathFromHandle don't hide true error when throwing exceptions ↵Dan Engelbrecht2023-12-113-16/+31
| | | | | | | | | | | | | | | | | | (#600) * Make sure that PathFromHandle don't hide true error when throwing exceptions * changelog * return error info in PathFromHandle if path fails to resolve
| * mem cache perf improvements (#592)Dan Engelbrecht2023-12-112-120/+168
| | | | | | | | | | | | | | | | - Improvement: Refactor memory cache for faster trimming and correct trim reporting - Improvement: Added trace scopes for memory cache trimming Adding a link back to the cache item payload on the memory cache item allows us to iterate over only the items cached in memory instead of over the entire index. This also allows us to do efficient compact of the memory cache array when trimming. It adds 4 bytes of overhead to each item cached in memory.
| * added details to trace initialization (#588)Stefan Boberg2023-12-114-11/+17
| | | | | | this adds information on program name and command line to trace initialization
| * improved scrubbing of oplogs and filecas (#596)Stefan Boberg2023-12-1117-137/+439
| | | | | | | | | | | | - Improvement: Scrub command now validates compressed buffer hashes in filecas storage (used for large chunks) - Improvement: Added --dry, --no-gc and --no-cas options to zen scrub command - Improvement: Implemented oplog scrubbing (previously was a no-op) - Improvement: Implemented support for running scrubbint at startup with --scrub=<options>
| * multi-line logging improvements (#597)Stefan Boberg2023-12-114-78/+127
| | | | | | | | | | | | * added ZEN_SCOPED_WARN and implemented multi-line logging * changed so file log also uses `fullformatter` for consistency and to get the multi-line support across the board
| * SuppressConsoleLog now removes any existing console logger (#599)Stefan Boberg2023-12-111-0/+5
| | | | | | SuppressConsoleLog now removes any existing console logger to avoid exceptions in spdlog
| * fix deadlock at bucket creation (#598)Dan Engelbrecht2023-12-112-177/+205
| | | | | | | | | | | | - Make sure we don't hold the namespace bucket lock when we create buckets to avoid deadlock - Pass lock scope to helper functions to clarify locking rules - Block flush and gc operations for a bucket that is not yet initialized - Add ZenCacheDiskLayer::GetOrCreateBucket to avoid code duplication
| * Merge branch 'main' into zs/get-all-chunk-infoszs/get-all-chunk-infoszousar2023-12-0731-209/+512
| |\
| | * fixed bug in CasContainerStrategy::ReadIndexFile (#595)Stefan Boberg2023-12-071-1/+3
| | | | | | | | | this was introduced in a recent optimization and would cause CAS items to not be found after a shutdown/restart cycle
| | * logging configuration via command line options (#589)Stefan Boberg2023-12-066-7/+114
| | | | | | | | | | | | | | | | | | | | | 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
| | * Use correct iterator index when looking up memcached payload in ↵Dan Engelbrecht2023-12-051-5/+4
| | | | | | | | | | | | | | | GatherReferences (#591) * Use correct iterator index when looking up memcached payload in gatherreferences
| | * http plugin dependency fixes (#590)Stefan Boberg2023-12-053-5/+17
| | | | | | | | | these changes clean up module dependencies and allow the transports subtree to be built standalone (in the UE tree for instance)
| | * HTTP plugin request debug logging (#587)Stefan Boberg2023-12-0516-146/+256
| | | | | | | | | | | | | | | | | | * 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 / load factor for robin_map (#582)Dan Engelbrecht2023-12-047-41/+88
| | | | | | | | | | | | | | | * 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
| | * memory usage estimation for memcached entries (#586)Dan Engelbrecht2023-12-041-5/+24
| | | | | | | | | | | | * do a more accurate memory usage estimation for memcached entries * early exit when checking memcache usage
| | * Add context to Zen upstream resolve error message (#585)Stefan Boberg2023-12-041-1/+1
| | |
| | * safe threadpool shutdown (#584)Dan Engelbrecht2023-12-042-1/+8
| | | | | | | | | * shut down thread pools earlier to worker threads has a chance to terminate before main thread atexit
| * | Change naming to ChunkInfos instead of Chunkszousar2023-12-064-12/+12
| | |
| * | Ran precommitzousar2023-12-052-7/+3
| | |
| * | Get hash when retrieving chunkszousar2023-12-052-7/+32
| | | | | | | | | | | | 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 all chunk infoszousar2023-12-013-8/+45
| |/ | | | | | | Add endpoint for querying all chunk infos in an oplog.
| * use 32 bit offset and size in BlockStoreLocation (#581)Dan Engelbrecht2023-12-016-75/+117
| | | | | | - Improvement: Reduce memory usage in GC and diskbucket flush
| * add separate PreCache step for GcReferenceChecker (#578)Dan Engelbrecht2023-12-018-223/+481
| | | | | | | | | | | | - 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
| * WinIoThreadPool teardown cleaned up (#580)Stefan Boberg2023-11-301-0/+5
| | | | | | 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.
| * global thread worker pools (#577)Dan Engelbrecht2023-11-299-33/+131
| | | | | | - Improvement: Use two global worker thread pools instead of ad-hoc creation of worker pools
| * fixed file logger pattern (#579)Stefan Boberg2023-11-291-1/+1
| | | | | | | | previously, the millisecond part was inexplicably logged after the date, not the time.
| * close thread pool + parallel CasImpl::Initialize (#576)Dan Engelbrecht2023-11-282-4/+18
| | | | | | | | * close thread pool at destruction * parallell casimpl::initialize
| * moved LuaConfig code so it can be used outside of config.cpp (#575)Stefan Boberg2023-11-283-540/+705
| |
| * tracing for gcv2 (#574)Dan Engelbrecht2023-11-286-17/+53
| | | | | | | | | | | | - 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`
| * Don't call spdlog::drop_all, spdlog::shutdown will do that for us in a ↵Dan Engelbrecht2023-11-271-1/+0
| | | | | | | | controlled manner (#573)
| * fix missing locks/sync of log position when writing index snapshots (#572)Dan Engelbrecht2023-11-272-4/+9
| | | | | | | | * fix missing locks/sync of log position when writing index snapshots * changelog
| * gcv2 tests for project store and bugfixes (#571)Dan Engelbrecht2023-11-272-84/+213
| | | | | | * gcv2 tests for project store and bugfixes
| * optimized index snapshot reading/writing (#561)Stefan Boberg2023-11-2717-534/+1074
| | | | | | | | | | 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
| * gc stop command (#569)v0.2.36-pre2Dan Engelbrecht2023-11-278-7/+125
| | | | | | | | | | - 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
| * Add GC Cancel/Stop (#568)Dan Engelbrecht2023-11-247-138/+353
| | | | | | | | - 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.
| * fix truncation of sentry hostnameDan Engelbrecht2023-11-241-1/+1
| |
| * Updated branding (#567)Stefan Boberg2023-11-233-5/+5
| |
| * added --powercycle option (#565)Stefan Boberg2023-11-237-120/+164
| | | | | | | | | | * 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
| * embed html frontend content as binary compiled data (#559)Dan Engelbrecht2023-11-233-2/+7
| | | | | | | | | | | | - 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