phoenix-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Alex Araujo (JIRA)" <j...@apache.org>
Subject [jira] [Created] (PHOENIX-4413) Possible queryserver memory leak when reusing connections and statements
Date Wed, 29 Nov 2017 16:18:00 GMT
Alex Araujo created PHOENIX-4413:
------------------------------------

             Summary: Possible queryserver memory leak when reusing connections and statements
                 Key: PHOENIX-4413
                 URL: https://issues.apache.org/jira/browse/PHOENIX-4413
             Project: Phoenix
          Issue Type: Bug
    Affects Versions: 4.13.0
            Reporter: Alex Araujo


While testing client-side connection pooling using the [C# client from Microsoft|https://github.com/Azure/hdinsight-phoenix-sharp],
we attempted to avoid creating new connections and statements for every Phoenix statement
execution (essentially just a simple SELECT for single key).  The results were very positive
from a performance perspective.  However, after a certain amount of statements executed in
this manner, memory on the PQS appears to spike, and performance degrades significantly.

Steps to Recreate

Setup
1) Create the table: "CREATE TABLE  <TableName> (TestKey varchar(255) PRIMARY KEY, TestValue
varchar(10000))".

2) Populate the table with 100 random TestKey and TestValue records.

Execution (if done with one thread, this can take up to 24 hours, so we multithreaded it)
1) Create connection using OpenConnectionRequestAsync.
2) Create statement using CreateStatementRequestAsync.
3) Loop n times, selecting a record with a single random key: "SELECT TestKey, TestValue FROM
<TableName> WHERE TestKey = <TestKey>'' issued using PrepareAndExecuteRequestAsync.
4) Close statement.
5) Close connection.

Teardown
1) Drop the table.



--
This message was sent by Atlassian JIRA
(v6.4.14#64029)

Mime
View raw message