aboutsummaryrefslogtreecommitdiff
path: root/src/zenserver/zenserver.cpp
Commit message (Collapse)AuthorAgeFilesLines
...
* Limit size of memory cache layer (#423)Dan Engelbrecht2023-10-021-8/+12
| | | | | | | | - 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-021-2/+6
| | | | | | - 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-011-2/+2
| | | * fix trailing null in Sentry username (GetUserName returns the length including NUL terminator)
* handle error in error log (#422)Dan Engelbrecht2023-09-251-15/+46
| | | * do not allow exceptions to leak from Sentry error reporting or SentryAssertImpl::OnAssert
* Add runtime status/control of logging (#419)Dan Engelbrecht2023-09-221-8/+15
| | | | | | | | | | | - 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
* add trace command to enable/disable tracing at runtime (#416)Dan Engelbrecht2023-09-221-12/+4
| | | | | * add trace command to enable/disable tracing at runtime * rework tracing init/start/stop * changelog
* controlled zenserver shutdown (#413)Dan Engelbrecht2023-09-201-20/+36
| | | * Do controlled shutdown of zenserver catching any exception thrown during shutdown
* VFS implementation for local storage service (#396)Stefan Boberg2023-09-201-0/+7
| | | currently, only Windows (using Projected File System) is supported
* add DiskWriteBlocker to structured cache store log writer (#408)Dan Engelbrecht2023-09-151-1/+2
| | | | | * add DiskWriteBlocker to structured cache store log writer * changelog
* http and httpsys config options (#401)Dan Engelbrecht2023-09-141-2/+2
| | | | * Added `--http-threads`, `--httpsys-async-work-threads`, `--httpsys-enable-request-logging` and `--httpsys-enable-async-response` command line options to zenserver * remove unused CreateHttpSysServer
* job queue and async oplog-import/export (#395)Dan Engelbrecht2023-09-131-3/+15
| | | | | | | | | | | | | | | | - Feature: New http endpoint for background jobs `/admin/jobs/status` which will return a response listing the currently active background jobs and their status - Feature: New http endpoint for background jobs information `/admin/jobs/status/{jobid}` which will return a response detailing status, pending messages and progress status - GET will return a response detailing status, pending messages and progress status - DELETE will mark the job for cancelling and return without waiting for completion - If status returned is "Complete" or "Aborted" the jobid will be removed from the server and can not be queried again - Feature: New zen command `jobs` to list, get info about and cancel background jobs - If no options are given it will display a list of active background jobs - `--jobid` accepts an id (returned from for example `oplog-export` with `--async`) and will return a response detailing status, pending messages and progress status for that job - `--cancel` can be added when `--jobid` is given which will request zenserver to cancel the background job - Feature: oplog import and export http rpc requests are now async operations that will run in the background - Feature: `oplog-export` and `oplog-import` now reports progress to the console as work progress by default - Feature: `oplog-export` and `oplog-import` can now be cancelled using Ctrl+C - Feature: `oplog-export` and `oplog-import` has a new option `--async` which will only trigger the work and report a background job id back
* ZenCacheStore is now reference counted (#398)Stefan Boberg2023-09-131-7/+6
| | | this change also adds a GetNamespaces function which may be used to enumerate all currently known cache namespaces
* add `cache-write-log` and `cache-access-log´ configuration options (#394)Dan Engelbrecht2023-09-111-3/+6
| | | * add `cache-write-log` and `cache-access-log´ configuration options
* use atexit hook to shut down tracing (#369)Dan Engelbrecht2023-08-211-1/+9
|
* fix trace close (#365)Dan Engelbrecht2023-08-211-0/+1
| | | * Make sure we close our trace session properly
* update vcpkg dependencies (#356)Dan Engelbrecht2023-08-111-2/+4
| | | | | | * bump vcpkg version * fmt lib 10 fixes * xmake dependencies (with linux workarounds) * changelog
* fix asserts and exceptions (#344)Dan Engelbrecht2023-08-081-2/+11
| | | | | | * Send proper error to caller of GetChunkInfo instead of assert * catch and handle exceptions when checking for state_marker * properly wait for background tasks if oplop-export fails * changelog
* clang-format :(Stefan Boberg2023-06-301-12/+12
|
* build fix for ZEN_WITH_TESTSStefan Boberg2023-06-301-1/+6
|
* added thread names to timer, upstream monitorStefan Boberg2023-06-071-1/+7
| | | | also altered http-asio thread naming scheme
* fix for random uint32 -> uint32_tStefan Boberg2023-05-251-1/+1
|
* project store refactor (#316)Stefan Boberg2023-05-171-0/+1
| | | moved HttpProjectService into own file to improve maintainability
* fix for redundant define checkStefan Boberg2023-05-171-5/+3
|
* Restructured structured cache store (#314)Stefan Boberg2023-05-171-1/+1
| | | | This change separates out the disk and memory storage strategies into separate cpp/h files to improve maintainability.
* Content scrubbing (#271)Stefan Boberg2023-05-161-1/+3
| | | Added zen scrub command which may be triggered via the zen CLI helper. This traverses storage and validates contents either by content hash and/or by structure. If unexpected data is encountered it is invalidated.
* demote state_marker deletion detection to warningDan Engelbrecht2023-05-161-1/+1
|
* exit without SIGABRT if exception is thrown during startup (#313)Dan Engelbrecht2023-05-161-7/+41
| | | | | * Safeguard ZenServer::RequestExit() and ZenServer::Cleanup() when partially initialized * Set exit code to non-zero if exception is thrown in ZenEntryPoint::Run() * changelog
* Add `--gc-projectstore-duration-seconds` option (#281)Dan Engelbrecht2023-05-161-2/+3
| | | | | | * Add `--gc-projectstore-duration-seconds` option * Cleanup lua gc options parsing * Remove dead configuration values * changelog
* zenserver does not support test mode in releaseStefan Boberg2023-05-151-0/+5
|
* minor GC API cleanupStefan Boberg2023-05-151-5/+5
| | | | | Scrub -> ScrubStorage Trigger -> TriggerGc (to make relationship to TriggerScrub clearer)
* Gracefully exit if Ctrl-C is pressed (#293)Dan Engelbrecht2023-05-111-4/+41
| | | | | * Feature: Gracefully exit if Ctrl-C is pressed * Bugfix: Return error code on exit as set by application * changelog
* allow early logging (#292)Dan Engelbrecht2023-05-111-5/+3
| | | | * if logging is not initialized, just log to console * changelog
* Close down http server gracefully when exiting even while requests are still ↵Dan Engelbrecht2023-05-111-0/+1
| | | | | being processed (#290) * Close down http server gracefully when exiting even while requests are still being processed
* need to set 'id' for user info in sentry (#287)Dan Engelbrecht2023-05-101-25/+35
|
* Only rewrite state_marker file if it does not exist so we can see the age of itDan Engelbrecht2023-05-101-3/+6
|
* monitor if a state-maker file still exists, and if not error out and exit (#283)Dan Engelbrecht2023-05-091-0/+25
| | | * monitor if a state-maker file still exists, and if not error out and exit
* Low disk space detector (#277)Dan Engelbrecht2023-05-091-10/+16
| | | | * - Feature: Disk writes are now blocked early and return an insufficient storage error if free disk space falls below the `--low-diskspace-threshold` value * Never keep an entry in m_ChunkBlocks that points to a nullptr
* add ip and username to sentry reports if allowed in settings (#276)Dan Engelbrecht2023-05-081-0/+33
| | | | * add ip and username to sentry reports if allowed in settings * add --sentry-allow-personal-info command line options to zenserver
* Report asserts to Sentry (#267)Dan Engelbrecht2023-05-021-9/+40
| | | | * don't do sentry operations if sentry init failed * changelog
* move testing and observability code to zenhttp (#266)Stefan Boberg2023-05-021-8/+8
|
* move auth code from zenserver into zenhttp (#265)Stefan Boberg2023-05-021-2/+2
| | | this code should be usable outside of zenserver, so this moves it out into zenhttp where it can be used from lower level components
* moved source directories into `/src` (#264)Stefan Boberg2023-05-021-0/+1261
* moved source directories into `/src` * updated bundle.lua for new `src` path * moved some docs, icon * removed old test trees