Thanks Maryann,

I have tried hint “USE_SORT_MERGE_JOIN”, but it just gets stuck for 2-3 hours. 
doesn’t show any errors. it does copy data in ResultSpooler on client machine, 
and then I see it merges some data into ResultSpooler and delete some of the 
ResultSpooler, but after that I don’t get any result or errors for hours.

I have tried above test case 2 times but same result.

Thanks,
Krunal.

From: Maryann Xue <maryann....@gmail.com<mailto:maryann....@gmail.com>>
Date: Tuesday, June 16, 2015 at 3:20 PM
To: Krunal <krunal.varaj...@ask.com<mailto:krunal.varaj...@ask.com>>
Cc: "user@phoenix.apache.org<mailto:user@phoenix.apache.org>" 
<user@phoenix.apache.org<mailto:user@phoenix.apache.org>>
Subject: Re: Join create OOM with java heap space on phoenix client

Hi Krunal,

Can you try with merge join by specifying the hint "USE_SORT_MERGE_JOIN"? and 
if it still does not work, would you mind posting the exact error message of 
running this merge-join?


Thanks,
Maryann

On Tue, Jun 16, 2015 at 6:12 PM, Krunal Varajiya 
<krunal.varaj...@ask.com<mailto:krunal.varaj...@ask.com>> wrote:
Does anybody has any idea why below join is throwing OOM error? I will really 
appreciate any help here. We are stuck here is as none of our join works even 
with 5M rows.

From: Krunal <krunal.varaj...@ask.com<mailto:krunal.varaj...@ask.com>>
Reply-To: "user@phoenix.apache.org<mailto:user@phoenix.apache.org>" 
<user@phoenix.apache.org<mailto:user@phoenix.apache.org>>
Date: Wednesday, June 10, 2015 at 3:49 PM
To: Maryann Xue <maryann....@gmail.com<mailto:maryann....@gmail.com>>

Cc: "user@phoenix.apache.org<mailto:user@phoenix.apache.org>" 
<user@phoenix.apache.org<mailto:user@phoenix.apache.org>>
Subject: Re: Join create OOM with java heap space on phoenix client

Hey Maryann,

Sorry I just realized that I am using Phoenix 4.3.0.

I am using sample tables generated using performance.py script from Phoenix 
package! I have generated 5M, 25M, 100M using this script and running join in 
these tables!

Here is table definition:


                TABLE_CAT                 |               TABLE_SCHEM           
     |                TABLE_NAME                 |               COLUMN_NAME    
            |                DATA_TYPE     |

+------------------------------------------+------------------------------------------+------------------------------------------+------------------------------------------+------------------------------+

|                                          |                                    
      | PERFORMANCE_5000000                      | HOST                         
            | 1                            |

|                                          |                                    
      | PERFORMANCE_5000000                      | DOMAIN                       
            | 12                           |

|                                          |                                    
      | PERFORMANCE_5000000                      | FEATURE                      
            | 12                           |

|                                          |                                    
      | PERFORMANCE_5000000                      | DATE                         
            | 91                           |

|                                          |                                    
      | PERFORMANCE_5000000                      | CORE                         
            | -5                           |

|                                          |                                    
      | PERFORMANCE_5000000                      | DB                           
            | -5                           |

|                                          |                                    
      | PERFORMANCE_5000000

Thank you for your time!
- Krunal

From: Maryann Xue <maryann....@gmail.com<mailto:maryann....@gmail.com>>
Date: Monday, June 1, 2015 at 8:13 AM
To: Krunal <krunal.varaj...@ask.com<mailto:krunal.varaj...@ask.com>>
Cc: "user@phoenix.apache.org<mailto:user@phoenix.apache.org>" 
<user@phoenix.apache.org<mailto:user@phoenix.apache.org>>
Subject: Re: Join create OOM with java heap space on phoenix client

Hi Krunal,

Thanks for the explanation! I am back to work now. Could you please also post 
the table definition? I have some guess here, but need more information to 
confirm. And which version of Phoenix are you using?


Thanks,
Maryann

On Wed, May 27, 2015 at 4:55 PM, Krunal Varajiya 
<krunal.varaj...@ask.com<mailto:krunal.varaj...@ask.com>> wrote:
Hey Maryann

Thanks for your reply! I understand it is difficult to access some stuff in 
China! I can wait till you come back, meantime I will keep you posted on if we 
make any progress on this!

My comments are below in blue:

Have a fun time in China!
- Krunal


From: Maryann Xue <maryann....@gmail.com<mailto:maryann....@gmail.com>>
Reply-To: "user@phoenix.apache.org<mailto:user@phoenix.apache.org>" 
<user@phoenix.apache.org<mailto:user@phoenix.apache.org>>
Date: Tuesday, May 26, 2015 at 5:45 PM
To: "user@phoenix.apache.org<mailto:user@phoenix.apache.org>" 
<user@phoenix.apache.org<mailto:user@phoenix.apache.org>>
Subject: Re: Join create OOM with java heap space on phoenix client

Hi Krunal,

Sorry for the late reply. I have been on vacation.

1. Can you make sure that the connection/statement is closed after each run of 
your query (even with exception)?

I think this is related to second issue mentioned below as it happens for join. 
I tried some other queries they are working fine!

2. You might want to try switching the join tables in your query first by 
putting the larger table as LHS, and if it still does not work, you can force a 
merge join by adding hint "USE_SORT_MERGE_JOIN".

I have tried changing lhs and rhs, but no luck. I have also tried 
"USE_SORT_MERGE_JOIN" but for some reason it crashes region server while 
scanning result to local.
I have also tried changing some tuning parameters, but none of the settings 
worked!
One thing I am curious is why it is dumping data in local heap, I see millions 
of instances for org.apache.phoenix.expression.literalexpression. Shouldn't it 
execute joins on server side?
I tried increasing memory upto 64gb and still it fails! This is just one single 
connection and only one query running at a time, I am not sure what will happen 
with multiple connection and multiple queries!
And if you see in example my data size for both LHS and RHS is not that big. 
These are sample tables come with Phoenix.

Thanks,
Maryann

On Thursday, May 21, 2015, Krunal Varajiya 
<krunal.varaj...@ask.com<mailto:krunal.varaj...@ask.com>> wrote:
Hi

I have 2 issues with phoenix client:

  1.  Heap memory is not cleanup after each query is finished. So, it keeps 
increasing every time when we submit new query.
  2.  I am try to do a normal join operation on two tables but getting 
exception. Below is the details:

These are some sample queries I tried:

  1.  select p1.host, count(1) from PERFORMANCE_5000000 p1, 
PERFORMANCE_25000000 p2 where p1.host = p2.host group by p1.host;
  2.  select p1.host from PERFORMANCE_5000000 p1, PERFORMANCE_25000000 p2 where 
p1.host = p2.host group by p1.host;
  3.  select count(1) from PERFORMANCE_5000000 p1, PERFORMANCE_25000000 p2 
where p1.host = p2.host group by p1.host;

Here is explain plan:


explain  select count(1) from PERFORMANCE_5000000 p1, PERFORMANCE_25000000 p2 
where p1.host = p2.host group by p1.host;

+------------------------------------------+

|                   PLAN                   |

+------------------------------------------+

| CLIENT 9-CHUNK PARALLEL 1-WAY FULL SCAN OVER PERFORMANCE_5000000 |

|     SERVER FILTER BY FIRST KEY ONLY      |

|     SERVER AGGREGATE INTO ORDERED DISTINCT ROWS BY [HOST] |

| CLIENT MERGE SORT                        |

|     PARALLEL INNER-JOIN TABLE 0 (SKIP MERGE) |

|         CLIENT 18-CHUNK PARALLEL 1-WAY FULL SCAN OVER PERFORMANCE_25000000 |

|             SERVER FILTER BY FIRST KEY ONLY |

|     DYNAMIC SERVER FILTER BY HOST IN (P2.HOST) |

+------------------------------------------+

8 rows selected (0.127 seconds)

Phoenix client heap size is 16GB. ( noticed that above queries are dumping data 
in local heap, I see millions of instances for 
org.apache.phoenix.expression.literalexpression)

and my exceptions are:

java.sql.SQLException: Encountered exception in sub plan [0] execution.

at org.apache.phoenix.execute.HashJoinPlan.iterator(HashJoinPlan.java:156)

at org.apache.phoenix.jdbc.PhoenixStatement$1.call(PhoenixStatement.java:235)

at org.apache.phoenix.jdbc.PhoenixStatement$1.call(PhoenixStatement.java:226)

at org.apache.phoenix.call.CallRunner.run(CallRunner.java:53)

at 
org.apache.phoenix.jdbc.PhoenixStatement.executeQuery(PhoenixStatement.java:225)

at org.apache.phoenix.jdbc.PhoenixStatement.execute(PhoenixStatement.java:1066)

at sqlline.Commands.execute(Commands.java:822)

at sqlline.Commands.sql(Commands.java:732)

at sqlline.SqlLine.dispatch(SqlLine.java:808)

at sqlline.SqlLine.begin(SqlLine.java:681)

at sqlline.SqlLine.start(SqlLine.java:398)

at sqlline.SqlLine.main(SqlLine.java:292)

Caused by: java.sql.SQLException: java.util.concurrent.ExecutionException: 
java.lang.Exception: java.lang.OutOfMemoryError: Java heap space

at 
org.apache.phoenix.cache.ServerCacheClient.addServerCache(ServerCacheClient.java:247)

at org.apache.phoenix.join.HashCacheClient.addHashCache(HashCacheClient.java:83)

at 
org.apache.phoenix.execute.HashJoinPlan$HashSubPlan.execute(HashJoinPlan.java:338)

at org.apache.phoenix.execute.HashJoinPlan$1.call(HashJoinPlan.java:135)

at java.util.concurrent.FutureTask.run(FutureTask.java:266)

at 
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)

at 
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)

at java.lang.Thread.run(Thread.java:745)

Caused by: java.util.concurrent.ExecutionException: java.lang.Exception: 
java.lang.OutOfMemoryError: Java heap space

at java.util.concurrent.FutureTask.report(FutureTask.java:122)

at java.util.concurrent.FutureTask.get(FutureTask.java:206)

at 
org.apache.phoenix.cache.ServerCacheClient.addServerCache(ServerCacheClient.java:239)

... 7 more

Caused by: java.lang.Exception: java.lang.OutOfMemoryError: Java heap space

at org.apache.phoenix.cache.ServerCacheClient$1.call(ServerCacheClient.java:212)

at org.apache.phoenix.cache.ServerCacheClient$1.call(ServerCacheClient.java:182)

... 4 more

Caused by: java.lang.OutOfMemoryError: Java heap space

May 20, 2015 4:58:01 PM ServerCommunicatorAdmin reqIncoming

WARNING: The server has decided to close this client connection.

15/05/20 16:56:43 WARN client.HTable: Error calling coprocessor service 
org.apache.phoenix.coprocessor.generated.ServerCachingProtos$ServerCachingService
 for row CSGoogle\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00

java.util.concurrent.ExecutionException: java.lang.OutOfMemoryError: Java heap 
space

at java.util.concurrent.FutureTask.report(FutureTask.java:122)

at java.util.concurrent.FutureTask.get(FutureTask.java:192)

at org.apache.hadoop.hbase.client.HTable.coprocessorService(HTable.java:1620)

at org.apache.hadoop.hbase.client.HTable.coprocessorService(HTable.java:1577)

at org.apache.phoenix.cache.ServerCacheClient$1.call(ServerCacheClient.java:188)

at org.apache.phoenix.cache.ServerCacheClient$1.call(ServerCacheClient.java:182)

at java.util.concurrent.FutureTask.run(FutureTask.java:266)

at 
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)

at 
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)

at java.lang.Thread.run(Thread.java:745)

Caused by: java.lang.OutOfMemoryError: Java heap space

at com.google.protobuf.ByteString$CodedBuilder.<init>(ByteString.java:907)

at com.google.protobuf.ByteString$CodedBuilder.<init>(ByteString.java:902)

at com.google.protobuf.ByteString.newCodedBuilder(ByteString.java:898)

at 
com.google.protobuf.AbstractMessageLite.toByteString(AbstractMessageLite.java:49)

at 
org.apache.hadoop.hbase.ipc.RegionCoprocessorRpcChannel.callExecService(RegionCoprocessorRpcChannel.java:81)

at 
org.apache.hadoop.hbase.ipc.CoprocessorRpcChannel.callMethod(CoprocessorRpcChannel.java:57)

at 
org.apache.phoenix.coprocessor.generated.ServerCachingProtos$ServerCachingService$Stub.addServerCache(ServerCachingProtos.java:3270)

at 
org.apache.phoenix.cache.ServerCacheClient$1$1.call(ServerCacheClient.java:204)

at 
org.apache.phoenix.cache.ServerCacheClient$1$1.call(ServerCacheClient.java:189)

at org.apache.hadoop.hbase.client.HTable$17.call(HTable.java:1608)

... 4 more

0: jdbc:phoenix:prbhadoop004iad.io.askjeeves.> 15/05/20 16:56:43 WARN 
client.HTable: Error calling coprocessor service 
org.apache.phoenix.coprocessor.generated.ServerCachingProtos$ServerCachingService
 for row EUGoogle\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00

java.util.concurrent.ExecutionException: java.lang.OutOfMemoryError: Java heap 
space

at java.util.concurrent.FutureTask.report(FutureTask.java:122)

at java.util.concurrent.FutureTask.get(FutureTask.java:192)

at org.apache.hadoop.hbase.client.HTable.coprocessorService(HTable.java:1620)

at org.apache.hadoop.hbase.client.HTable.coprocessorService(HTable.java:1577)

at org.apache.phoenix.cache.ServerCacheClient$1.call(ServerCacheClient.java:188)

at org.apache.phoenix.cache.ServerCacheClient$1.call(ServerCacheClient.java:182)

at java.util.concurrent.FutureTask.run(FutureTask.java:266)

at 
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)

at 
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)

at java.lang.Thread.run(Thread.java:745)

Caused by: java.lang.OutOfMemoryError: Java heap space

15/05/20 16:59:37 WARN client.HConnectionManager$HConnectionImplementation: 
This client just lost it's session with ZooKeeper, closing it. It will be 
recreated next time someone needs it

org.apache.zookeeper.KeeperException$SessionExpiredException: KeeperErrorCode = 
Session expired

at 
org.apache.hadoop.hbase.zookeeper.ZooKeeperWatcher.connectionEvent(ZooKeeperWatcher.java:403)

at 
org.apache.hadoop.hbase.zookeeper.ZooKeeperWatcher.process(ZooKeeperWatcher.java:321)

at org.apache.zookeeper.ClientCnxn$EventThread.processEvent(ClientCnxn.java:522)

at org.apache.zookeeper.ClientCnxn$EventThread.run(ClientCnxn.java:498)


Error:  (state=,code=0)

java.sql.SQLFeatureNotSupportedException

at org.apache.phoenix.jdbc.PhoenixStatement.cancel(PhoenixStatement.java:958)

at sqlline.DispatchCallback.forceKillSqlQuery(DispatchCallback.java:83)

at sqlline.SqlLine.begin(SqlLine.java:695)

at sqlline.SqlLine.start(SqlLine.java:398)

at sqlline.SqlLine.main(SqlLine.java:292)


Can someone please help?


Thanks!


Reply via email to