On Wed, Jun 24, 2015 at 11:30 PM, Fujii Masao <masao.fu...@gmail.com> wrote: > On Fri, May 15, 2015 at 9:18 PM, Michael Paquier > <michael.paqu...@gmail.com> wrote: >> On Fri, May 15, 2015 at 8:55 PM, Beena Emerson <memissemer...@gmail.com> >> wrote: >>> There was a discussion on support for N synchronous standby servers started >>> by Michael. Refer >>> http://archives.postgresql.org/message-id/cab7npqr9c84ig0zuvhmqamq53vqsd4rc82vyci4dr27pvof...@mail.gmail.com >>> . The use of hooks and dedicated language was suggested, however, it seemed >>> to be an overkill for the scenario and there was no consensus on this. >>> Exploring GUC-land was preferred. >> >> Cool. >> >>> Please find attached a patch, built on Michael's patch from above mentioned >>> thread, which supports choosing different number of nodes from each set i.e. >>> k nodes from set 1, l nodes from set 2, so on. >>> The format of synchronous_standby_names has been updated to standby name >>> followed by the required count separated by hyphen. Ex: 'aa-1, bb-3'. The >>> transaction waits for all the specified number of standby in each group. Any >>> extra nodes with the same name will be considered potential. The special >>> entry * for the standby name is also supported. >> >> I don't think that this is going in the good direction, what was >> suggested mainly by Robert was to use a micro-language that would >> allow far more extensibility that what you are proposing. See for >> example ca+tgmobpwoenmmepfx0jwrvqufxvbqrv26ezq_xhk21gxrx...@mail.gmail.com >> for some ideas. > > Doesn't this approach prevent us from specifying the "potential" synchronous > standby server? For example, imagine the case where you want to treat > the server AAA as synchronous standby. You also want to use the server BBB > as synchronous standby only if the server AAA goes down. IOW, you want to > prefer to the server AAA as synchronous standby rather than BBB. > Currently we can easily set up that case by just setting > synchronous_standby_names as follows. > > synchronous_standby_names = 'AAA, BBB' > > However, after we adopt the quorum commit feature with the proposed > macro-language, how can we set up that case? It seems impossible... > I'm afraid that this might be a backward compatibility issue.
Like that: synchronous_standby_names = 'AAA, BBB' The thing is that we need to support the old grammar as well to be fully backward compatible, and that's actually equivalent to that in the grammar: 1(AAA,BBB,CCC). This is something I understood was included in Robert's draft proposal. > Or we should extend the proposed micro-language so that it also can handle > the priority of each standby servers? Not sure that's possible, though. I am not sure that's really necessary, we need only to be able to manage priorities within each subgroup. Putting it in a shape that user can understand easily in pg_stat_replication looks more challenging though. We are going to need a new view like pg_stat_replication group that shows up the priority status of each group, with one record for each group, taking into account that a group can be included in another one. -- Michael -- Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org) To make changes to your subscription: http://www.postgresql.org/mailpref/pgsql-hackers