Hi Mujtaba,

See the answers inline below:

* How are you running Phoenix queries? We are using apache-jmeter and the jdbc 
sampler.
* Were the concurrent Phoenix queries using the same JVM? Yes.
* Was the JVM restarted after changing number of concurrent users? Yes.
* Is the response time plotted when query is executed for the first time or 
second or average of both? Average. We see response times ranging significantly 
even via sqlline. i.e. the same query run 11 times sequentially takes anything 
between 17ms to around 489ms with no other load on the server.
* Is the UUID filtered on randomly distributed? Yes.
* Does UUID match a single row? Yes.
* It seems that even non-concurrent Phoenix query which filters on UUID takes 
500ms in your environment. Can you try the same query in Sqlline a few times 
and see how much time it takes for each run? We run the same query 11 times via 
sqlline and these were the response times:
1 row selected (0.489 seconds)
1 row selected (0.279 seconds)
1 row selected (0.227 seconds)
1 row selected (0.22 seconds)
1 row selected (0.17 seconds)
1 row selected (0.152 seconds)
1 row selected (0.129 seconds)
1 row selected (0.17 seconds)
1 row selected (0.153 seconds)
1 row selected (0.259 seconds)
1 row selected (0.102 seconds)

* What is the explain<https://phoenix.apache.org/language/#explain> plan for 
your Phoenix query? CLIENT 1-CHUNK PARALLEL 1-WAY ROUND ROBIN POINT LOOKUP ON 1 
KEY OVER schema.DOCUMENTS
* If it's slow in Sqlline as well then try truncating your SYSTEM.STATS table 
and reconnect Sqlline and execute the query again. I think the issue is that 
the response times vary a lot, with 600 concurrent users the same query can 
take anything between 2ms to 10s.
* Can you share your table schema and how you ran Phoenix queries and your 
HBase equivalent code? It is a simple table with 15 columns, the primary key is 
the uuid which is of type VARCHAR(36). The hbase equivalent code is:

HTableInterface hTable = pool.getTable("schema.DOCUMENTS");

Get get = new Get(toBytes(saltPrefix + uuid));

Result result = hTable.get(get);

* Any phoenix tuning defaults that you changed? No.


Kind Regards,


Edu


On Wed, Aug 31, 2016 at 10:40 AM, Mujtaba Chohan 
<[email protected]<mailto:[email protected]>> wrote:
Something seems inherently wrong in these test results.

* How are you running Phoenix queries? Were the concurrent Phoenix queries 
using the same JVM? Was the JVM restarted after changing number of concurrent 
users?
* Is the response time plotted when query is executed for the first time or 
second or average of both?
* Is the UUID filtered on randomly distributed? Does UUID match a single row?
* It seems that even non-concurrent Phoenix query which filters on UUID takes 
500ms in your environment. Can you try the same query in Sqlline a few times 
and see how much time it takes for each run?
* If it's slow in Sqlline as well then try truncating your SYSTEM.STATS
* Can you share your table schema and how you ran Phoenix queries and your 
HBase equivalent code?




On Wed, Aug 31, 2016 at 5:42 AM, Narros, Eduardo (ELS-LON) 
<[email protected]<mailto:[email protected]>> wrote:

Hi,


We are exploring starting to use Phoenix and have done some load tests to see 
whether Phoenix would scale. We have noted that compared to HBase, Phoenix 
response times have a much slower average as the number of concurrent users 
increases. We are trying to understand whether this is expected or there is 
something we are missing out.


This is the test we have performed:

  *   Create table (20 columns) and load it with 400 million records indexed 
via a column called 'uuid'.
  *   Perform the following queries using 10,20,100,200,400 and 600 users per 
second, each user will perform each query twice:
     *   Phoenix: select * from schema.DOCUMENTS where uuid = ?
     *   Phoenix: select /*+ SERIAL SMALL */* from schema.DOCUMENTS where uuid 
= ?
     *   Hbase equivalent to: select * from schema.DOCUMENTS where uuid = ?
  *   The results are attached and they show that Phoenix response times are at 
least an order of magnitude above those of HBase

The tests were run from the Master node of a CDH5.7.2 cluster with Phoenix 
4.7.0.

Are these test results expected?

Kind Regards,

Edu

________________________________

Elsevier Limited. Registered Office: The Boulevard, Langford Lane, Kidlington, 
Oxford, OX5 1GB, United Kingdom, Registration No. 1982084, Registered in 
England and Wales.



________________________________

Elsevier Limited. Registered Office: The Boulevard, Langford Lane, Kidlington, 
Oxford, OX5 1GB, United Kingdom, Registration No. 1982084, Registered in 
England and Wales.

Reply via email to