Hello, I'm seeking for advice, as i've been struggling for days with problems under heavy load of phoenix query server. To explain a bit more : i have 3 phoenix query servers behind knox. I load balanced them through the ha role in knox. I'm accessing phoenix through php webservices using the simba's odbc driver. When testing each webservice, everything works fine. (Only curious thing is that it takes nearly one second to establish first connection (odbc_connect) to phoenix, then the odbc_connect is very fast.) When i open my website, which takes quite a load (but nothing that a single mysql server used to handle, so i'm wondering why), in one minute, i get my apache log filled with some errors regarding the failed connections to phoenix : mainly to different errors (i use the error_log php function to log in these files what odbc_error_message returns:) after a failed odbc_connect: S1000 ## [unixODBC][Hortonworks][Phoenix] (40) Error with HTTP request, response code: 500 after a failed cluster query (which might result for the previous error): S1000 ## [Hortonworks][Phoenix] (2100) An error occured while preparing statement: \n8org.apache.calcite.avatica.proto.Responses$ErrorResponse\x12\x1a\x13\n\x1a\x12org.apache.calcite.avatica.NoSuchConnectionException\n\tat org.apache.calcite.avatica.jdbc.JdbcMeta.getConnection(JdbcMeta.java:565)\n\tat org.apache.calcite.avatica.jdbc.JdbcMeta.prepare(JdbcMeta.java:690)\n\tat org.apache.calcite.avatica.remote.LocalService.apply(LocalService.java:209)\n\tat org.apache.calcite.avatica.remote.Service$PrepareRequest.accept(Service.java:1199)\n\ta##select next value for "akinator_device_tags_id" as "nextvalue" Would you have any clue or insight about that ? Am i missing some important phoenix config options ? At first i thought about write latency, linked to index update in phoenix, but i also get the errors even when deactivating upsert queries, allowing only select ones.
... View more
Hello, I'm using Simba's ODBC phoenix driver. I have a question regarding connection pooling. Reading the docs, my understanding was that the odbc driver was handling connection pulling on its side. I'm using this driver from php webservices. What is the best practice ? Retrieve new connection from odbc driver with method odbc_connect or try to store the connection returned by odbc_connect and test its state to see if there is a need to renew it ? I need pretty good performance for these webservices but i'm a bit lost, what would you advise ? Big big thanks for your answers.
... View more