hadoop-common-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Chris Li (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (HADOOP-10281) Create a scheduler, which assigns schedulables a priority level
Date Tue, 15 Jul 2014 07:06:04 GMT

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

Chris Li commented on HADOOP-10281:

Hey guys, sorry for the delay, was on vacation, and have some stuff to catch up on before
I can complete the new benchmarks. I don't think it should be committed until I have benchmarks
at scale.

To answer your questions Eddy:

1. Yes, the latest design abandons tracking a fixed number of calls and instead tracks all
calls over a fixed time period.
2. Larger decay periods will indeed make it less responsive to burst traffic.  totalCount
will increase over time, then get decayed along with the counts on each decay sweep. More
aggressive decays (longer periods, greater factors) will make recent calls less affected by
older calls.
3. Same, caching will reduce responsiveness to burst traffic. The change Arpit suggested would
increase responsiveness, as would eliminating the schedule cache. This might not even make
a big difference since it's done on different threads.

I hope to have benchmarks up next week

> Create a scheduler, which assigns schedulables a priority level
> ---------------------------------------------------------------
>                 Key: HADOOP-10281
>                 URL: https://issues.apache.org/jira/browse/HADOOP-10281
>             Project: Hadoop Common
>          Issue Type: Sub-task
>            Reporter: Chris Li
>            Assignee: Chris Li
>         Attachments: HADOOP-10281-preview.patch, HADOOP-10281.patch, HADOOP-10281.patch,
> The Scheduler decides which sub-queue to assign a given Call. It implements a single
method getPriorityLevel(Schedulable call) which returns an integer corresponding to the subqueue
the FairCallQueue should place the call in.
> The HistoryRpcScheduler is one such implementation which uses the username of each call
and determines what % of calls in recent history were made by this user.
> It is configured with a historyLength (how many calls to track) and a list of integer
thresholds which determine the boundaries between priority levels.
> For instance, if the scheduler has a historyLength of 8; and priority thresholds of 4,2,1;
and saw calls made by these users in order:
> Alice, Bob, Alice, Alice, Bob, Jerry, Alice, Alice
> * Another call by Alice would be placed in queue 3, since she has already made >=
4 calls
> * Another call by Bob would be placed in queue 2, since he has >= 2 but less than
4 calls
> * A call by Carlos would be placed in queue 0, since he has no calls in the history
> Also, some versions of this patch include the concept of a 'service user', which is a
user that is always scheduled high-priority. Currently this seems redundant and will probably
be removed in later patches, since its not too useful.

This message was sent by Atlassian JIRA

View raw message