Re: Patch: Implement failover on libpq connect level.
Robert Haas <robertmhaas@gmail.com>
From: Robert Haas <robertmhaas@gmail.com>
To: Victor Wagner <vitus@wagner.pp.ru>
Cc: "pgsql-hackers@postgresql.org" <pgsql-hackers@postgresql.org>
Date: 2016-09-13T18:58:50Z
Lists: pgsql-hackers
On Fri, Sep 9, 2016 at 4:49 AM, Victor Wagner <vitus@wagner.pp.ru> wrote: > Random permutation is much more computationally complex than random > picking. It really isn't. The pseudocode given at https://en.wikipedia.org/wiki/Fisher%E2%80%93Yates_shuffle is all of 4 lines long, and one of those lines is a comment. The C implementation is longer, but not by much. Mind you, I haven't read the patch, so I don't know whether using something like this would make the code simpler or more complicated. However, if the two modes of operation are (1) try all hosts in random order and (2) try all hosts in the listed order, it's worth noting that the code for the second thing can be used to implement the first thing just by shuffling the list before you begin. > So, using random permutation instead of random pick wouln't help. > And keeping somewhere number of elements in the list wouldn't help > either unless we change linked list to completely different data > structure which allows random access. Is there a good reason not to use an array rather than a linked list? -- Robert Haas EnterpriseDB: http://www.enterprisedb.com The Enterprise PostgreSQL Company
Commits
-
libpq: Add target_session_attrs parameter.
- 721f7bd3cbcc 10.0 landed
-
Remove superuser checks in pgstattuple
- fd321a1dfd64 10.0 cited
-
Fix unwanted flushing of libpq's input buffer when socket EOF is seen.
- c405918858c0 9.6.0 cited