npgsql icon indicating copy to clipboard operation
npgsql copied to clipboard

Make round-robin more fair

Open vonzshik opened this issue 4 years ago • 3 comments

Fixes #4181

@Brar

vonzshik avatar Dec 02 '21 12:12 vonzshik

@Brar could you please try this one?

vonzshik avatar Dec 03 '21 10:12 vonzshik

could you please try this one?

Better. Not perfect though.

[Npgsql]
    Average commands per multiplexing batch                                                                                                                     -1
    Average write time per multiplexing batch (us) (us)                                                                                                         -1
    Busy Connections (Host=localhost;Load Balance Hosts=True;Target Session Attributes=standby;Database=LoadBalancing;Command Timeout=3600;Port=5434])           0
    Busy Connections (Host=localhost;Load Balance Hosts=True;Target Session Attributes=standby;Database=LoadBalancing;Command Timeout=3600;Port=5435])           0
    Busy Connections (Host=localhost;Load Balance Hosts=True;Target Session Attributes=standby;Database=LoadBalancing;Command Timeout=3600;Port=5436])           4
    Busy Connections (Host=localhost;Load Balance Hosts=True;Target Session Attributes=standby;Database=LoadBalancing;Command Timeout=3600;Port=5437])           3
    Busy Connections (Host=localhost;Load Balance Hosts=True;Target Session Attributes=standby;Database=LoadBalancing;Command Timeout=3600;Port=5438])           2
    Busy Connections (Host=localhost;Load Balance Hosts=True;Target Session Attributes=standby;Database=LoadBalancing;Command Timeout=3600;Port=5439])           3
    Busy Connections (Host=localhost;Port=5435;Database=LoadBalancing;Pooling=False;Multiplexing=False])                                                         0
    Busy Connections (Host=localhost;Port=5435;Database=postgres;Pooling=False;Multiplexing=False])                                                              0
    Bytes Read (Count / 1 sec)                                                                                                                                   0
    Bytes Written (Count / 1 sec)                                                                                                                                0
    Command Rate (Count / 1 sec)                                                                                                                                 0
    Connection Pools                                                                                                                                             8
    Current Commands                                                                                                                                            12
    Failed Commands                                                                                                                                              0
    Idle Connections (Host=localhost;Load Balance Hosts=True;Target Session Attributes=standby;Database=LoadBalancing;Command Timeout=3600;Port=5434])           0
    Idle Connections (Host=localhost;Load Balance Hosts=True;Target Session Attributes=standby;Database=LoadBalancing;Command Timeout=3600;Port=5435])           0
    Idle Connections (Host=localhost;Load Balance Hosts=True;Target Session Attributes=standby;Database=LoadBalancing;Command Timeout=3600;Port=5436])           0
    Idle Connections (Host=localhost;Load Balance Hosts=True;Target Session Attributes=standby;Database=LoadBalancing;Command Timeout=3600;Port=5437])           0
    Idle Connections (Host=localhost;Load Balance Hosts=True;Target Session Attributes=standby;Database=LoadBalancing;Command Timeout=3600;Port=5438])           0
    Idle Connections (Host=localhost;Load Balance Hosts=True;Target Session Attributes=standby;Database=LoadBalancing;Command Timeout=3600;Port=5439])           0
    Idle Connections (Host=localhost;Port=5435;Database=LoadBalancing;Pooling=False;Multiplexing=False])                                                         0
    Idle Connections (Host=localhost;Port=5435;Database=postgres;Pooling=False;Multiplexing=False])                                                              0
    Prepared Commands Ratio (%)                                                                                                                                  0
    Total Commands                                                                                                                                              33

Brar avatar Dec 04 '21 13:12 Brar

@roji What do you think? I'm not sure there is a lot we can do without adding a timer to enforce fair distribution.

vonzshik avatar Dec 19 '21 18:12 vonzshik