I am working on load test using Jmeter in pinot t...
# general
j
I am working on load test using Jmeter in pinot tables. Currently I am getting an exception related to connection pooling. Response messagejava.sql.SQLException Cannot create PoolableConnectionFactory (null) java.sql.SQLException: Cannot create PoolableConnectionFactory (null) at org.apache.commons.dbcp2.BasicDataSource.createPoolableConnectionFactory(BasicDataSource.java:669) ~[commons-dbcp2-2.7.0.jar:2.7.0] at org.apache.commons.dbcp2.BasicDataSource.createDataSource(BasicDataSource.java:544) ~[commons-dbcp2-2.7.0.jar:2.7.0] at org.apache.commons.dbcp2.BasicDataSource.getConnection(BasicDataSource.java:753) ~[commons-dbcp2-2.7.0.jar:2.7.0] at org.apache.jmeter.protocol.jdbc.config.DataSourceElement.initPool(DataSourceElement.java:308) [ApacheJMeter_jdbc.jar:5.3] at org.apache.jmeter.protocol.jdbc.config.DataSourceElement.testStarted(DataSourceElement.java:127) [ApacheJMeter_jdbc.jar:5.3] at org.apache.jmeter.engine.StandardJMeterEngine.notifyTestListenersOfStart(StandardJMeterEngine.java:205) [ApacheJMeter_core.jar:5.3] at org.apache.jmeter.engine.StandardJMeterEngine.run(StandardJMeterEngine.java:380) [ApacheJMeter_core.jar:5.3] at java.lang.Thread.run(Unknown Source) [?:1.8.0_271]
x
How do you query Pinot ? Which client are you using? Did you see any exceptions in Pinot controller or broker ?
j
@Xiang Fu @Neha Pawar @Kishore G From Jmeter, JDBC client used to querying pinot. There is no exceptions in Pinot controller or broker. The error from jmeter like this: 2020-12-01 195511,767 INFO o.a.j.e.StandardJMeterEngine: Running the test! 2020-12-01 195511,767 INFO o.a.j.s.SampleEvent: List of sample_variables: [] 2020-12-01 195511,769 INFO o.a.p.c.PinotDriver: Initiating connection to database for url: jdbc:pinot://instance-3:8099?controller=instance-3:9000 2020-12-01 195511,804 INFO o.a.p.c.Connection: Creating connection to broker list [instance-3:8099] 2020-12-01 195511,812 ERROR o.a.j.p.j.c.DataSourceElement: Error preinitializing the connection pool: demo@494046791 java.sql.SQLException: Cannot create PoolableConnectionFactory (null) at org.apache.commons.dbcp2.BasicDataSource.createPoolableConnectionFactory(BasicDataSource.java:669) ~[commons-dbcp2-2.7.0.jar:2.7.0] at org.apache.commons.dbcp2.BasicDataSource.createDataSource(BasicDataSource.java:544) ~[commons-dbcp2-2.7.0.jar:2.7.0] at org.apache.commons.dbcp2.BasicDataSource.getConnection(BasicDataSource.java:753) ~[commons-dbcp2-2.7.0.jar:2.7.0] at org.apache.jmeter.protocol.jdbc.config.DataSourceElement.initPool(DataSourceElement.java:308) [ApacheJMeter_jdbc.jar:5.3] at org.apache.jmeter.protocol.jdbc.config.DataSourceElement.testStarted(DataSourceElement.java:127) [ApacheJMeter_jdbc.jar:5.3] at org.apache.jmeter.engine.StandardJMeterEngine.notifyTestListenersOfStart(StandardJMeterEngine.java:205) [ApacheJMeter_core.jar:5.3] at org.apache.jmeter.engine.StandardJMeterEngine.run(StandardJMeterEngine.java:380) [ApacheJMeter_core.jar:5.3] at java.lang.Thread.run(Unknown Source) [?:1.8.0_271] Caused by: java.sql.SQLFeatureNotSupportedException at org.apache.pinot.client.base.AbstractBaseConnection.getAutoCommit(AbstractBaseConnection.java:116) ~[pinot-jdbc-client-0.5.0.jar:0.5.0-d87bbc9032c6efe626eb5f9ef1db4de7aa067179] at org.apache.commons.dbcp2.DelegatingConnection.getAutoCommit(DelegatingConnection.java:391) ~[commons-dbcp2-2.7.0.jar:2.7.0] at org.apache.commons.dbcp2.PoolableConnectionFactory.activateObject(PoolableConnectionFactory.java:116) ~[commons-dbcp2-2.7.0.jar:2.7.0] at org.apache.commons.dbcp2.BasicDataSource.validateConnectionFactory(BasicDataSource.java:117) ~[commons-dbcp2-2.7.0.jar:2.7.0] at org.apache.commons.dbcp2.BasicDataSource.createPoolableConnectionFactory(BasicDataSource.java:665) ~[commons-dbcp2-2.7.0.jar:2.7.0] ... 7 more 2020-12-01 195511,813 INFO o.a.j.g.u.JMeterMenuBar: setRunning(true, local) 2020-12-01 195511,817 INFO o.a.j.e.StandardJMeterEngine: Starting ThreadGroup: 1 : Thread Group 2020-12-01 195511,818 INFO o.a.j.e.StandardJMeterEngine: Starting 1 threads for group Thread Group. 2020-12-01 195511,818 INFO o.a.j.e.StandardJMeterEngine: Thread will continue on error 2020-12-01 195511,818 INFO o.a.j.t.ThreadGroup: Starting thread group... number=1 threads=1 ramp-up=1 delayedStart=false 2020-12-01 195511,818 INFO o.a.j.t.ThreadGroup: Started thread group number 1 2020-12-01 195511,818 INFO o.a.j.e.StandardJMeterEngine: All thread groups have been started 2020-12-01 195511,838 INFO o.a.j.t.JMeterThread: Thread started: Thread Group 1-1 2020-12-01 195511,839 INFO o.a.p.c.PinotDriver: Initiating connection to database for url: jdbc:pinot://instance-3:8099?controller=instance-3:9000 2020-12-01 195511,871 INFO o.a.p.c.Connection: Creating connection to broker list [instance-3:8099] 2020-12-01 195511,878 INFO o.a.j.t.JMeterThread: Thread is done: Thread Group 1-1 2020-12-01 195511,879 INFO o.a.j.t.JMeterThread: Thread finished: Thread Group 1-1 2020-12-01 195511,879 INFO o.a.j.e.StandardJMeterEngine: Notifying test listeners of end of test 2020-12-01 195511,879 INFO o.a.j.g.u.JMeterMenuBar: setRunning(false, local)
x
@Kartik Khare do you have any idea on this?
k
@Joice Jacob Which version of pinot and jdbc are you using?
j
@Kartik Khare Pinot version 0.6.0 JDBC version 0.5.0
@Kartik Khare I put following jars in jmeter lib directory pinot-api-0.2.0.jar pinot-jdbc-client-0.6.0.jar async-http-client-1.9.40.jar Then I try to connect pinot from jmeter. I got following error 020-12-02 123902,773 INFO o.a.j.e.StandardJMeterEngine: Running the test! 2020-12-02 123902,773 INFO o.a.j.s.SampleEvent: List of sample_variables: [] 2020-12-02 123902,776 INFO o.a.p.c.PinotDriver: Initiating connection to database for url: jdbc:pinot://instance-3:8099?controller=instance-3:9000 2020-12-02 123903,095 ERROR o.a.j.p.j.c.DataSourceElement: Error preinitializing the connection pool: demo@1835232964 java.sql.SQLException: Cannot create PoolableConnectionFactory (Failed to connect to url : jdbc:pinot://instance-3:8099?controller=instance-3:9000) at org.apache.commons.dbcp2.BasicDataSource.createPoolableConnectionFactory(BasicDataSource.java:669) ~[commons-dbcp2-2.7.0.jar:2.7.0] at org.apache.commons.dbcp2.BasicDataSource.createDataSource(BasicDataSource.java:544) ~[commons-dbcp2-2.7.0.jar:2.7.0] at org.apache.commons.dbcp2.BasicDataSource.getConnection(BasicDataSource.java:753) ~[commons-dbcp2-2.7.0.jar:2.7.0] at org.apache.jmeter.protocol.jdbc.config.DataSourceElement.initPool(DataSourceElement.java:308) [ApacheJMeter_jdbc.jar:5.3] at org.apache.jmeter.protocol.jdbc.config.DataSourceElement.testStarted(DataSourceElement.java:127) [ApacheJMeter_jdbc.jar:5.3] at org.apache.jmeter.engine.StandardJMeterEngine.notifyTestListenersOfStart(StandardJMeterEngine.java:205) [ApacheJMeter_core.jar:5.3] at org.apache.jmeter.engine.StandardJMeterEngine.run(StandardJMeterEngine.java:380) [ApacheJMeter_core.jar:5.3] at java.lang.Thread.run(Unknown Source) [?:1.8.0_271] Caused by: java.sql.SQLException: Failed to connect to url : jdbc:pinot://instance-3:8099?controller=instance-3:9000 at org.apache.pinot.client.PinotDriver.connect(PinotDriver.java:54) ~[pinot-jdbc-client-0.6.0.jar:0.6.0-bb646baceafcd9b849a1ecdec7a11203c7027e21] at org.apache.commons.dbcp2.DriverConnectionFactory.createConnection(DriverConnectionFactory.java:55) ~[commons-dbcp2-2.7.0.jar:2.7.0] at org.apache.commons.dbcp2.PoolableConnectionFactory.makeObject(PoolableConnectionFactory.java:355) ~[commons-dbcp2-2.7.0.jar:2.7.0] at org.apache.commons.dbcp2.BasicDataSource.validateConnectionFactory(BasicDataSource.java:115) ~[commons-dbcp2-2.7.0.jar:2.7.0] at org.apache.commons.dbcp2.BasicDataSource.createPoolableConnectionFactory(BasicDataSource.java:665) ~[commons-dbcp2-2.7.0.jar:2.7.0] ... 7 more Caused by: org.apache.pinot.client.PinotClientException: java.util.concurrent.ExecutionException: org.apache.pinot.client.PinotClientException: Pinot returned HTTP status 404, expected 200 at org.apache.pinot.client.controller.PinotControllerTransport.getBrokersFromController(PinotControllerTransport.java:100) ~[pinot-jdbc-client-0.6.0.jar:0.6.0-bb646baceafcd9b849a1ecdec7a11203c7027e21] at org.apache.pinot.client.PinotConnection.getBrokerList(PinotConnection.java:65) ~[pinot-jdbc-client-0.6.0.jar:0.6.0-bb646baceafcd9b849a1ecdec7a11203c7027e21] at org.apache.pinot.client.PinotConnection.<init>(PinotConnection.java:55) ~[pinot-jdbc-client-0.6.0.jar:0.6.0-bb646baceafcd9b849a1ecdec7a11203c7027e21] at org.apache.pinot.client.PinotConnection.<init>(PinotConnection.java:43) ~[pinot-jdbc-client-0.6.0.jar:0.6.0-bb646baceafcd9b849a1ecdec7a11203c7027e21] at org.apache.pinot.client.PinotDriver.connect(PinotDriver.java:52) ~[pinot-jdbc-client-0.6.0.jar:0.6.0-bb646baceafcd9b849a1ecdec7a11203c7027e21] at org.apache.commons.dbcp2.DriverConnectionFactory.createConnection(DriverConnectionFactory.java:55) ~[commons-dbcp2-2.7.0.jar:2.7.0] at org.apache.commons.dbcp2.PoolableConnectionFactory.makeObject(PoolableConnectionFactory.java:355) ~[commons-dbcp2-2.7.0.jar:2.7.0] at org.apache.commons.dbcp2.BasicDataSource.validateConnectionFactory(BasicDataSource.java:115) ~[commons-dbcp2-2.7.0.jar:2.7.0] at org.apache.commons.dbcp2.BasicDataSource.createPoolableConnectionFactory(BasicDataSource.java:665) ~[commons-dbcp2-2.7.0.jar:2.7.0] ... 7 more Caused by: java.util.concurrent.ExecutionException: org.apache.pinot.client.PinotClientException: Pinot returned HTTP status 404, expected 200 at org.apache.pinot.client.controller.response.ControllerResponseFuture.getStringResponse(ControllerResponseFuture.java:81) ~[pinot-jdbc-client-0.6.0.jar:0.6.0-bb646baceafcd9b849a1ecdec7a11203c7027e21] at org.apache.pinot.client.controller.response.ControllerTenantBrokerResponse$ControllerTenantBrokerResponseFuture.getStringResponse(ControllerTenantBrokerResponse.java:71) ~[pinot-jdbc-client-0.6.0.jar:0.6.0-bb646baceafcd9b849a1ecdec7a11203c7027e21] at org.apache.pinot.client.controller.response.ControllerTenantBrokerResponse$ControllerTenantBrokerResponseFuture.get(ControllerTenantBrokerResponse.java:81) ~[pinot-jdbc-client-0.6.0.jar:0.6.0-bb646baceafcd9b849a1ecdec7a11203c7027e21] at org.apache.pinot.client.controller.response.ControllerTenantBrokerResponse$ControllerTenantBrokerResponseFuture.get(ControllerTenantBrokerResponse.java:71) ~[pinot-jdbc-client-0.6.0.jar:0.6.0-bb646baceafcd9b849a1ecdec7a11203c7027e21] at org.apache.pinot.client.controller.response.ControllerResponseFuture.get(ControllerResponseFuture.java:58) ~[pinot-jdbc-client-0.6.0.jar:0.6.0-bb646baceafcd9b849a1ecdec7a11203c7027e21] at org.apache.pinot.client.controller.PinotControllerTransport.getBrokersFromController(PinotControllerTransport.java:98) ~[pinot-jdbc-client-0.6.0.jar:0.6.0-bb646baceafcd9b849a1ecdec7a11203c7027e21] at org.apache.pinot.client.PinotConnection.getBrokerList(PinotConnection.java:65) ~[pinot-jdbc-client-0.6.0.jar:0.6.0-bb646baceafcd9b849a1ecdec7a11203c7027e21] at org.apache.pinot.client.PinotConnection.<init>(PinotConnection.java:55) ~[pinot-jdbc-client-0.6.0.jar:0.6.0-bb646baceafcd9b849a1ecdec7a11203c7027e21] at org.apache.pinot.client.PinotConnection.<init>(PinotConnection.java:43) ~[pinot-jdbc-client-0.6.0.jar:0.6.0-bb646baceafcd9b849a1ecdec7a11203c7027e21] at org.apache.pinot.client.PinotDriver.connect(PinotDriver.java:52) ~[pinot-jdbc-client-0.6.0.jar:0.6.0-bb646baceafcd9b849a1ecdec7a11203c7027e21] at org.apache.commons.dbcp2.DriverConnectionFactory.createConnection(DriverConnectionFactory.java:55) ~[commons-dbcp2-2.7.0.jar:2.7.0] at org.apache.commons.dbcp2.PoolableConnectionFactory.makeObject(PoolableConnectionFactory.java:355) ~[commons-dbcp2-2.7.0.jar:2.7.0] at org.apache.commons.dbcp2.BasicDataSource.validateConnectionFactory(BasicDataSource.java:115) ~[commons-dbcp2-2.7.0.jar:2.7.0] at org.apache.commons.dbcp2.BasicDataSource.createPoolableConnectionFactory(BasicDataSource.java:665) ~[commons-dbcp2-2.7.0.jar:2.7.0] ... 7 more Caused by: org.apache.pinot.client.PinotClientException: Pinot returned HTTP status 404, expected 200 at org.apache.pinot.client.controller.response.ControllerResponseFuture.getStringResponse(ControllerResponseFuture.java:74) ~[pinot-jdbc-client-0.6.0.jar:0.6.0-bb646baceafcd9b849a1ecdec7a11203c7027e21] at org.apache.pinot.client.controller.response.ControllerTenantBrokerResponse$ControllerTenantBrokerResponseFuture.getStringResponse(ControllerTenantBrokerResponse.java:71) ~[pinot-jdbc-client-0.6.0.jar:0.6.0-bb646baceafcd9b849a1ecdec7a11203c7027e21] at org.apache.pinot.client.controller.response.ControllerTenantBrokerResponse$ControllerTenantBrokerResponseFuture.get(ControllerTenantBrokerResponse.java:81) ~[pinot-jdbc-client-0.6.0.jar:0.6.0-bb646baceafcd9b849a1ecdec7a11203c7027e21] at org.apache.pinot.client.controller.response.ControllerTenantBrokerResponse$ControllerTenantBrokerResponseFuture.get(ControllerTenantBrokerResponse.java:71) ~[pinot-jdbc-client-0.6.0.jar:0.6.0-bb646baceafcd9b849a1ecdec7a11203c7027e21] at org.apache.pinot.client.controller.response.ControllerResponseFuture.get(ControllerResponseFuture.java:58) ~[pinot-jdbc-client-0.6.0.jar:0.6.0-bb646baceafcd9b849a1ecdec7a11203c7027e21] at org.apache.pinot.client.controller.PinotControllerTransport.getBrokersFromController(PinotControllerTransport.java:98) ~[pinot-jdbc-client-0.6.0.jar:0.6.0-bb646baceafcd9b849a1ecdec7a11203c7027e21] at org.apache.pinot.client.PinotConnection.getBrokerList(PinotConnection.java:65) ~[pinot-jdbc-client-0.6.0.jar:0.6.0-bb646baceafcd9b849a1ecdec7a11203c7027e21] at org.apache.pinot.client.PinotConnection.<init>(PinotConnection.java:55) ~[pinot-jdbc-client-0.6.0.jar:0.6.0-bb646baceafcd9b849a1ecdec7a11203c7027e21] at org.apache.pinot.client.PinotConnection.<init>(PinotConnection.java:43) ~[pinot-jdbc-client-0.6.0.jar:0.6.0-bb646baceafcd9b849a1ecdec7a11203c7027e21] at org.apache.pinot.client.PinotDriver.connect(PinotDriver.java:52) ~[pinot-jdbc-client-0.6.0.jar:0.6.0-bb646baceafcd9b849a1ecdec7a11203c7027e21] at org.apache.commons.dbcp2.DriverConnectionFactory.createConnection(DriverConnectionFactory.java:55) ~[commons-dbcp2-2.7.0.jar:2.7.0] at org.apache.commons.dbcp2.PoolableConnectionFactory.makeObject(PoolableConnectionFactory.java:355) ~[commons-dbcp2-2.7.0.jar:2.7.0] at org.apache.commons.dbcp2.BasicDataSource.validateConnectionFactory(BasicDataSource.java:115) ~[commons-dbcp2-2.7.0.jar:2.7.0] at org.apache.commons.dbcp2.BasicDataSource.createPoolableConnectionFactory(BasicDataSource.java:665) ~[commons-dbcp2-2.7.0.jar:2.7.0] ... 7 more 2020-12-02 123903,099 INFO o.a.j.g.u.JMeterMenuBar: setRunning(true, local) 2020-12-02 123903,312 INFO o.a.j.e.StandardJMeterEngine: Starting ThreadGroup: 1 : Thread Group 2020-12-02 123903,312 INFO o.a.j.e.StandardJMeterEngine: Starting 1 threads for group Thread Group. 2020-12-02 123903,312 INFO o.a.j.e.StandardJMeterEngine: Thread will continue on error 2020-12-02 123903,312 INFO o.a.j.t.ThreadGroup: Starting thread group... number=1 threads=1 ramp-up=1 delayedStart=false 2020-12-02 123903,316 INFO o.a.j.t.ThreadGroup: Started thread group number 1 2020-12-02 123903,317 INFO o.a.j.e.StandardJMeterEngine: All thread groups have been started 2020-12-02 123903,324 INFO o.a.j.t.JMeterThread: Thread started: Thread Group 1-1 2020-12-02 123903,328 INFO o.a.p.c.PinotDriver: Initiating connection to database for url: jdbc:pinot://instance-3:8099?controller=instance-3:9000 2020-12-02 123903,658 INFO o.a.j.t.JMeterThread: Thread is done: Thread Group 1-1 2020-12-02 123903,658 INFO o.a.j.t.JMeterThread: Thread finished: Thread Group 1-1 2020-12-02 123903,659 INFO o.a.j.e.StandardJMeterEngine: Notifying test listeners of end of test 2020-12-02 123903,660 INFO o.a.j.g.u.JMeterMenuBar: setRunning(false, local)
k
Hi So there were same bug fixes in jdbc in 0.6.0 Can you try with that
The syntax has also changed in that
In 0.6.0 the jdbc url should be jdbc:pinot://localhost:9000?tenant=DefaultTenant
Badically the controller url should be provided
j
@Kartik Khare After I change new JDBC URL, I got following error 2020-12-02 124153,569 INFO o.a.j.e.StandardJMeterEngine: Running the test! 2020-12-02 124153,570 INFO o.a.j.s.SampleEvent: List of sample_variables: [] 2020-12-02 124153,573 ERROR o.a.j.p.j.c.DataSourceElement: Error preinitializing the connection pool: demo@716671952 java.sql.SQLException: Cannot create JDBC driver of class 'org.apache.pinot.client.PinotDriver' for connect URL 'jdbcpinot//instance 39000?tenant=DefaultTenant' at org.apache.commons.dbcp2.DriverFactory.createDriver(DriverFactory.java:75) ~[commons-dbcp2-2.7.0.jar:2.7.0] at org.apache.commons.dbcp2.BasicDataSource.createConnectionFactory(BasicDataSource.java:472) ~[commons-dbcp2-2.7.0.jar:2.7.0] at org.apache.commons.dbcp2.BasicDataSource.createDataSource(BasicDataSource.java:538) ~[commons-dbcp2-2.7.0.jar:2.7.0] at org.apache.commons.dbcp2.BasicDataSource.getConnection(BasicDataSource.java:753) ~[commons-dbcp2-2.7.0.jar:2.7.0] at org.apache.jmeter.protocol.jdbc.config.DataSourceElement.initPool(DataSourceElement.java:308) [ApacheJMeter_jdbc.jar:5.3] at org.apache.jmeter.protocol.jdbc.config.DataSourceElement.testStarted(DataSourceElement.java:127) [ApacheJMeter_jdbc.jar:5.3] at org.apache.jmeter.engine.StandardJMeterEngine.notifyTestListenersOfStart(StandardJMeterEngine.java:205) [ApacheJMeter_core.jar:5.3] at org.apache.jmeter.engine.StandardJMeterEngine.run(StandardJMeterEngine.java:380) [ApacheJMeter_core.jar:5.3] at java.lang.Thread.run(Unknown Source) [?:1.8.0_271] Caused by: java.lang.NullPointerException at org.apache.pinot.client.PinotDriver.acceptsURL(PinotDriver.java:63) ~[pinot-jdbc-client-0.6.0.jar:0.6.0-bb646baceafcd9b849a1ecdec7a11203c7027e21] at org.apache.commons.dbcp2.DriverFactory.createDriver(DriverFactory.java:67) ~[commons-dbcp2-2.7.0.jar:2.7.0] ... 8 more 2020-12-02 124153,577 INFO o.a.j.g.u.JMeterMenuBar: setRunning(true, local) 2020-12-02 124153,627 INFO o.a.j.e.StandardJMeterEngine: Starting ThreadGroup: 1 : Thread Group 2020-12-02 124153,627 INFO o.a.j.e.StandardJMeterEngine: Starting 1 threads for group Thread Group. 2020-12-02 124153,627 INFO o.a.j.e.StandardJMeterEngine: Thread will continue on error 2020-12-02 124153,627 INFO o.a.j.t.ThreadGroup: Starting thread group... number=1 threads=1 ramp-up=1 delayedStart=false 2020-12-02 124153,628 INFO o.a.j.t.ThreadGroup: Started thread group number 1 2020-12-02 124153,628 INFO o.a.j.e.StandardJMeterEngine: All thread groups have been started 2020-12-02 124153,630 INFO o.a.j.t.JMeterThread: Thread started: Thread Group 1-1 2020-12-02 124153,631 INFO o.a.j.t.JMeterThread: Thread is done: Thread Group 1-1 2020-12-02 124153,631 INFO o.a.j.t.JMeterThread: Thread finished: Thread Group 1-1 2020-12-02 124153,632 INFO o.a.j.e.StandardJMeterEngine: Notifying test listeners of end of test 2020-12-02 124153,632 INFO o.a.j.g.u.JMeterMenuBar: setRunning(false, local)
k
There seems to be syntax error in URL. There is no
:
after
pinot
in yours. The correct URL is
jdbc:<pinot://instance-3:9000?tenant=DefaultTenant>
j
@Kartik Khare hi After giving correct URL, i got the following exception 2020-12-02 210934,950 INFO o.a.j.e.StandardJMeterEngine: Running the test! 2020-12-02 210934,953 INFO o.a.j.s.SampleEvent: List of sample_variables: [] 2020-12-02 210934,959 INFO o.a.p.c.PinotDriver: Initiating connection to database for url: jdbc:pinot://instance-3:9000?tenant=DefaultTenant 2020-12-02 210937,885 INFO o.a.p.c.Connection: Creating connection to broker list [instance-2:8099, instance-1:8099, instance-3:8099] 2020-12-02 210943,169 ERROR o.a.j.JMeter: Uncaught exception in thread Thread[StandardJMeterEngine,6,main] java.lang.NoSuchMethodError: org.apache.pinot.client.ResultSet.getColumnDataType(I)Ljava/lang/String; at org.apache.pinot.client.PinotResultSet.<init>(PinotResultSet.java:65) ~[pinot-jdbc-client-0.6.0.jar:0.6.0-bb646baceafcd9b849a1ecdec7a11203c7027e21] at org.apache.pinot.client.PinotStatement.executeQuery(PinotStatement.java:68) ~[pinot-jdbc-client-0.6.0.jar:0.6.0-bb646baceafcd9b849a1ecdec7a11203c7027e21] at org.apache.pinot.client.PinotStatement.execute(PinotStatement.java:78) ~[pinot-jdbc-client-0.6.0.jar:0.6.0-bb646baceafcd9b849a1ecdec7a11203c7027e21] at org.apache.commons.dbcp2.PoolableConnectionFactory.initializeConnection(PoolableConnectionFactory.java:310) ~[commons-dbcp2-2.7.0.jar:2.7.0] at org.apache.commons.dbcp2.PoolableConnectionFactory.makeObject(PoolableConnectionFactory.java:360) ~[commons-dbcp2-2.7.0.jar:2.7.0] at org.apache.commons.dbcp2.BasicDataSource.validateConnectionFactory(BasicDataSource.java:115) ~[commons-dbcp2-2.7.0.jar:2.7.0] at org.apache.commons.dbcp2.BasicDataSource.createPoolableConnectionFactory(BasicDataSource.java:665) ~[commons-dbcp2-2.7.0.jar:2.7.0] at org.apache.commons.dbcp2.BasicDataSource.createDataSource(BasicDataSource.java:544) ~[commons-dbcp2-2.7.0.jar:2.7.0] at org.apache.commons.dbcp2.BasicDataSource.getConnection(BasicDataSource.java:753) ~[commons-dbcp2-2.7.0.jar:2.7.0] at org.apache.jmeter.protocol.jdbc.config.DataSourceElement.initPool(DataSourceElement.java:308) ~[ApacheJMeter_jdbc.jar:5.3] at org.apache.jmeter.protocol.jdbc.config.DataSourceElement.testStarted(DataSourceElement.java:127) ~[ApacheJMeter_jdbc.jar:5.3] at org.apache.jmeter.engine.StandardJMeterEngine.notifyTestListenersOfStart(StandardJMeterEngine.java:205) ~[ApacheJMeter_core.jar:5.3] at org.apache.jmeter.engine.StandardJMeterEngine.run(StandardJMeterEngine.java:380) ~[ApacheJMeter_core.jar:5.3] at java.lang.Thread.run(Unknown Source) [?:1.8.0_271]
k
Hi, You can copy the https://repo1.maven.org/maven2/org/apache/pinot/pinot-java-client/0.6.0/pinot-java-client-0.6.0.jar the jar to the same directory where you have jdbc jar. and try agai
j
@Kartik Khare I got this exception 2020-12-02 212635,907 INFO o.a.j.e.u.CompoundVariable: Note: Function class names must contain the string: '.functions.' 2020-12-02 212635,908 INFO o.a.j.e.u.CompoundVariable: Note: Function class names must not contain the string: '.gui.' 2020-12-02 212636,389 INFO o.a.p.c.PinotDriver: Initiating connection to database for url: jdbc:pinot://instance-3:9000?tenant=DefaultTenant 2020-12-02 212639,594 INFO o.a.p.c.Connection: Creating connection to broker list [instance-1:8099, instance-3:8099, instance-2:8099] 2020-12-02 212640,320 ERROR o.a.j.JMeter: Uncaught exception in thread Thread[StandardJMeterEngine,6,main] java.lang.NoSuchMethodError: org.apache.pinot.client.ResultSet.getColumnDataType(I)Ljava/lang/String; at org.apache.pinot.client.PinotResultSet.<init>(PinotResultSet.java:65) ~[pinot-jdbc-client-0.6.0.jar:0.6.0-bb646baceafcd9b849a1ecdec7a11203c7027e21] at org.apache.pinot.client.PinotStatement.executeQuery(PinotStatement.java:68) ~[pinot-jdbc-client-0.6.0.jar:0.6.0-bb646baceafcd9b849a1ecdec7a11203c7027e21] at org.apache.pinot.client.PinotStatement.execute(PinotStatement.java:78) ~[pinot-jdbc-client-0.6.0.jar:0.6.0-bb646baceafcd9b849a1ecdec7a11203c7027e21] at org.apache.commons.dbcp2.PoolableConnectionFactory.initializeConnection(PoolableConnectionFactory.java:310) ~[commons-dbcp2-2.7.0.jar:2.7.0] at org.apache.commons.dbcp2.PoolableConnectionFactory.makeObject(PoolableConnectionFactory.java:360) ~[commons-dbcp2-2.7.0.jar:2.7.0] at org.apache.commons.dbcp2.BasicDataSource.validateConnectionFactory(BasicDataSource.java:115) ~[commons-dbcp2-2.7.0.jar:2.7.0] at org.apache.commons.dbcp2.BasicDataSource.createPoolableConnectionFactory(BasicDataSource.java:665) ~[commons-dbcp2-2.7.0.jar:2.7.0] at org.apache.commons.dbcp2.BasicDataSource.createDataSource(BasicDataSource.java:544) ~[commons-dbcp2-2.7.0.jar:2.7.0] at org.apache.commons.dbcp2.BasicDataSource.getConnection(BasicDataSource.java:753) ~[commons-dbcp2-2.7.0.jar:2.7.0] at org.apache.jmeter.protocol.jdbc.config.DataSourceElement.initPool(DataSourceElement.java:308) ~[ApacheJMeter_jdbc.jar:5.3] at org.apache.jmeter.protocol.jdbc.config.DataSourceElement.testStarted(DataSourceElement.java:127) ~[ApacheJMeter_jdbc.jar:5.3] at org.apache.jmeter.engine.StandardJMeterEngine.notifyTestListenersOfStart(StandardJMeterEngine.java:205) ~[ApacheJMeter_core.jar:5.3] at org.apache.jmeter.engine.StandardJMeterEngine.run(StandardJMeterEngine.java:380) ~[ApacheJMeter_core.jar:5.3] at java.lang.Thread.run(Unknown Source) [?:1.8.0_271]
x
Hmm can you try to copy all the jars under libs directory when you untar the Pinot distribution 0.6.0 ? https://pinot.apache.org/download
Also seems we need to upgrade Pinot client and common jars?
can you put this into a git repo, so we can take a look and see what’s missing ?
Copy code
java.lang.NoSuchMethodError: org.apache.pinot.client.ResultSet.getColumnDataType(I)Ljava/lang/String;
for this exception, seems we need to have pinot-java-client lib
not sure why it’s still throwing exception
do you have old pinot-client libs there?
j
We have a simulator for the load testing so we have tested pinot on it. But we got the same error in the simulator and JMeter. So we conclude that connection pooling is not supported in pinot. We hope to get an update related to connection pooling in the future. Exception is as follows org.apache.tomcat.dbcp.dbcp.SQLNestedException: Cannot create PoolableConnectionFactory (null) at org.apache.tomcat.dbcp.dbcp.BasicDataSource.createPoolableConnectionFactory(BasicDataSource.java:1549) at org.apache.tomcat.dbcp.dbcp.BasicDataSource.createDataSource(BasicDataSource.java:1388) at org.apache.tomcat.dbcp.dbcp.BasicDataSource.getConnection(BasicDataSource.java:1044) at com.sixdee.hbase.JDBCExecuter.getConnection(JDBCExecuter.java:395) at com.sixdee.hbase.JDBCExecuter.executeSelect(JDBCExecuter.java:236) at com.sixdee.hbase.JDBCExecuter.run(JDBCExecuter.java:183) Caused by: java.sql.SQLFeatureNotSupportedException at org.apache.pinot.client.base.AbstractBaseConnection.getAutoCommit(AbstractBaseConnection.java:116) at org.apache.tomcat.dbcp.dbcp.DelegatingConnection.getAutoCommit(DelegatingConnection.java:337) at org.apache.tomcat.dbcp.dbcp.PoolableConnectionFactory.activateObject(PoolableConnectionFactory.java:703) at org.apache.tomcat.dbcp.dbcp.BasicDataSource.validateConnectionFactory(BasicDataSource.java:1557) at org.apache.tomcat.dbcp.dbcp.BasicDataSource.createPoolableConnectionFactory(BasicDataSource.java:1545) ... 5 more