hbase-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Nick Dimiduk (JIRA)" <j...@apache.org>
Subject [jira] [Updated] (HBASE-10592) Refactor PerformanceEvaluation tool
Date Sat, 22 Feb 2014 22:12:19 GMT

     [ 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

View raw message