hbase-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Jonathan Lawlor (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (HBASE-6778) Deprecate Chore; its a thread per task when we should have one thread to do all tasks
Date Wed, 21 Jan 2015 19:34:37 GMT

    [ https://issues.apache.org/jira/browse/HBASE-6778?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14286131#comment-14286131

Jonathan Lawlor commented on HBASE-6778:

Thanks for answering these questions [~stack].

bq. As I reviewed, I saw you had good javadoc on the methods. What is missing is a bit of
metadoc on what this service does and when to use it. That should go in class comment. Make

Ahh I see what you meant, that makes sense, thanks

bq. Does ExecutorService not expose methods you could make use of? Queued chores and how many
current threads? Could you do a heuristic based off these? Just a suggestion.

The ScheduledThreadPoolExecutor does expose certain methods that reveal things like the size
of the queue and the number of active threads. The problem with these methods is that they
don't provide sufficient information to make the decision as to whether or not the current
core thread pool is large enough. This is because being in the Queue does not necessarily
mean that you are ready to execute (you may be in the queue because you are waiting for the
start of your next execution). Thus, a large queue size does not indicate that there are many
tasks that are ready to execute, but rather there are many tasks that are either waiting for
their next start time OR ready to execute. 

Because of the ambiguity, I thought it would be best for chores to have a means by which they
could tell the service that the core pool is not large enough, since the service cannot make
this decision with its information alone.

bq. Has anyone asked for it?
Nobody has asked for the reschedule functionality so I'll be sure to keep it internal.

Thanks [~stack]

> Deprecate Chore; its a thread per task when we should have one thread to do all tasks
> -------------------------------------------------------------------------------------
>                 Key: HBASE-6778
>                 URL: https://issues.apache.org/jira/browse/HBASE-6778
>             Project: HBase
>          Issue Type: Bug
>            Reporter: stack
>            Assignee: Jonathan Lawlor
>         Attachments: HBASE_6778_WIP_v1.patch, thread_dump_HMaster.local.out
> Should use something like ScheduledThreadPoolExecutor instead (Elliott said this first
I think; J-D said something similar just now).

This message was sent by Atlassian JIRA

View raw message