[ 
https://issues.apache.org/jira/browse/PHOENIX-1437?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14206735#comment-14206735
 ] 

James Taylor commented on PHOENIX-1437:
---------------------------------------

Yes, a thread per "guidepost" on the client-side of Phoenix. Take a look here 
for tuning parameters: http://phoenix.apache.org/tuning.html

The three most important are:
1) phoenix.query.threadPoolSize which is the ThreadExecutor thread pool size
2) phoenix.query.queueSize which is the ThreadExecutor queue depth (after which 
work will be rejected)
3) phoenix.stats.guidepost.width which is the number of bytes between 
guideposts (or an alternate way of specifying that is 
phoenix.stats.guidepost.per.region). These determine how many guideposts will 
be created for a table.

> java.lang.OutOfMemoryError: unable to create new native thread
> --------------------------------------------------------------
>
>                 Key: PHOENIX-1437
>                 URL: https://issues.apache.org/jira/browse/PHOENIX-1437
>             Project: Phoenix
>          Issue Type: Bug
>            Reporter: Taylor Finnell
>
> Getting a java.lang.OutOfMemoryError when using Phoenix on Storm. Here is the 
> full stack trace.
> {code}
> java.lang.OutOfMemoryError: unable to create new native thread
>       at java.lang.Thread.start0(Native Method) ~[na:1.7.0_45]
>       at java.lang.Thread.start(java/lang/Thread.java:713) ~[na:1.7.0_45]
>       at 
> java.util.concurrent.ThreadPoolExecutor.addWorker(java/util/concurrent/ThreadPoolExecutor.java:949)
>  ~[na:1.7.0_45]
>       at 
> java.util.concurrent.ThreadPoolExecutor.execute(java/util/concurrent/ThreadPoolExecutor.java:1360)
>  ~[na:1.7.0_45]
>       at 
> java.util.concurrent.AbstractExecutorService.submit(java/util/concurrent/AbstractExecutorService.java:132)
>  ~[na:1.7.0_45]
>       at 
> org.apache.phoenix.iterate.ParallelIterators.submitWork(org/apache/phoenix/iterate/ParallelIterators.java:356)
>  ~[stormjar.jar:na]
>       at 
> org.apache.phoenix.iterate.ParallelIterators.getIterators(org/apache/phoenix/iterate/ParallelIterators.java:265)
>  ~[stormjar.jar:na]
>       at 
> org.apache.phoenix.iterate.ConcatResultIterator.getIterators(org/apache/phoenix/iterate/ConcatResultIterator.java:44)
>  ~[stormjar.jar:na]
>       at 
> org.apache.phoenix.iterate.ConcatResultIterator.currentIterator(org/apache/phoenix/iterate/ConcatResultIterator.java:66)
>  ~[stormjar.jar:na]
>       at 
> org.apache.phoenix.iterate.ConcatResultIterator.next(org/apache/phoenix/iterate/ConcatResultIterator.java:86)
>  ~[stormjar.jar:na]
>       at 
> org.apache.phoenix.jdbc.PhoenixResultSet.next(org/apache/phoenix/jdbc/PhoenixResultSet.java:732)
>  ~[stormjar.jar:na]
>       at java.lang.reflect.Method.invoke(java/lang/reflect/Method.java:606) 
> ~[na:1.7.0_45]
>       at 
> RUBY.each(file:/mnt/hadoop/storm/supervisor/stormdist/korrelate_match_log_processor_staging_KOR-2325-online_sync_to_hbase_tf_part_three-1-1415715986/stormjar.jar!/lib/korrelate_match_log_processor/cleanroom_online_event_adapter.rb:51)
>  ~[na:na]
>       at 
> RUBY.finish_batch(file:/mnt/hadoop/storm/supervisor/stormdist/korrelate_match_log_processor_staging_KOR-2325-online_sync_to_hbase_tf_part_three-1-1415715986/stormjar.jar!/lib/korrelate_match_log_processor/bolt/abstract_event_reader_bolt.rb:68)
>  ~[na:na]
>       at 
> RUBY.finishBatch(/Users/tfinnell/.rvm/gems/jruby-1.7.11@O2O-jruby/gems/redstorm-0.6.6/lib/red_storm/proxy/batch_bolt.rb:51)
>  ~[na:na]
>       at 
> redstorm.proxy.BatchBolt.finishBatch(redstorm/proxy/BatchBolt.java:149) 
> ~[stormjar.jar:na]
>       at 
> redstorm.storm.jruby.JRubyTransactionalBolt.finishBatch(redstorm/storm/jruby/JRubyTransactionalBolt.java:56)
>  ~[stormjar.jar:na]
>       at 
> backtype.storm.coordination.BatchBoltExecutor.finishedId(backtype/storm/coordination/BatchBoltExecutor.java:76)
>  ~[storm-core-0.9.1.2.1.2.0-402.jar:0.9.1.2.1.2.0-402]
>       at 
> backtype.storm.coordination.CoordinatedBolt.checkFinishId(backtype/storm/coordination/CoordinatedBolt.java:259)
>  ~[storm-core-0.9.1.2.1.2.0-402.jar:0.9.1.2.1.2.0-402]
>       at 
> backtype.storm.coordination.CoordinatedBolt.execute(backtype/storm/coordination/CoordinatedBolt.java:322)
>  ~[storm-core-0.9.1.2.1.2.0-402.jar:0.9.1.2.1.2.0-402]
>       at 
> backtype.storm.daemon.executor$fn__4329$tuple_action_fn__4331.invoke(executor.clj:630)
>  ~[storm-core-0.9.1.2.1.2.0-402.jar:0.9.1.2.1.2.0-402]
>       at 
> backtype.storm.daemon.executor$fn__4329$tuple_action_fn__4331.invoke(backtype/storm/daemon/executor.clj:630)
>  ~[storm-core-0.9.1.2.1.2.0-402.jar:0.9.1.2.1.2.0-402]
>       at 
> backtype.storm.daemon.executor$mk_task_receiver$fn__4252.invoke(executor.clj:398)
>  ~[storm-core-0.9.1.2.1.2.0-402.jar:0.9.1.2.1.2.0-402]
>       at 
> backtype.storm.daemon.executor$mk_task_receiver$fn__4252.invoke(backtype/storm/daemon/executor.clj:398)
>  ~[storm-core-0.9.1.2.1.2.0-402.jar:0.9.1.2.1.2.0-402]
>       at 
> backtype.storm.disruptor$clojure_handler$reify__1747.onEvent(disruptor.clj:58)
>  ~[storm-core-0.9.1.2.1.2.0-402.jar:0.9.1.2.1.2.0-402]
>       at 
> backtype.storm.disruptor$clojure_handler$reify__1747.onEvent(backtype/storm/disruptor.clj:58)
>  ~[storm-core-0.9.1.2.1.2.0-402.jar:0.9.1.2.1.2.0-402]
>       at 
> backtype.storm.utils.DisruptorQueue.consumeBatchToCursor(backtype/storm/utils/DisruptorQueue.java:104)
>  ~[storm-core-0.9.1.2.1.2.0-402.jar:0.9.1.2.1.2.0-402]
>       at 
> backtype.storm.utils.DisruptorQueue.consumeBatchWhenAvailable(backtype/storm/utils/DisruptorQueue.java:78)
>  ~[storm-core-0.9.1.2.1.2.0-402.jar:0.9.1.2.1.2.0-402]
>       at 
> backtype.storm.disruptor$consume_batch_when_available.invoke(disruptor.clj:77)
>  ~[storm-core-0.9.1.2.1.2.0-402.jar:0.9.1.2.1.2.0-402]
>       at 
> backtype.storm.disruptor$consume_batch_when_available.invoke(backtype/storm/disruptor.clj:77)
>  ~[storm-core-0.9.1.2.1.2.0-402.jar:0.9.1.2.1.2.0-402]
>       at 
> backtype.storm.daemon.executor$fn__4329$fn__4341$fn__4388.invoke(executor.clj:745)
>  ~[storm-core-0.9.1.2.1.2.0-402.jar:0.9.1.2.1.2.0-402]
>       at 
> backtype.storm.daemon.executor$fn__4329$fn__4341$fn__4388.invoke(backtype/storm/daemon/executor.clj:745)
>  ~[storm-core-0.9.1.2.1.2.0-402.jar:0.9.1.2.1.2.0-402]
>       at backtype.storm.util$async_loop$fn__442.invoke(util.clj:436) 
> ~[storm-core-0.9.1.2.1.2.0-402.jar:0.9.1.2.1.2.0-402]
>       at 
> backtype.storm.util$async_loop$fn__442.invoke(backtype/storm/util.clj:436) 
> ~[storm-core-0.9.1.2.1.2.0-402.jar:0.9.1.2.1.2.0-402]
>       at clojure.lang.AFn.run(clojure/lang/AFn.java:24) 
> ~[clojure-1.4.0.jar:na]
>       at java.lang.Thread.run(java/lang/Thread.java:744) ~[na:1.7.0_45]
> {code}
> Here is some of the system configuration.
> {code}
> ulimit -a
> core file size          (blocks, -c) 0
> data seg size           (kbytes, -d) unlimited
> scheduling priority             (-e) 0
> file size               (blocks, -f) unlimited
> pending signals                 (-i) 240435
> max locked memory       (kbytes, -l) 64
> max memory size         (kbytes, -m) unlimited
> open files                      (-n) 1024
> pipe size            (512 bytes, -p) 8
> POSIX message queues     (bytes, -q) 819200
> real-time priority              (-r) 0
> stack size              (kbytes, -s) 10240
> cpu time               (seconds, -t) unlimited
> max user processes              (-u) 240435
> virtual memory          (kbytes, -v) unlimited
> file locks                      (-x) unlimited
> {code}
> None of the tables I am querying against have more than 4 regions.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to