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

Andras Gyori commented on YARN-10532:
-------------------------------------

Hi [~zhuqi] and thanks for addressing the feedbacks. I have tried this feature 
on a cluster and did not work flawlessly. My observations are:
 * The monitoringInterval is in milisecond, but the configuration value is in 
second. This is a critical discrepancy and resulted in RM spamming. This should 
be mitigated by:
{code:java}
monitoringInterval =
        csConfig.getLong(CapacitySchedulerConfiguration.
                AUTO_CREATE_CHILD_QUEUE_EXPIRED_TIME,
            CapacitySchedulerConfiguration.
                DEFAULT_AUTO_CREATE_CHILD_QUEUE_EXPIRED_TIME) * 1000;
{code}

 * The queue-expiration-time is not prefixed, thus making the whole property 
named auto-queue-creation-v2.queue-expiration-time instead of 
yarn.scheduler.capacity.auto-queue-creation-v2.queue-expiration-time.
 * There should be a separation of testing, and I would advise to change the 
existing auto deletion tests in TestCapacitySchedulerNewQueueAutoCreation not 
to invoke the policy itself, but rely only on CapacityScheduler like the 
following example:
{code:java}
@Test
  public void testCapacitySchedulerAutoQueueDeletion() throws Exception {
    startScheduler();
    csConf.setBoolean(
        YarnConfiguration.RM_SCHEDULER_ENABLE_MONITORS, true);
    csConf.set(YarnConfiguration.RM_SCHEDULER_MONITOR_POLICIES,
        AutoCreatedQueueDeletionPolicy.class.getCanonicalName());
    csConf.setAutoExpiredDeletionTime(2);
    cs.reinitialize(csConf, mockRM.getRMContext());

    Set<String> policies = new HashSet<>();
    policies.add(
        AutoCreatedQueueDeletionPolicy.class.getCanonicalName());

    Assert.assertTrue(
        "No AutoCreatedQueueDeletionPolicy is present in running monitors",
        cs.getSchedulingMonitorManager().isSameConfiguredPolicies(policies));

    ApplicationAttemptId app = submitApp(cs, USER0,
        "a2-auto", "root.a.a1-auto");
    Thread.sleep(1000);
    AbstractCSQueue a2 = (AbstractCSQueue) cs.getQueue(
        "root.a.a1-auto.a2-auto");
    Assert.assertNotNull("a2 is not present", a2);
    Assert.assertTrue("a2 is not a dynamic queue",
        a2.isDynamicQueue());

    finishApp(app);

    Thread.sleep(2000);
    a2 = (AbstractCSQueue) cs.getQueue("root.a.a1-auto.a2-auto");
    Assert.assertNull("a2 is not deleted", a2);
    Thread.sleep(2000);
    AbstractCSQueue a1 = (AbstractCSQueue) cs.getQueue("root.a.a1-auto");
    Assert.assertNull("a1 is not deleted", a1);

    csConf.setAutoExpiredDeletionTime(2);
    cs.reinitialize(csConf, mockRM.getRMContext());
  }
{code}

 * The policy itself should only be invoked in its own test class, as you have 
already done it.
 * As I see it, the general way of disabling time sensitive values is to set it 
to -1. This way, you would not need to handle two different property.

> Capacity Scheduler Auto Queue Creation: Allow auto delete queue when queue is 
> not being used
> --------------------------------------------------------------------------------------------
>
>                 Key: YARN-10532
>                 URL: https://issues.apache.org/jira/browse/YARN-10532
>             Project: Hadoop YARN
>          Issue Type: Sub-task
>            Reporter: Wangda Tan
>            Assignee: Qi Zhu
>            Priority: Major
>         Attachments: YARN-10532.001.patch, YARN-10532.002.patch, 
> YARN-10532.003.patch, YARN-10532.004.patch, YARN-10532.005.patch, 
> YARN-10532.006.patch, YARN-10532.007.patch, YARN-10532.008.patch, 
> YARN-10532.009.patch, YARN-10532.010.patch, YARN-10532.011.patch, 
> YARN-10532.012.patch, YARN-10532.013.patch, YARN-10532.014.patch, 
> YARN-10532.015.patch, YARN-10532.016.patch
>
>
> It's better if we can delete auto-created queues when they are not in use for 
> a period of time (like 5 mins). It will be helpful when we have a large 
> number of auto-created queues (e.g. from 500 users), but only a small subset 
> of queues are actively used.



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

---------------------------------------------------------------------
To unsubscribe, e-mail: yarn-issues-unsubscr...@hadoop.apache.org
For additional commands, e-mail: yarn-issues-h...@hadoop.apache.org

Reply via email to