| Commit message (Collapse) | Author | Age | Files | Lines |
| ... | |
| |
|
|
| |
* extended bad bucket rejection logic to include GET operations as well as PUTs
|
| | |
|
| |
|
| |
* Bugfix: Remove double counting of memory usage in memcachelayer
|
| |
|
|
| |
* 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
|
| | |
|
| |
|
|
|
|
|
| |
* 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
|
| |
|
|
|
|
|
|
| |
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
|
| | |
|
| |
|
| |
* check that block does not exists on disk before starting write to it
|
| |
|
|
|
|
|
|
|
| |
* 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
|
| |\ |
|
| | |
| |
| | |
* Don't block all write access to all buckets when doing GatherReferences/CollectGarbage
|
| |/ |
|
| |
|
|
| |
added --quiet option for zenserver to suppress default logging to stdout
|
| |
|
|
| |
async
|
| |
|
| |
added names to process handle GC thread and main thread for easier identification in crash dumps / process monitoring
|
| |
|
|
|
| |
- 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
|
| |
|
| |
removed websocket support since it is not used right now and is unlikely to be used in the future
|
| |
|
|
| |
factored out http request parsing from httpasio into separate files to enable code to be reused for different transports
|
| |
|
|
|
|
|
|
|
|
| |
- 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 (previous code would include a newline)
|
| | |
|
| |
|
|
|
| |
* changed where calls to IssueNewRequestMaybe are made to reduce per-transaction lock contention
* minor: reduce stack frame for HttpSysTransaction::IoCompletionCallback
|
| |
|
|
|
|
| |
- 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
|
| |
|
|
|
|
|
|
| |
- 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).
|
| |
|
|
|
|
| |
- 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
|
| |
|
| |
* fix trailing null in Sentry username (GetUserName returns the length including NUL terminator)
|
| |
|
|
|
| |
structured cache (#433)
Change "chunks" title to "count" for RPC chunk requests in stats page for structured cache
|
| |
|
| |
* added handle to http.sys error response logging
|
| | |
|
| |
|
|
|
| |
- Feature: Add detailed stats on requests and data sizes on a per-bucket level, use parameter `cachestorestats=true` on the `/stats/z$` endpoint to enable
- Feature: Add detailed stats on requests and data sizes on cidstore, use parameter `cidstorestats=true` on the `/stats/z$` endpoint to enable
- Feature: Dashboard now accepts parameters in the URL which is passed on to the `/stats/z$` endpoint
|
| |
|
| |
when a http.sys request response API call fails, we now include more information including metadata about the contents of the reponse (i.e memory/file references including file names/size and chunk offsets/size) to help track down some odd error conditions seen in production
|
| |
|
|
|
| |
* only handle RPC requests in a worker thread if we have an upstream. we may as well handle the request inline on the http_io thread if we're only dealing with local data since the response times should be pretty consistent in that case
* http.sys: don't create async worker thread pool until it's needed (typically only if we have an upstream)
|
| |
|
|
| |
* cache upstream stats improved
* fix exit for monitor thread
|
| |
|
| |
* flush block store block
|
| |\ |
|
| | |
| |
| | |
* do not allow exceptions to leak from Sentry error reporting or SentryAssertImpl::OnAssert
|
| | |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
- Feature: New endpoint `/admin/logs` to query status of logging and log file locations and cache logging
- `enablewritelog`=`true`/`false` parameter to control cache write logging
- `enableaccesslog`=`true`/`false` parameter to control cache access logging
- `loglevel` = `trace`/`debug`/`info`/`warning`/`error`
- Feature: New zen command `logs` to query/control zen logging
- No arguments gives status of logging and paths to log files
- `--cache-write-log` `enable`/`disable` to control cache write logging
- `--cache-access-log` `enable`/`disable` to control cache access logging
- `--loglevel` `trace`/`debug`/`info`/`warning`/`error` to set debug level
|
| | |
| |
| |
| |
| |
| | |
* added name to http.sys request queue
* changed so that rejected requests are answered with a 403 response instead of just dropping the connection
|
| | |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
* move commands in scrub.h/cpp to admin_cmd.h/cpp
* move job command into admin_cmd.h/.cpp
* admin -> admin_cmd
* bench -> bench_cmd
* cache -> cache_cmd
* copy -> copy_cmd
* dedup -> dedup_cmd
* hash -> hash_cmd
* print -> print_cmd
* projectstore -> projectstore_cmd
* rpcreplay -> rpcreplay_cmd
* serve -> serve_cmd
* status -> status_cmd
* top -> top_cmd
* trace -> trace_cmd
* up -> up_cmd
* version -> version_cmd
|
| | |
| |
| |
| |
| | |
* add trace command to enable/disable tracing at runtime
* rework tracing init/start/stop
* changelog
|
| |/ |
|
| |
|
|
| |
Improvement: Background jobs now temporarily sets thread name to background job name while executing
Improvement: Background jobs tracks worker thread id used while executing
|
| |
|
| |
* Do controlled shutdown of zenserver catching any exception thrown during shutdown
|
| | |
|
| |
|
| |
currently, only Windows (using Projected File System) is supported
|
| |
|
|
| |
* increase jupiter oplog import/export connection timeout to 30 min
* changelog
|
| |
|
|
|
| |
* Add retry if FinalizeRef responds with non-empty "Needs" attachments
* better logging/progress report
* changelog
|
| |
|
|
| |
* handle errors in spdlog gracefully - try to report and avoid termination
* changelog
|
| |
|
|
|
| |
* add DiskWriteBlocker to structured cache store log writer
* changelog
|