Options

vsql connection behave differently from ODBC or JDBC

Hi,

To connect to database, I have a round-robin DNS alias that includes IP from all nodes. That nicely adds load balancing from DNS.
All clients are connecting using DNS round-robin alias.

Now I got node down and recovering.

I observe that JDBC and ODBC clients continue to connect properly. When client got connection to node that is down, it transparently reconnect to other IP. That result that client always receive working connection, even if one node is down. No additional config parameter like load balancing supplied to JDBC or ODBC clients.

vsql, on other side, throw an error each time it gets IP for recovering node:
vsql: FATAL 4149: Node startup/recovery in progress. Not yet ready to accept connections

Looks like client connectivity team did a great job for JDBC and ODBC driver, but left vsql out in cold as low priority.

Would it be possible to ask client team to make vsql to work same way as JDBC and ODBC clients.

If connection is to DNS alias that resolves to multiple IP addresses, chose random IP. If connection to random IP does not work with above error, transparently chose next IP address and try to connect again.

My database is 12.0.4-14, all clients are 12.0.4-X.

Thank you
Sergey

Answers

  • Options
    Bryan_HBryan_H Vertica Employee Administrator

    Try the -B option to set backups. Specify the DNS alias as the backup, which should cause the client to retry and get a different server IP. I'll ask the client team whether they would consider timeout and retry options similar to JDBC/ODBC.

  • Options

    Experiments and practice show -C options works just fine when one host is down or one Vertica node is recovering.
    Still, it is different behaviour for vsql comparing to other Vertica drivers. Would be nice to see same behaviour from all Vertica drivers.

Leave a Comment

BoldItalicStrikethroughOrdered listUnordered list
Emoji
Image
Align leftAlign centerAlign rightToggle HTML viewToggle full pageToggle lights
Drop image/file