Todd Lipcon has posted comments on this change.

Change subject: WIP: Expose a way to set "advanced" non-types scan options
......................................................................


Patch Set 4:

(1 comment)

http://gerrit.cloudera.org:8080/#/c/6624/4//COMMIT_MSG
Commit Message:

PS4, Line 15: without "polluting" the api and in such a way that we can remove
            : support for this in the future.
> Likely a run-time error, as before. In any case I don't think we should the
Yea, in this case (and in many similar cases) the flag is really just passed 
down to the server, in which case it's perfectly likely that the server is 
allowed to reject it even if the client library has accepted it. So, the client 
can produce runtime "not-supported" errors, even if the consumer of the API 
linked against an appropriate client version.

Certainly the client could _in theory_ do a compatibility layer by which it 
notices that the server doesn't support the flag, and instead does a full 
memcpy/re-padding of the scanner data, so that it implements the requested 
format. However that would be at a very high perf cost, and I think it would 
probably be preferable to just tell the consumer that the format is not 
supported, rather than have a relatively-silent perf issue that might never be 
discovered.

If you want to take the Linux analogy, I'd say this is similar to ioctl() or 
setsockopt() or other various "more flexible" APIs where the feature may not be 
supported in a particular runtime environment (filesystem, network socket type, 
etc)

Another analogy to other software: the JDK has plenty of "undocumented" APIs 
which can be useful to advanced users who are willing to make the tradeoff that 
they might go away at some point. sun.misc.Unsafe is the most commonly-used 
example, but there are plenty of other cases where I've seen people downcast in 
order to do certain tricky things that are outside the scope of what the 
platform provider wants to generally support.


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

Gerrit-MessageType: comment
Gerrit-Change-Id: I043b6514dc5fc307fc9c94eb41f3ae79796ba273
Gerrit-PatchSet: 4
Gerrit-Project: kudu
Gerrit-Branch: master
Gerrit-Owner: David Ribeiro Alves <dral...@apache.org>
Gerrit-Reviewer: Adar Dembo <a...@cloudera.com>
Gerrit-Reviewer: David Ribeiro Alves <dral...@apache.org>
Gerrit-Reviewer: Jean-Daniel Cryans <jdcry...@apache.org>
Gerrit-Reviewer: Kudu Jenkins
Gerrit-Reviewer: Matthew Jacobs <m...@cloudera.com>
Gerrit-Reviewer: Tidy Bot
Gerrit-Reviewer: Todd Lipcon <t...@apache.org>
Gerrit-HasComments: Yes

Reply via email to