[ 
https://issues.apache.org/jira/browse/HADOOP-6248?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12760131#action_12760131
 ] 

Chris Douglas commented on HADOOP-6248:
---------------------------------------

Just to be clear: the current code requires more than a compelling proposal. 
Progress toward one or more of these roles must be implemented before a version 
of this tool is committed. I remain \-1.

Todd and Steve's suggestions characterize this tool as a mix of Chukwa (and 
related causal tracing 
[projects|http://www.usenix.org/event/wasl08/tech/full_papers/tan/tan.pdf]), 
HOD, dynamic analysis, system benchmarks, Hudson, and a unit tests for the bin 
scripts. Practically, a "scaled back" version of Circus aspires to fewer, 
concrete goals so that it may achieve some of them.

bq. I think the two of us have different expectations for a tool like this, and 
perhaps we'll never agree. You want a strict framework and find an "execution 
engine" to be uninteresting for the Hadoop distribution. I think this tool 
doubles as a system testing tool that we as a community can contribute tests to 
(you even said that distcp tests at scale are manual; they don't have to be), 
in addition to an execution engine that Hadoop users can take advantage of for 
reasons I've already stated.

The assertion that this is the correct form is speculative at best. While Todd 
also identifies its role as a magnet for other system tests as a win, I see no 
argument for why Hadoop should standardize on this particular driver for its 
integration tests.

bq. I can tell you that Circus will be useful within Cloudera, and it will be 
useful for several of our support customers.

I'll take your word for it, but that doesn't mitigate the burden of 
demonstrating why this should be included in every version of Hadoop.

bq. I think I've done all I can to prove its merit, so perhaps others can weigh 
in on whether or not such a framework, execution engine, or what have you would 
be useful for them.

Given the discussion so far, I don't think it's unfair to point out that "what 
have you" is where this seems to go off the rails. A blank canvas has unbounded 
potential, but that doesn't make it priceless. Tomorrow, why wouldn't we accept 
another, equally mature inner loop?

bq. Lastly, I would hope that contrib projects (such as Circus) would be more 
easily accepted into the distribution, as they don't negatively impact the 
project at all. Their "optional" nature allows users who are interested to use 
contrib projects at will, while not dirtying or making any other real 
sacrifices to the rest of the code base.

These criteria are unrealistically weak and the "adding to contrib is free" 
justification is patently false. Yes, contrib is not as rigorously screened as 
core, but it's not a public sandbox, either.

bq. can you provide specific guidance on how I might scale back Circus to be 
something more useful?

Since you ask, there's a huge space for QA tools, as Steve and Todd have 
demonstrated, but the "driver" space is boilerplate and saturated. Instead of 
starting from scratch, you might consider writing Hadoop-centric bindings for 
other tools, like Findbugs. A study of common mistakes made with the framework 
and corresponding scans of static user code would avoid wasting grid compute 
resources on, say, output key class mismatches or deserializations during 
compares. Such a contribution would have obvious applicability and could be 
included not only in QA pipelines, but also in submission queues. If Circus 
were a suite of validation tool configurations and extensions to be run over 
user jobs for performance and correctness violations (single-node), it could 
easily find a role. It's not everything Circus currently aspires to be, but 
it's clear how (and why) others would contribute to it and what its users can 
expect from it. Integrating with two or three tools would also refine its 
interfaces, so the "context" idea could be fleshed out a little more. Smoke 
tests, as Owen suggested, would also be useful (and easier to write).

> Circus: Proposal and Preliminary Code for a Hadoop System Testing Framework
> ---------------------------------------------------------------------------
>
>                 Key: HADOOP-6248
>                 URL: https://issues.apache.org/jira/browse/HADOOP-6248
>             Project: Hadoop Common
>          Issue Type: New Feature
>          Components: test
>         Environment: Python, bash
>            Reporter: Alex Loddengaard
>         Attachments: HADOOP-6248.diff, HADOOP-6248_v2.diff, 
> HADOOP-6248_v3.diff
>
>
> This issue contains a proposal and preliminary source code for Circus, a 
> Hadoop system testing framework.  At a high level, Circus will help Hadoop 
> users and QA engineers to run system tests on a configurable Hadoop cluster, 
> or distribution of Hadoop.  See the comment below for the proposal itself.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.

Reply via email to