[
https://issues.apache.org/jira/browse/HDFS-17341?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17808392#comment-17808392
]
Lei Yang commented on HDFS-17341:
---------------------------------
[~hexiaoqiao] Thanks for your comment.
{quote}One concerns, we evaluate the request if high- or low- priority based on
user only, but not all requests from this user are always high or low priority
in fact.
{quote}
Not sure I understand this. The idea is to get some critical service users
exempt from existing FCQ mechanism to make sure they are not throttled in the
same way as regular users in shared queue. Meanwhile, those users should not
flood the entire queue if there are traffic
surge(https://issues.apache.org/jira/browse/HADOOP-17165 can assign service
user to p0 but it cannot solve the traffic surge from those users). We can
assign weights for those users to ensure they are not exceeding certain % of
total processing cycles.
> Support dedicated user queues in Namenode FairCallQueue
> -------------------------------------------------------
>
> Key: HDFS-17341
> URL: https://issues.apache.org/jira/browse/HDFS-17341
> Project: Hadoop HDFS
> Issue Type: Improvement
> Components: namenode
> Affects Versions: 2.10.0, 3.4.0
> Reporter: Lei Yang
> Priority: Major
> Labels: pull-request-available
>
> Some service users today in namenode like ETL, metrics collection, ad-hoc
> users that are critical to run business critical job accounts for many
> traffic in namenode and shouldn't be throttled the same way as other
> individual users in FCQ.
> There is feature in namenode to always prioritize some service users to not
> subject to FCQ scheduling. (Those users are always p0) but it is not perfect
> and it doesn't account for traffic surge from those users.
> The idea is to allocate dedicated rpc queues for those service users with
> bounded queue capacity and allocate processing weight for those users. If
> queue is full, those users are expected to backoff and retry.
>
> New configs:
> {code:java}
> "faircallqueue.reserved.users"; // list of service users that are assigned to
> dedicated queue
> "faircallqueue.reserved.users.max"; // max number of service users allowed
> "faircallqueue.reserved.users.capacities"; // custom queue capacities for
> each service user
> "faircallqueue.multiplexer.reserved.weights"; // processing weights for each
> dedicated queue{code}
> For instance, for a FCQ with 4 priority levels, 2 reserved users(a, b)
> FCQ would look like:
>
> {code:java}
> P0: shared queue
> P1: shared queue
> P2: shared queue
> P3: shared queue
> P4: dedicated for user a
> P5: dedicated for user b{code}
> {color:#172b4d}The Multiplexer would have following weights{color}
> {color:#172b4d}shared queue default weights: [8, 4, 2, 1]{color}
> {color:#172b4d}reserved queue weights=[3, 2]{color}
> {color:#172b4d}So user a gets 15% of total cycles, user b gets 10% of total
> cycles.{color}
>
>
--
This message was sent by Atlassian Jira
(v8.20.10#820010)
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]