[
https://issues.apache.org/jira/browse/HBASE-10592?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Nick Dimiduk updated HBASE-10592:
---------------------------------
Attachment: HBASE-10592.00.patch
The EvaluationMapTask is designed to be overridden by a user-provided class, so
technically this patch breaks API compatibility. Meaning, it shouldn't be
applied to 0.96 or 0.98. However, it's only a testing tool so it won't break
anyone's production code. This change makes the tool much easier to enhance, as
I'll demonstrate on HBASE-9953, so I'd prefer to get the change applied to the
previous branches anyway. However, it's up to you [~stack] and [~apurtell].
> Refactor PerformanceEvaluation tool
> -----------------------------------
>
> Key: HBASE-10592
> URL: https://issues.apache.org/jira/browse/HBASE-10592
> Project: HBase
> Issue Type: Improvement
> Components: test
> Reporter: Nick Dimiduk
> Assignee: Nick Dimiduk
> Priority: Minor
> Fix For: 0.99.0
>
> Attachments: HBASE-10592.00.patch
>
>
> PerfEval is kind of a mess. It's painful to add new features because the test
> options are itemized and passed as parameters to internal methods.
> Serialization is hand-rolled and tedious. Ensuring support for mapreduce mode
> is a chore because of it.
> This patch refactors the tool. Options are now passed around to methods and
> such as a POJO instead of one-by-one. Get rid of accessors that don't help
> anyone. On the mapreduce side, serialization is now handled using json
> (jackson is a dependency anyway) instead of the hand-rolled regex we used
> before. Also do away with custom InputSplit and FileFormat, instead using
> Text and NLineInputFormat. On the local mode side, combine 1 client and N
> clients into the same implementation. That implementation now uses an
> ExecutorService, so we can later decouple number of client workers from
> number of client tasks. Finally, drop a bunch of confusing local state,
> instead use the new TestOptions POJO as a parameter to static methods.
--
This message was sent by Atlassian JIRA
(v6.1.5#6160)