[
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, 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
(v6.2#6252)