Adar Dembo has posted comments on this change.

Change subject: WIP: use C++ ExternalMiniCluster for Java and Python tests
......................................................................


Patch Set 2:

(2 comments)

> I think it's a great idea.  What about more machine-oriented
 > interface for the CLI tool?  Do you expect it to be transformed
 > into something JSON-like in the nearest future?
 
See the comment Todd left; we're discussing just that.

 > Maybe, it's worth introducing running a proxy along with
 > minicluster and providing something like REST interface instead of
 > CLI for the tests?

I didn't implement a TCP-based connection between the proxy and the tests 
exactly so that the entire "port already in use" class of issues can be 
avoided. When communication is over a TCP socket, we either need to use a 
well-known port, which is prone to conflicts, or an ephemeral port, whose 
number needs to be communicated back to the tests. If we've already got a 
channel for communicating the port number (probably stdout), we can use that 
channel for control too.

I think a socket-based approach would make more sense if there were multiple 
consumers of a single mini cluster, but that's just not the case with our tests.

http://gerrit.cloudera.org:8080/#/c/7853/2//COMMIT_MSG
Commit Message:

PS2, Line 20: authz
> nit here and below: I think it should be 'authn' -- the kerberos-related ac
You are right, my bad.


PS2, Line 47: WIP because, well, it should be pretty obvious. I was able to get 
through a
            : full run of "mvn verify" locally, so I have confidence that this 
can work.
            : But I'd like to solicit feedback on the general approach before 
spending
            : more time applying spit and polish.
> general approach seems reasonable to me.
I went back and forth on this.

JSON (or protobuf, or thrift, or or or...) would certainly make the RPC system 
far more robust and maintainable. But we'd lose the ability to actually use 
run_cluster interactively from the command line, because no one wants to write 
JSON or whatever by hand.

Right now the noun/verb word-based RPC allows for interactivity and that's how 
I did much of the early testing. It's not robust, but it won't be broken by 
simple things like e.g. a minicluster dir with a space (it would be broken by 
unexpected newlines though).

Do you think the pros of using a real serialization format outweigh the loss of 
interactivity?


-- 
To view, visit http://gerrit.cloudera.org:8080/7853
To unsubscribe, visit http://gerrit.cloudera.org:8080/settings

Gerrit-MessageType: comment
Gerrit-Change-Id: I0e693921ef780dc4a06e536c6b7408f7f0b252f6
Gerrit-PatchSet: 2
Gerrit-Project: kudu
Gerrit-Branch: master
Gerrit-Owner: Adar Dembo <a...@cloudera.com>
Gerrit-Reviewer: Adar Dembo <a...@cloudera.com>
Gerrit-Reviewer: Alexey Serbin <aser...@cloudera.com>
Gerrit-Reviewer: Dan Burkert <danburk...@apache.org>
Gerrit-Reviewer: Kudu Jenkins
Gerrit-Reviewer: Tidy Bot
Gerrit-Reviewer: Todd Lipcon <t...@apache.org>
Gerrit-HasComments: Yes

Reply via email to