| Commit message (Collapse) | Author | Age | Files | Lines |
| |\ |
|
| | |
| |
| |
| | |
`xmake config -zentrace=n` would previously not build cleanly
|
| | |
| |
| |
| |
| |
| |
| |
| |
| | |
* fix JobQueue test threading issue. The inner job queued with `QueueJob` would reference `I` from inside the captured closure which would subsequently disappear
* made sure application exit is thread safe
* don't try to access string data out of bounds
* keep-alive flag is accessed from multiple threads
* fix memory leaks in Zen upstream client code
* TSAN fixes for Event
|
| | |
| |
| | |
would previously index into a reserved-but-not-sized vector which is bad but not crash-inducing bad
|
| | |
| |
| |
| | |
* fix leak in IoBuffer for manifested small chunk. previously it would null out the `m_DataPtr` member on every path from `IoBufferExtendedCore::~IoBufferExtendedCore()` but it only really makes sense to null it out when the buffer has been memory mapped
|
| | |
| |
| |
| |
| | |
* ensure all access to m_Entries is done while holding lock
* RPC recorder concurrency fixes - setup/teardown of recorder needs to be done while holding an exclusive lock. Calls into recorder should be done while holding a shared lock.
|
| | | |
|
| | |
| |
| |
| | |
usable logger (#615)
|
| | | |
|
| | |
| |
| |
| |
| |
| |
| |
| |
| | |
* fixed v2 rpc recording issue with >4GB data per segment
* implemented recovery logic to deal with partial RPC recordings
* added check for invalid/null requests in RPC replay
* also made sure at least one worker thread is configured
* fix problem where "null" requests would cause infinite loop!
* added basic RPC recorder tests
|
| | |
| |
| | |
- also fixes weird DateTime/TimeSpan comparison operator
|
| | | |
|
| | |
| |
| | |
* Don't use copy of Payloads array when fetching memcached payload in GC
|
| | |
| |
| | |
* MaxLoad is max load per monitor slot, not the MaxLoad for the entire graph
|
| | |
| |
| | |
* skip invalid chunks when reclaiming space in block store
|
| | |
| |
| |
| |
| | |
* 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
|
| | |
| |
| | |
* keep g_FileSink alive until spdlog has shut down
|
| | |
| |
| | |
enabling mimalloc path for `Memory::Alloc` and `Memory::Free`
|
| | |
| |
| |
| |
| | |
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.
|
| | | |
|
| | |
| |
| | |
- Bugfix: Allow attachments that contains a raw size of zero
|
| | |\ |
|
| | | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
(#600)
* Make sure that PathFromHandle don't hide true error when throwing exceptions
* changelog
* return error info in PathFromHandle if path fails to resolve
|
| | | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
- 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.
|
| | | | |
|
| | | | |
|
| |\ \ \
| | |/
| |/| |
|
| | | |
| | |
| | | |
this adds information on program name and command line to trace initialization
|
| | | |
| | |
| | |
| | |
| | |
| | | |
- 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>
|
| |\| | |
|
| | | |
| | |
| | |
| | |
| | |
| | | |
* 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 to avoid exceptions in spdlog
|
| |\| | |
|
| | | |
| | |
| | |
| | |
| | |
| | | |
- 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
|
| | |\ \ |
|
| | | | |
| | | |
| | | | |
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
|
| | | | | |
|
| | | | | |
|
| | | | |
| | | |
| | | |
| | | | |
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.
|
| | | | | |
|
| | | | | |
|
| | | | | |
|
| | | | |
| | | |
| | | |
| | | | |
also added handling of NtFlushBuffersFileEx for certain SDK versions
|
| | | | | |
|
| | | | | |
|
| | | | | |
|
| | | | | |
|