[
https://issues.apache.org/jira/browse/YARN-2052?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14031223#comment-14031223
]
Tsuyoshi OZAWA commented on YARN-2052:
--------------------------------------
[~jianhe] and [~vinodkv], thank you for the comments and suggestions!
{quote}
This scheme won't work with a single reserved digit for epochs and a large
number of restarts over time.
{quote}
Yes, this is a case that integer overflow happens. We need to take it into
account the case.
{quote}
Old code (state-store, history-server etc) will not read it and that's fine.
The only problem is users who are interpreting container_ID strings themselves.
That is NOT supported. We should modify ConverterUtils to support the
new-field, and that should do.
{quote}
Adding RM Id + hostname as epoch sounds reasonable approach to me. If we
suffixes the epoch to the container id, following code is also valid with old
{{ConverterUtils.toContainerId}}:
{code}
ContainerId id = TestContainerId.newContainerId(0, 0, 0, 0);
String cid = ConverterUtils.toString(id);
ContainerId gen = ConverterUtils.toContainerId(cid + "_uuid_rm1");
assertEquals(gen, id); // valid to parse even with old code
{code}
Therefore, I think {{container_XXX_000_uuid_rm1}} is better format. I'll create
a patch based on the idea.
> ContainerId creation after work preserving restart is broken
> ------------------------------------------------------------
>
> Key: YARN-2052
> URL: https://issues.apache.org/jira/browse/YARN-2052
> Project: Hadoop YARN
> Issue Type: Sub-task
> Components: resourcemanager
> Reporter: Tsuyoshi OZAWA
> Assignee: Tsuyoshi OZAWA
>
> Container ids are made unique by using the app identifier and appending a
> monotonically increasing sequence number to it. Since container creation is a
> high churn activity the RM does not store the sequence number per app. So
> after restart it does not know what the new sequence number should be for new
> allocations.
--
This message was sent by Atlassian JIRA
(v6.2#6252)