Skip to content

Releases: bestarch-ae/cacherpc

0.2.13

17 Mar 15:52
a0e1a0b
Compare
Choose a tag to compare

Highlights:

  1. Added support for X-Request-ID HTTP header: if the header is present in client request, it will be forwarded to upstream, if the header is absent, then the cacher will generate it locally and attach it outbound requests, and even cache hits responses
  2. Updated project dependencies, particularly actix-web related ones

What's Changed

  • Added X-Request-ID header + updated dependencies by @bobs4462 in #248
  • Modified x-request-id to support cache hits as well by @bobs4462 in #249

Full Changelog: 0.2.12...0.2.13

0.2.12

15 Feb 13:57
fe55122
Compare
Choose a tag to compare

Highlights

  1. Added new command for forcing re-connection of websockets. The command for re-connection has three modes, namely:
    • cache-rpc force-reconnect init <delay sec> <interval sec> - will initiate re-connection, starting after delay seconds, and performing 1 re-connection every interval seconds
    • cache-rpc force-reconnect status - get status of reconnection, i.e. whether it's running, number of re-connection done/remaining
    • cache-rpc force-reconnect abort - stop re-connection process, reports how many have been performed and how many remain
  2. Added 2 metrics to indicate re-connection progress: forced_reconnections_remaining - number of re-connection to perform yet, forced_reconnections_finished - number of re-connections already performed
  3. Made wide-filter based program accounts prefetching (#243) to be an optional feature, now by default cache-rpc will start with this feature disabled, while superset based request serving will still be enabled without an option to turn it off
  4. Added new command for turning on the feature for wide-filter based getProgramAccounts requests, which has 3 modes of operation:
    • cache-rpc wide-filters on - turns the account prefetching for given program with wider filter
    • cache-rpc wide-filters off - turns the above feature off
    • cache-rpc wide-filters status - shows the current status of the feature
  5. Added new metric for counting the number of self initiated getProgramAccounts requests - self_initiated_gpa

What's Changed

  • Implemented support for additional ws-reconnection command by @bobs4462 in #245
  • Made wide filters based gpa requests optional by @bobs4462 in #246

Full Changelog: 0.2.11...0.2.12

0.2.11

11 Feb 15:34
6dbb658
Compare
Choose a tag to compare

Highlights

  1. Main and the biggest change of this release is the way that getProgramAccounts are handled. The following logic has been implemented
    • If the getProgramAccount request is made with filter, and no cache entry is found for the given filter, then search for existence of this filter's superset, i.e. a different filter which when applied to all accounts of the program, will produce a subset of it which will include the accounts for the original filter (which was present in request). Such a filter is a less restrictive one. If found, then the list of accounts is filtered in-place by cacherpc itself before being served to client.
    • If superset filter cannot be found in cache, then try to search for valid intersections of the requested filter with others present in cache, i.e. new filter which will be a superset of the original filter in request.
    • In case such an intersection can be found, a separate asynchronous gPA request is made to cluster/validator, which is identical to the one made by client, except for the filter.
    • The original request is also made, as cacherpc cannot wait for second request to finish and should start streaming data to client as soon as possible
    • The result of second request (with superset filter) is saved to cache, and should prevent future cache misses
    • When an entry for the given filter is not found in cache, but the request still can be served from superset, then the ttl for the superset filter will be reset, and not for the originally requested filter, so that hot supersets will linger for long time in cache.
  2. Refactored pubsub module, splitting it into several files, for better maintainability

What's Changed

  • Refactored pubsub module by @bobs4462 in #244
  • Implemented optimized filter based caching for gPA by @bobs4462 in #243

Full Changelog: 0.2.10...0.2.11

0.2.10

08 Feb 14:20
51658ea
Compare
Choose a tag to compare

Highlights

  1. Added handling of getIdentity method
  2. In order to enable cacherpc service to serve getIdentity requests, one should start it with --identity <public key> option
  3. If the identity option is not provided, all requests are forwarded to validators as usual

What's Changed

  • Support getIdentity method by @bobs4462 in #242

Full Changelog: 0.2.9...0.2.10

0.2.9

03 Feb 12:33
7ca656f
Compare
Choose a tag to compare

Highlights

  • Fixed the content-type header guard in request handler, so that headers like Content-Type: application-json;charset=utf-8 will be accepted

What's Changed

  • Fixed content-type header guard for request handler by @bobs4462 in #241

Full Changelog: 0.2.8...0.2.9

0.2.8

01 Feb 14:58
0642bcf
Compare
Choose a tag to compare

Highlights

  • Added X-Cache-Request-Header (describing json-rpc method) to passthrough requests, getAccountsInfo and getProgramAccounts already include this header.

What's Changed

  • Extra request header to differentiate json-rpc methods by @bobs4462 in #240

Full Changelog: 0.2.7...0.2.8

0.2.7

31 Jan 09:28
58cdec2
Compare
Choose a tag to compare

Highlights

Mostly maintenance release with dependency updates and minor bug-fixes

What's Changed

  • Moved cache hit metric increment inside conditional by @bobs4462 in #238
  • Maintenance by @bobs4462 in #239

Full Changelog: 0.2.6...0.2.7

0.2.6

17 Dec 15:25
79e16f2
Compare
Choose a tag to compare

Highlights

  1. Bugfix: slot number not being saved for gPA requests made with withContext parameter
  2. Implemented cache overwrite control so that new account entries won't be overwritten with more outdated data

What's Changed

  • Fix: gPA slot not being saved immediately, if request made withContext by @bobs4462 in #236
  • chore: bump version to 0.2.6 by @bobs4462 in #237

Full Changelog: 0.2.5...0.2.6

0.2.5

16 Dec 12:32
c765279
Compare
Choose a tag to compare
0.2.5 Pre-release
Pre-release

Highlights:

  1. Fixed bug, when cache miss occured for getProgramAccounts request, when requesting the same program with withContext flag being explicitly set to false.

What's Changed

  • Hotfix: correct handling of withContext flag for gPA by @bobs4462 in #234
  • chore: version bump to 0.2.5 by @bobs4462 in #235

Full Changelog: 0.2.4...0.2.5

0.2.4

15 Dec 14:19
3c80b96
Compare
Choose a tag to compare
0.2.4 Pre-release
Pre-release

Highlights:

  1. Configurable timeouts were added. Now both request and retry timeouts can configured via command line and config files:
    --request-timeout 60s parameter specifies the request timeout for passthrough requests, gAI and gPA requests and retry timeouts can be configured via configuration file and can be reloaded during runtime.
  2. Optimized cache hits for gAI after owner program is purged from cache, but some of its accounts persist in cache with renewed ttl. Now if account request is made during program lifetime and is served from cache, then account slot info will be updated (if missing) with that of owner program (if exists), thus consequent requests still will be served from cache, even if owner program is purged from cache. Solves https://zubr-exchange.atlassian.net/browse/SOL-94.
  3. Bug-Fix for gPA requests alternating between without | with context. Now if program is present in cache but doesn't have context info, all gPA requests which require context will be forwarded to validator, as to avoid returning context = 0 to client. Solves https://zubr-exchange.atlassian.net/browse/SOL-93

What's Changed

  • Rpc module refactoring by @bobs4462 in #227
  • Added configurable timeouts for requests, and retries by @bobs4462 in #232
  • Fixed slot = 0 case for gPA requests with context by @bobs4462 in #231
  • Improved cache hit probability for accounts after owner sub ends by @bobs4462 in #230
  • chore: version bump to 0.2.4 + readme update by @bobs4462 in #233

Full Changelog: 0.2.3...0.2.4