[
https://issues.apache.org/jira/browse/YARN-4025?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Vrushali C updated YARN-4025:
-----------------------------
Attachment: YARN-4025-YARN-2928.001.patch
Attaching patch v001.
I have updated the HBaseTimelineWriter to avoid unnecessary conversions from
byte[] to Strings. To allow that, I have added APIs that accept byte[] in
ColumnHelper#getColumnQualifier and EntityColumnPrefix.#store .
I also added a EntityColumnPrefix#readResultsHavingCompoundColumnQualifiers and
ColumnHelper#readResultsHavingCompoundColumnQualifiers to help read results
that have compound columns.
The unit test has an example of how to read the Timeline Event's compound
column qualifier.
I have also updated the unit test to remove an internal call to another unit
test, I moved that second unit to be a @ Test unit test itself.
Last but not the least, I have updated the Separators for values/compound
qualifiers to be "=" instead of "?" to help easier implementation of reader
code since splitting on "?" is not easy due to "?" being a wildcard.
Would appreciate your review.
> Deal with byte representations of Longs in writer code
> ------------------------------------------------------
>
> Key: YARN-4025
> URL: https://issues.apache.org/jira/browse/YARN-4025
> Project: Hadoop YARN
> Issue Type: Sub-task
> Components: timelineserver
> Reporter: Vrushali C
> Assignee: Vrushali C
> Attachments: YARN-4025-YARN-2928.001.patch
>
>
> Timestamps are being stored as Longs in hbase by the HBaseTimelineWriterImpl
> code. There seem to be some places in the code where there are conversions
> between Long to byte[] to String for easier argument passing between function
> calls. Then these values end up being converted back to byte[] while storing
> in hbase.
> It would be better to pass around byte[] or the Longs themselves as
> applicable.
> This may result in some api changes (store function) as well in adding a few
> more function calls like getColumnQualifier which accepts a pre-encoded byte
> array. It will be in addition to the existing api which accepts a String and
> the ColumnHelper to return a byte[] column name instead of a String one.
> Filing jira to track these changes.
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)