Re: How can end users know the cause of LR slot sync delays?
От | Ashutosh Sharma |
---|---|
Тема | Re: How can end users know the cause of LR slot sync delays? |
Дата | |
Msg-id | CAE9k0PkmHDT2QTo1_ZPS_BiurHta-QCJaL0zcpz8GCb-xJtHuQ@mail.gmail.com обсуждение исходный текст |
Ответ на | Re: How can end users know the cause of LR slot sync delays? (Shlok Kyal <shlok.kyal.oss@gmail.com>) |
Ответы |
Re: How can end users know the cause of LR slot sync delays?
|
Список | pgsql-hackers |
Hi, @@ -646,7 +670,11 @@ synchronize_one_slot(RemoteSlot *remote_slot, Oid remote_dbid) remote_slot->name, LSN_FORMAT_ARGS(latestFlushPtr))); - return false; + /* If slot is present on the local, update the slot sync skip stats */ + if ((slot = SearchNamedReplicationSlot(remote_slot->name, true))) + skip_reason = SLOT_SYNC_SKIP_STANDBY_BEHIND; + else + return false; With this change, you’re likely enforcing sync slot creation, whereas earlier that might not have been the case. This introduces a behavioral change, which may not be well received. -- I think we can avoid passing skip_reason as a new argument to update_local_synced_slot(). It only needs to be passed to update_and_persist_local_synced_slot(). When update_local_synced_slot() is invoked from within update_and_persist_local_synced_slot(), we can simply rely on the two flags, remote_slot_precedes and found_consistent_snapshot and set the skip_reason accordingly, thoughts? If update_local_synced_slot is being called from any other place that means the slot is already persisted. -- +typedef enum SlotSyncSkipReason +{ + SLOT_SYNC_SKIP_NONE, /* No skip */ + SLOT_SYNC_SKIP_STANDBY_BEHIND, /* Standby is behind the remote slot */ + SLOT_SYNC_SKIP_REMOTE_BEHIND, /* Remote slot is behind the local slot */ + SLOT_SYNC_SKIP_NO_CONSISTENT_SNAPSHOT /* Standby could not reach a + * consistent snapshot */ +} SlotSyncSkipReason; + I would suggest shortening the enum names like maybe SS_SKIP_NONE instead of SLOT_SYNC_SKIP_NONE. -- With Regards, Ashutosh Sharma.
В списке pgsql-hackers по дате отправления: