aboutsummaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeFilesLines
...
* fix clang-format whoopsieStefan Boberg2023-10-111-1/+1
|
* added back main thread nameStefan Boberg2023-10-111-0/+2
| | | | this was there before but lost in a merge recently
* suppress no-op auth debug loggingStefan Boberg2023-10-101-1/+6
|
* experimental pluggable transport support (#436)Stefan Boberg2023-10-1017-42/+2044
| | | this change adds a `--http=plugin` mode where we support pluggable transports. Currently this defaults to a barebones blocking winsock implementation but there is also support for dynamic loading of transport plugins, which will be further developed in the near future.
* cache reference tracking (#455)Dan Engelbrecht2023-10-1010-189/+602
| | | | | - Feature: Add caching of referenced CId content for structured cache records, this avoid disk thrashing when gathering references for GC - disabled by default, enable with `--cache-reference-cache-enabled` - Improvement: Faster collection of referenced CId content in project store
* fixed GC logging output stats (#458)Stefan Boberg2023-10-102-1/+2
| | | disk usage stats are now properly reported in log messages
* minor fixes to zencore (#457)Stefan Boberg2023-10-094-8/+3
| | | | * AssertException constructor should be explicit * removed pragma comment
* reject bad bucket reads (#456)Stefan Boberg2023-10-094-5/+19
| | | | * extended bad bucket rejection logic to include GET operations as well as PUTs
* Fixes to shared server configzousar2023-10-061-25/+25
| | | | Conforming indentation. Fixing lightweight-interval-seconds -> lightweightintervalseconds. Adding missing comma preceding memlayer.
* 0.2.27v0.2.27Dan Engelbrecht2023-10-061-1/+1
|
* 0.2.27-pre1v0.2.27-pre1Dan Engelbrecht2023-10-061-1/+1
|
* minor: remove double includeDan Engelbrecht2023-10-061-1/+0
|
* fix memory usage in memlayer (#454)Dan Engelbrecht2023-10-063-15/+5
| | | * Bugfix: Remove double counting of memory usage in memcachelayer
* fix gc infinite loop (#453)Dan Engelbrecht2023-10-064-10/+28
| | | | * make sure we update last gc time even if gc fails * If we can't check if an oplog/project markerfile exists, assume it is not expired
* zenserver project restructuring (#442)Stefan Boberg2023-10-0611-1533/+1742
|
* reject known bad bucket names in structured cache (#452)v0.2.27-pre0Stefan Boberg2023-10-068-9/+88
| | | | | | | * added string_view helpers for ParseHexBytes/ParseHexNumber * reject known bad buckets in structured cache put handler (32-character hex bucket names are rejected) * also added bucket rejection logic to bucket discovery * added rejected_writes stat to HttpStructuredCache
* 0.2.26v0.2.26Dan Engelbrecht2023-10-051-1/+1
|
* added CHANGELOG.md entries for recent fixesStefan Boberg2023-10-051-0/+3
|
* 0.2.26-pre4v0.2.26-pre4Dan Engelbrecht2023-10-051-1/+1
|
* ZenCacheMemoryLayer should always store values using memory buffers (#451)Stefan Boberg2023-10-052-5/+9
| | | | | | | | this change fixes a problem where the memory cache layer can inadvertently prevent underlying block store files from being deleted * ensure we get memory buffers on all paths * added more context to error in IoBufferBuilder::ReadFromFileMaybe * fixed problematic pread call success check in IoBufferBuilder::ReadFromFileMaybe which would always report failure on Linux/MacOS
* fixed issue where IoBufferBuilder::ReadFromFileMaybe loses content type (#450)Stefan Boberg2023-10-052-2/+4
|
* check that block does not exists on disk before starting write to it (#449)Dan Engelbrecht2023-10-053-18/+47
| | | * check that block does not exists on disk before starting write to it
* Fix curruption of disk cache bucket index on GC (#448)Dan Engelbrecht2023-10-055-75/+94
| | | | | | | | | * make sure we hold the index lock when reading payload data in reclaim space * don't use index snapshot when updating index in reclaim space * check that things have not moved under our feet * don't touch m_Payloads without a lock * start write block index on the highest block index * we don't need to bump writeblockindex when stopping write to a block, we will bump appropriately when we start a new block * changelog
* Merge branch 'main' of https://github.com/EpicGames/zenStefan Boberg2023-10-053-11/+24
|\
| * 0.2.26-pre3v0.2.26-pre3Dan Engelbrecht2023-10-051-1/+1
| |
| * reduce lock in disklayer (#447)Dan Engelbrecht2023-10-052-10/+23
| | | | | | * Don't block all write access to all buckets when doing GatherReferences/CollectGarbage
* | trivial: log output typo in GCStefan Boberg2023-10-051-1/+1
|/
* 0.2.26-pre2v0.2.26-pre2Dan Engelbrecht2023-10-041-1/+1
|
* added --quiet option to suppress default logging to stdout (#446)Stefan Boberg2023-10-046-5/+28
| | | | added --quiet option for zenserver to suppress default logging to stdout
* formatting of server configDan Engelbrecht2023-10-041-1/+1
|
* fix HandleRpcRequest::WriteResponseAsync trace scope when we are not running ↵Dan Engelbrecht2023-10-041-1/+2
| | | | async
* changelogDan Engelbrecht2023-10-041-2/+2
|
* added thread names (#441)Stefan Boberg2023-10-044-1/+8
| | | added names to process handle GC thread and main thread for easier identification in crash dumps / process monitoring
* shared server config (#438)v0.2.26-pre1Dan Engelbrecht2023-10-041-3/+9
| | | | | | Shared instance: - Tweak full GC interval - Add lightweight GC config - Add memlayer GC config
* 0.2.26-pre1Dan Engelbrecht2023-10-041-1/+1
|
* refactor comapactcas index (#443)Dan Engelbrecht2023-10-045-22/+76
| | | | | - Bugfix: Fix scrub messing up payload and access time in disk cache bucket when compacting index - Improvement: Split up disk cache bucket index into hash lookup and payload array to improve performance - Improvement: Reserve space up front for compact binary output when saving cache bucket manifest to improve performance
* added CHANGELOG.md note for websocket removalStefan Boberg2023-10-041-0/+1
|
* README.md updateStefan Boberg2023-10-041-2/+2
|
* removed websocket protocol support(#445)Stefan Boberg2023-10-048-2008/+11
| | | removed websocket support since it is not used right now and is unlikely to be used in the future
* factored out http parser from asio into separate files (#444)Stefan Boberg2023-10-033-450/+495
| | | | factored out http request parsing from httpasio into separate files to enable code to be reused for different transports
* faster accesstime save restore (#439)Dan Engelbrecht2023-10-0310-279/+434
| | | | | | | | | | - Improvement: Reduce time a cache bucket is locked for write when flushing/garbage collecting - Change format for faster read/write and reduced size on disk - Don't lock index while writing manifest to disk - Skip garbage collect if we are currently in a Flush operation - BlockStore::Flush no longer terminates currently writing block - Garbage collect references to currently writing block but keep the block as new data may be added - Fix BlockStore::Prune used disk space calculation - Don't materialize data in filecas when we just need the size
* clean up date formatting (#440)Stefan Boberg2023-10-022-4/+5
| | | | * clean up date formatting (previous code would include a newline)
* fix formatting of gc start messagev0.2.26-pre0Dan Engelbrecht2023-10-021-1/+1
|
* 0.2.26-pre0Dan Engelbrecht2023-10-021-1/+1
|
* reduce time spent holding http.sys transaction lock (#437)Stefan Boberg2023-10-023-15/+27
| | | | | * changed where calls to IssueNewRequestMaybe are made to reduce per-transaction lock contention * minor: reduce stack frame for HttpSysTransaction::IoCompletionCallback
* Handle OOM and OOD more gracefully to not spam Sentry with error reports (#434)Dan Engelbrecht2023-10-0211-53/+263
| | | | | | - Improvement: Catch Out Of Memory and Out Of Disk exceptions and report back to reqeuster without reporting an error to Sentry - Improvement: If creating bucket fails when storing and item in the structured cache, log a warning and propagate error to requester without reporting an error to Sentry - Improvement: Make an explicit flush of the active block written to in blockstore flush - Improvement: Make sure cache and cas MakeIndexSnapshot does not throw exception on failure which would cause and abnormal termniation at exit
* Limit size of memory cache layer (#423)Dan Engelbrecht2023-10-028-91/+375
| | | | | | | | - Feature: Limit the size ZenCacheMemoryLayer may use - `--cache-memlayer-targetfootprint` option to set which size (in bytes) it should be limited to, zero to have it unbounded - `--cache-memlayer-maxage` option to set how long (in seconds) cache items should be kept in the memory cache Do more "standard" GC rather than clearing everything. Tries to purge memory on Get/Put on the fly if exceeding limit - not sure if we should have a polling thread instead of adding overhead to Get/Put (however light it may be).
* lightweight gc (#431)Dan Engelbrecht2023-10-0213-60/+208
| | | | | | - Feature: Add lightweight GC that only removes items from cache/project store without cleaning up data referenced in Cid store - Add `skipcid` parameter to http endpoint `admin/gc`, defaults to "false" - Add `--skipcid` option to `zen gc` command, defaults to false - Add `--gc-lightweight-interval-seconds` option to zenserver
* Sentry username fix (#435)Stefan Boberg2023-10-012-2/+3
| | | * fix trailing null in Sentry username (GetUserName returns the length including NUL terminator)
* Correctly calculate the total number of RPC ops in the stats page for ↵Dan Engelbrecht2023-09-292-2/+6
| | | | | structured cache (#433) Change "chunks" title to "count" for RPC chunk requests in stats page for structured cache