phoenix-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Ben Gilbert <ben.gilb...@gmail.com>
Subject Prepared Statement Performance Improvement
Date Mon, 29 Jan 2018 09:59:00 GMT
While testing locally I have spotted some areas I would like to change for
what could be significant performance improvements.

One of our use cases is bulk fetching many rows (10_000) by rowkey with
'select x where rowkey in (:ids)' statements. (The ids from an external
source).

When doing this 25% of the time is spent in:

org.apache.phoenix.jdbc.PhoenixPreparedStatement.PhoenixPreparedStatement(PhoenixConnection,
String)
org.apache.phoenix.jdbc.PhoenixStatement.parseStatement(String)

I have worked round this temporarily by writing a PreparedStatementCache
and copying fields using reflection. This is somewhat ugly and I would like
to submit a pull request with caching of the CompilableStatement. Any
preferences/ thoughts of how I should implement this?

As a note after the PreparedStatementCache was put in I am still seeing 14%
of the time in org.apache.phoenix.compile.QueryCompiler.compile() but this
looks much harder to improve.

Mime
  • Unnamed multipart/alternative (inline, None, 0 bytes)
View raw message