Skip to content

Commit

Permalink
Do not use is_startup_completed (#60)
Browse files Browse the repository at this point in the history
  • Loading branch information
buffalu authored Nov 15, 2024
1 parent 150ea2a commit 5c35daf
Showing 1 changed file with 4 additions and 16 deletions.
20 changes: 4 additions & 16 deletions server/src/geyser_grpc_plugin.rs
Original file line number Diff line number Diff line change
Expand Up @@ -55,6 +55,8 @@ pub struct PluginData {
/// Highest slot that an account write has been processed for thus far.
highest_write_slot: Arc<AtomicU64>,

/// Only set to true if account_data_notifications_enabled is true
/// Otherwise, will always be false
is_startup_completed: AtomicBool,
ignore_startup_updates: bool,
account_data_notifications_enabled: bool,
Expand Down Expand Up @@ -217,6 +219,8 @@ impl GeyserPlugin for GeyserGrpcPlugin {
data.runtime.shutdown_background();
}

/// Note: this is called only if account_data_notifications_enabled is set to true.
/// Do not use it for anything except for account updates
fn notify_end_of_startup(&self) -> PluginResult<()> {
self.data
.as_ref()
Expand Down Expand Up @@ -343,10 +347,6 @@ impl GeyserPlugin for GeyserGrpcPlugin {
) -> PluginResult<()> {
let data = self.data.as_ref().expect("plugin must be initialized");

if data.ignore_startup_updates && !data.is_startup_completed.load(Ordering::Relaxed) {
return Ok(());
}

debug!("Updating slot {:?} at with status {:?}", slot, status);

let status = match status {
Expand Down Expand Up @@ -384,10 +384,6 @@ impl GeyserPlugin for GeyserGrpcPlugin {
) -> PluginResult<()> {
let data = self.data.as_ref().expect("plugin must be initialized");

if data.ignore_startup_updates && !data.is_startup_completed.load(Ordering::Relaxed) {
return Ok(());
}

let transaction_update = match transaction {
ReplicaTransactionInfoVersions::V0_0_1(tx) => TimestampedTransactionUpdate {
ts: Some(prost_types::Timestamp::from(SystemTime::now())),
Expand Down Expand Up @@ -435,10 +431,6 @@ impl GeyserPlugin for GeyserGrpcPlugin {
fn notify_block_metadata(&self, block_info: ReplicaBlockInfoVersions) -> PluginResult<()> {
let data = self.data.as_ref().expect("plugin must be initialized");

if data.ignore_startup_updates && !data.is_startup_completed.load(Ordering::Relaxed) {
return Ok(());
}

let block = match block_info {
ReplicaBlockInfoVersions::V0_0_1(block) => TimestampedBlockUpdate {
ts: Some(prost_types::Timestamp::from(SystemTime::now())),
Expand Down Expand Up @@ -516,10 +508,6 @@ impl GeyserPlugin for GeyserGrpcPlugin {
fn notify_entry(&self, entry: ReplicaEntryInfoVersions) -> PluginResult<()> {
let data = self.data.as_ref().expect("plugin must be initialized");

if data.ignore_startup_updates && !data.is_startup_completed.load(Ordering::Relaxed) {
return Ok(());
}

let slot_entry = utils::get_slot_and_index_from_replica_entry_info_versions(&entry);

debug!(
Expand Down

0 comments on commit 5c35daf

Please sign in to comment.