solana/rpc/src
Pavel Strakhov 65227f44dc
Optimize RPC pubsub for multiple clients with the same subscription (#18943)
* reimplement rpc pubsub with a broadcast queue

* update tests for new pubsub implementation

* fix: fix review suggestions

* chore(rpc): add additional pubsub metrics

* integrate max subscriptions check into SubscriptionTracker to reduce locking

* separate subscription control from tracker

* limit memory usage of items in pubsub broadcast queue, improve error handling

* add more pubsub metrics

* add final count metrics to pubsub

* add metric for total number of subscriptions

* fix small review suggestions

* remove by_params from SubscriptionTracker and add node_progress_watchers map instead

* add subscription tracker tests

* add metrics for number of pubsub notifications as a counter

* ignore clippy lint in TokenCounter

* fix underflow in token counter

* reduce queue capacity in pubsub tests

* fix(rpc): fix test timeouts

* fix race in account subscription test

* Add RpcSubscriptions::new_for_tests

Co-authored-by: Pavel Strakhov <p.strakhov@iconic.vc>
Co-authored-by: Nikita Podoliako <n.podoliako@zubr.io>
Co-authored-by: Tyera Eulberg <tyera@solana.com>
2021-09-17 13:40:14 -06:00
..
cluster_tpu_info.rs Track reset bank in PohRecorder (#19810) 2021-09-13 16:55:35 -07:00
lib.rs Optimize RPC pubsub for multiple clients with the same subscription (#18943) 2021-09-17 13:40:14 -06:00
max_slots.rs
optimistically_confirmed_bank_tracker.rs Optimize RPC pubsub for multiple clients with the same subscription (#18943) 2021-09-17 13:40:14 -06:00
parsed_token_accounts.rs chore: cargo +nightly clippy --fix -Z unstable-options 2021-06-18 10:42:46 -07:00
rpc.rs Optimize RPC pubsub for multiple clients with the same subscription (#18943) 2021-09-17 13:40:14 -06:00
rpc_completed_slots_service.rs Extricate RpcCompletedSlotsService from RetransmitStage 2021-06-16 16:20:35 -07:00
rpc_health.rs adds validator flag to allow private ip addresses (#18850) 2021-07-23 15:25:03 +00:00
rpc_pubsub.rs Optimize RPC pubsub for multiple clients with the same subscription (#18943) 2021-09-17 13:40:14 -06:00
rpc_pubsub_service.rs Optimize RPC pubsub for multiple clients with the same subscription (#18943) 2021-09-17 13:40:14 -06:00
rpc_service.rs Add default() to SnapshotConfig (#19776) 2021-09-12 13:44:27 -05:00
rpc_subscription_tracker.rs Optimize RPC pubsub for multiple clients with the same subscription (#18943) 2021-09-17 13:40:14 -06:00
rpc_subscriptions.rs Optimize RPC pubsub for multiple clients with the same subscription (#18943) 2021-09-17 13:40:14 -06:00
transaction_status_service.rs Demote write locks on transaction program ids (#19593) 2021-09-04 03:05:30 +00:00