Releases: bestarch-ae/cacherpc
0.2.17
Highlights:
Deduplication of getProgramAccounts requests. When gPA request is made, cacherpc will "remember" it as being in progress. If the same gPA request is made again before the first one had a chance to complete, the second one (and all those that come after) will wait for the original to finish, after this event they will respond from cache. getProgramAccounts request is defined by three values: public key, commitment level and set of filters, and other parameters like encoding and dataSlice are ignored. All subsequent requests will wait a limited amount of time before returning timeout error to the user, this timeout parameter can be separately configured via in_progress_request_wait: u64
field of [rpc.timeouts]
sections of configuration file. In case if error occurs during the execution of original request, no waiters will be notified, the cacherpc will "forget" the request as being in progress, all current waiters will eventually abort with timeout, single new request will be forwarded to validator. Not all gPA requests can be subjected to this new logic, specifically if the gPA is not cacheable, then cacherpc will not remember it as being in progress, cacheability is satisfied if: encoding is not jsonParsed, no dataSlice is requested, cacherpc has active websocket connection.
What's Changed
- feat: wait for exectuting gpa requests, instead of making new ones by @bobs4462 in #261
Full Changelog: 0.2.16...0.2.17
0.2.16
Highlights
- Implement client-independent validator response caching. Previously only requests which were successfully streamed to clients could be cached. This release changes this behavior, so that response is cached independently of client connection (even if client disconnects) as long as it's a successful one.
- Fixed lint errors reported by clippy
What's Changed
Full Changelog: 0.2.15...0.2.16
0.2.15
Highlights
- X-Request-ID is added to several error responses:
a. Invalid request
b. Waf rejection
c. Request timeout - Improved logging: added new logs, made existing logs more informative. Also it's now possible to control the log level, which is done by setting environment variable
CACHER_LOG_LEVEL
to values debug|info|warn|error, by default it's set toinfo
- Configurable
keep-alive
parameter for server. After new connection is accepted and new request is made over it, server will keep connection alive (if not closed by client) for the period of time specified in--keep-alive <NUM>s
cli parameter - Client request timeouts are disabled, which makes it possible for clients to open connection pool to server without actually sending any data over those connections, and server will keep connections alive for the period specified in
keep-alive
startup parameter
What's Changed
- Keep-alive management, no client request timeout + technical debt by @bobs4462 in #252
Full Changelog: 0.2.14...0.2.15
0.2.15-beta-5
Highlights:
- Increased keep-alive duration for connection to 90 secs
What's Changed
- Keep alive by @bobs4462 in #257
Full Changelog: 0.2.14...0.2.15-beta-5
0.2.15-beta-4
Highlights:
- Added logging when new connection is accepted by server
Full Changelog: 0.2.14...0.2.15-beta-4
0.2.15-beta-3
What's Changed
Full Changelog: 0.2.15-beta-1...0.2.15-beta-3
0.2.15-beta-1
Highlights
- X-Request-ID is added to several error responses:
a. Invalid request
b. Waf rejection
c. Request timeout - Improved logging: added new logs, made existing logs more informative. Also it's now possible to control the log level, which is done by setting environment variable
CACHER_LOG_LEVEL
to valuesdebug|info|warn|error
, by default it's set toinfo
0.2.14
0.2.14-beta-3
Modified x-request-id to support cache hits as well (#249)
0.2.14-beta-2
Fixed x-request-header for passthrough requests