[
https://issues.apache.org/jira/browse/YARN-956?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Zhijie Shen updated YARN-956:
-----------------------------
Attachment: YARN-956.4.patch
I uploaded a new patch, which completely rewrites the
MemoryApplicationHistoryStore. The major changes are listed bellow:
1. Make MemoryApplicationHistoryStore extends AbstractService, and make the
constructor public, as RM can uniformly use Java reflection to construct any
implementation of ApplicationHistoryStore.
2. Make the in-memory store the static objects, thus it will not be erased when
MemoryApplicationHistoryStore instance is destroyed. RM can create one instance
to use the writer interface to add history data, while AHS can also create
another instance to use the reader interface to read history data. The static
references were the common place where all instances can access, like the root
dir in the file system for FileSystemApplicationHistoryStore.
3. Make containerData have the two-level lookup index as well, because multiple
containers may belongs to one application attempt. It can speed up the reader
interface: Map<ContainerId, ContainerHistoryData>
getContainers(ApplicationAttemptId appAttemptId)
4. Keep storing XXXXHistoryData instead of storing XXXXStartData and
XXXXFinishData. When XXXXStartData is to be written, XXXXHistoryData will be
created, and copy the fields in XXXXStartData into those in XXXXHistoryData.
When XXXXFinishData is to be written, merge fields in XXXXFinishData into the
existing XXXXHistoryData. This helps to simplify the implementation of the
reader interface and improve its performance.
5. Set the rule of not overriding the existing history data, because the each
record is supposed to be unique and just written once. An IOException will be
thrown if it happens. In addition, XXXXStartData is supposed to be written
before XXXXFinishData. Otherwise, an IOException will be thrown as well.
6. Rewrite the test cases to verify both the correct read/write procedures, and
the incorrect writing operations.
> [YARN-321] Add a testable in-memory HistoryStorage
> ---------------------------------------------------
>
> Key: YARN-956
> URL: https://issues.apache.org/jira/browse/YARN-956
> Project: Hadoop YARN
> Issue Type: Sub-task
> Reporter: Vinod Kumar Vavilapalli
> Assignee: Zhijie Shen
> Fix For: YARN-321
>
> Attachments: YARN-956-1.patch, YARN-956-2.patch, YARN-956-3.patch,
> YARN-956.4.patch
>
>
--
This message was sent by Atlassian JIRA
(v6.1#6144)