JDBC Connection Load Balancing with Yellowfin

Ed Kilby shared this question 11 months ago
Answered

We are using yellowfin to connect to our Vertica database cluster but we are looking to implement some resiliency and load balancing in that connectivity.

We have three Vertica nodes and would like yellowfin to select one of those node to use when a query is issued, or at least when the connection pool is initiated.

Before we buy a load balancer and stick it between our yellowfin servers and vertica servers, is there anything in Yellowfin that supports JDBC connection load balancing. The following page from Vertica suggests how this is used, but I'm assuming that this is something that yellowfin would have to implement (as yellowfin is the "client")

https://my.vertica.com/docs/9.0.x/HTML/index.htm#Authoring/ConnectingToVertica/ClientJDBC/EnablingNativeConnectionLoadBalancingInJDBC.htm


On a second point I assume if there is no JDBC load balancing in Yellowfin that placing a load balancer between yellowfin and Vertica is OK?

Comments (4)

photo
1

That is a very good question and I'm going to need someone with some expertise to help answer.

Sorry for the delays on this, should have something in the next day or two.


Regards,

David

photo
1

Hi,

I have previously spoken to Vertica engineers on how this works. The Vertica JDBC driver handles clustering itself. A flag is required on the connection string to enable clustering. However Yellowfin's Vertica connection wizard does not currently support this. (There is an enhancement request raised to add this option).

You can still enable this functionality using a Generic JDBC Connection in the Yellowfin connection settings. Select Generic JDBC Connection, Choose the Vertica Driver from the dropdown list, and enter the connection string for Vertica, which is of the form:

jdbc:vertica://<veritca-host>:<vertica-port>/<database>?ConnectionLoadBalance=true

With the option ConnectionLoadBalance=true, the Vertica driver will use the load balancing scheme configured in the Vertica system.

With a Generic JDBC Connection, Yellowfin will still detect that is connected to Vertica and generate Vertica compliant SQL.

You can change an existing Vertica connection in Yellowfin to a Generic JDBC Connection without impacting the Yellowifn content created against that source.

There are more details about the connection string options here:

https://my.vertica.com/docs/9.0.x/HTML/index.htm#Authoring/ConnectingToVertica/ClientJDBC/JDBCConnectionProperties.htm

Thanks,

Peter

photo
1

Hey Peter, thanks very much for this information. We'll be trying this out shortly and update the ticket when its complete

photo
1

Hey Ed, just wondering if you've managed to test it out?


Thanks,

David

photo