Kyotaro Horiguchi <horikyota....@gmail.com> writes: > [ syncrep-fixes-4.patch ]
I agree that we could probably improve the clarity of this code with further rewriting, but I'm still very opposed to the idea of having callers know that the first num_sync array elements are the active ones. It's wrong (or at least different from current behavior) for quorum mode, where there might be more than num_sync walsenders to consider. And it might not generalize very well to other syncrep selection rules we might add in future, which might also not have exactly num_sync interesting walsenders. So I much prefer an API definition that uses bool flags in an array that has no particular ordering (so far as the callers know, anyway). If you don't like is_sync_standby, how about some more-neutral name like is_active or is_interesting or include_position? I dislike the proposed comment revisions in SyncRepReleaseWaiters, too, particularly the change to say that what we're "announcing" is the ability to release waiters. You did not change the actual log messages, and you would have gotten a lot of pushback if you tried, because the current messages make sense to users and something like that would not. But by the same token this new comment isn't too helpful to somebody reading the code. (Actually, I wonder why we even have the restriction that only sync standbys can release waiters. It's not like they are going to get different results from SyncRepGetSyncRecPtr than any other walsender would. Maybe we should just drop all the am_sync logic?) regards, tom lane