Re: Support load balancing in libpq
От | Aleksander Alekseev |
---|---|
Тема | Re: Support load balancing in libpq |
Дата | |
Msg-id | CAJ7c6TNkG1EMqtvCOt2t06J+Bep6VsZ+NtmuPr89TXWxr614JQ@mail.gmail.com обсуждение исходный текст |
Ответ на | Support load balancing in libpq (Jelte Fennema <Jelte.Fennema@microsoft.com>) |
Ответы |
Re: Support load balancing in libpq
|
Список | pgsql-hackers |
Hi Jelte, > Load balancing connections across multiple read replicas is a pretty > common way of scaling out read queries. There are two main ways of doing > so, both with their own advantages and disadvantages: > 1. Load balancing at the client level > 2. Load balancing by connecting to an intermediary load balancer > > Option 1 has been supported by JDBC (Java) for 8 years and Npgsql (C#) > merged support about a year ago. This patch adds the same functionality > to libpq. The way it's implemented is the same as the implementation of > JDBC, and contains two levels of load balancing: > 1. The given hosts are randomly shuffled, before resolving them > one-by-one. > 2. Once a host its addresses get resolved, those addresses are shuffled, > before trying to connect to them one-by-one. Thanks for the patch. I don't mind the feature but I believe the name is misleading. Unless I missed something, the patch merely allows choosing a random host from the provided list. By load balancing people generally expect something more elaborate - e.g. sending read-only queries to replicas and read/write queries to the primary, or perhaps using weights proportional to the server throughput/performance. Randomization would be a better term for what the patch does. -- Best regards, Aleksander Alekseev
В списке pgsql-hackers по дате отправления: