solana/core/src
Lijun Wang fe97cb2ddf
AccountsDb plugin framework (#20047)
Summary of Changes

Create a plugin mechanism in the accounts update path so that accounts data can be streamed out to external data stores (be it Kafka or Postgres). The plugin mechanism allows

Data stores of connection strings/credentials to be configured,
Accounts with patterns to be streamed
PostgreSQL implementation of the streaming for different destination stores to be plugged in.

The code comprises 4 major parts:

accountsdb-plugin-intf: defines the plugin interface which concrete plugin should implement.
accountsdb-plugin-manager: manages the load/unload of plugins and provide interfaces which the validator can notify of accounts update to plugins.
accountsdb-plugin-postgres: the concrete plugin implementation for PostgreSQL
The validator integrations: updated streamed right after snapshot restore and after account update from transaction processing or other real updates.
The plugin is optionally loaded on demand by new validator CLI argument -- there is no impact if the plugin is not loaded.
2021-09-30 14:26:17 -07:00
..
broadcast_stage skips retransmit for shreds with unknown slot leader (#19472) 2021-09-01 15:44:26 +00:00
accounts_hash_verifier.rs cache account hash info (#19426) 2021-09-13 20:39:26 -05:00
ancestor_hashes_service.rs Add EpochSlots frozen state transition (#19112) 2021-08-13 14:21:52 -07:00
banking_stage.rs Use batch_send in forward_buffered_packets (#20330) 2021-09-29 20:49:43 -07:00
broadcast_stage.rs skips retransmit for shreds with unknown slot leader (#19472) 2021-09-01 15:44:26 +00:00
cache_block_meta_service.rs
cluster_info_vote_listener.rs Optimize RPC pubsub for multiple clients with the same subscription (#18943) 2021-09-17 13:40:14 -06:00
cluster_nodes.rs skips retransmit for shreds with unknown slot leader (#19472) 2021-09-01 15:44:26 +00:00
cluster_slot_state_verifier.rs Add EpochSlots frozen state transition (#19112) 2021-08-13 14:21:52 -07:00
cluster_slots.rs discards epoch-slots epochs ahead of the current root (#19256) 2021-08-17 13:13:28 +00:00
cluster_slots_service.rs
commitment_service.rs implements copy-on-write for vote-accounts (#19362) 2021-08-30 15:54:01 +00:00
completed_data_sets_service.rs
consensus.rs implements copy-on-write for vote-accounts (#19362) 2021-08-30 15:54:01 +00:00
cost_model.rs Demote write locks on transaction program ids (#19593) 2021-09-04 03:05:30 +00:00
cost_tracker.rs Demote write locks on transaction program ids (#19593) 2021-09-04 03:05:30 +00:00
cost_update_service.rs Add few more metrics data points (#19624) 2021-09-15 09:49:49 -05:00
duplicate_repair_status.rs
execute_cost_table.rs
fetch_stage.rs
fork_choice.rs
gen_keys.rs
heaviest_subtree_fork_choice.rs
latest_validator_votes_for_frozen_banks.rs
ledger_cleanup_service.rs Fix shreds-to-hours/days estimations (#19477) 2021-08-30 13:16:06 -06:00
lib.rs
optimistic_confirmation_verifier.rs
outstanding_requests.rs
packet_hasher.rs sends shreds (instead of packets) to retransmit stage 2021-08-17 13:44:10 +00:00
progress_map.rs Add few more metrics data points (#19624) 2021-09-15 09:49:49 -05:00
repair_response.rs
repair_service.rs
repair_weight.rs
repair_weighted_traversal.rs
replay_stage.rs Optimize RPC pubsub for multiple clients with the same subscription (#18943) 2021-09-17 13:40:14 -06:00
request_response.rs
result.rs
retransmit_stage.rs AccountsDb plugin framework (#20047) 2021-09-30 14:26:17 -07:00
rewards_recorder_service.rs
sample_performance_service.rs
serve_repair.rs
serve_repair_service.rs
shred_fetch_stage.rs
sigverify.rs
sigverify_shreds.rs
sigverify_stage.rs Prune sigverify queue (#20331) 2021-09-30 05:41:05 +02:00
snapshot_packager_service.rs Only gossip snapshot hashes for full snapshots (#20271) 2021-09-27 19:29:08 -05:00
test_validator.rs Add default() to SnapshotConfig (#19776) 2021-09-12 13:44:27 -05:00
tower_storage.rs Add EtcdTowerStorage 2021-08-14 09:46:36 -07:00
tpu.rs
tree_diff.rs
tvu.rs Optimize RPC pubsub for multiple clients with the same subscription (#18943) 2021-09-17 13:40:14 -06:00
unfrozen_gossip_verified_vote_hashes.rs
validator.rs AccountsDb plugin framework (#20047) 2021-09-30 14:26:17 -07:00
verified_vote_packets.rs
vote_simulator.rs Add EpochSlots frozen state transition (#19112) 2021-08-13 14:21:52 -07:00
vote_stake_tracker.rs
voting_service.rs
window_service.rs retransmits shreds recovered from erasure codes 2021-08-17 13:44:10 +00:00