If Phoenix is querying for MetaData for every upsert in a preparedStatement then it definitely sounds like a bug/performance problem.How many nodes you have in cluster? How many regions in that phoenix table? Can you do batch upserts?
IMO, 30 ms is not really that horrible of a performance given that you also have a secondary index. Have you tried increasing number of write clients?--On Tue, Aug 2, 2016 at 10:54 AM, anupama agarwal <email@example.com> wrote:I don't have option to update my CDH5.7. My upsert query is taking 30ms with one fully covered index on table.I am using Spring JDBC template which uses prepared statement internally.
NamedParameterJdbcTemplate jdbcTemplate = jdbcTemplateMap.get(event.getNamespaceName()); jdbcTemplate.update(upsertQuery, event.getFieldMapPair()); Do I need to use explicit prepared statement? Link to codeOn Tue, Aug 2, 2016 at 10:31 PM, Anil Gupta <firstname.lastname@example.org> wrote:Are you using a prepared statement for upserts? IMO, query should be compiled only once when prepared statement is used.
Sent from my iPhone
On Aug 2, 2016, at 7:56 AM, Samarth Jain <email@example.com> wrote:Best bet is to updgrade your cloudera version to cdh5.7. It supports phoenix 4.7. See -
On Tuesday, August 2, 2016, anupama agarwal <firstname.lastname@example.org> wrote:Hi,We need to insert to do 10K upserts per second in our phoenix table. We are using phoenix 4.5 with CDH5.4.4. Problem is each upsert query is making rpc call to read metadata about the table."o.a.phoenix.compile.FromCompiler.createTableRef 446 - Re-resolved stale table"Phoenix have added feature to specify "UPDATE_CACHE_FREQUENCY" in 4.7 version. Any way to apply this in Phoenix 4.5 by caching metadata at client side? My table schema will change only once in 6 months. This would be really helpful for me.RegardsAnupamaThanks & Regards,