[
https://issues.apache.org/jira/browse/HBASE-17721?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16070625#comment-16070625
]
stack commented on HBASE-17721:
-------------------------------
Spent five minutes. Looks like it'll be a little work getting it to play on the
CLASSPATH but should work. In particular, grpc, includes gson, guava,
protobufs, and netty. We are already shading these separately. Research would
be around the difference between our versions and grpcs and if we can align (or
just rely on grpc going forward since it has all that is in hbase-thirdparty).
We align on protobuf, netty, gson. We could use their version of guava instead
of 22.0 (theirs is 19.0). Would take a few hours I'd say. Would then need a
dumb test up in hbase.git that made use of the shaded grpc to make sure it
basically works (w/o its version of findbugs, etc.). Here is list of what the
shade touched (need to work on my filters to keep out some of the below).
{code}
[INFO] Including io.grpc:grpc-all:jar:1.4.0 in the shaded jar.
[INFO] Including io.grpc:grpc-auth:jar:1.4.0 in the shaded jar.
[INFO] Including com.google.auth:google-auth-library-credentials:jar:0.4.0 in
the shaded jar.
[INFO] Including io.grpc:grpc-core:jar:1.4.0 in the shaded jar.
[INFO] Including com.google.guava:guava:jar:19.0 in the shaded jar.
[INFO] Excluding com.google.errorprone:error_prone_annotations:jar:2.0.19 from
the shaded jar.
[INFO] Excluding com.google.code.findbugs:jsr305:jar:3.0.0 from the shaded jar.
[INFO] Including com.google.instrumentation:instrumentation-api:jar:0.4.2 in
the shaded jar.
[INFO] Including io.grpc:grpc-context:jar:1.4.0 in the shaded jar.
[INFO] Including io.grpc:grpc-netty:jar:1.4.0 in the shaded jar.
[INFO] Including io.netty:netty-codec-http2:jar:4.1.11.Final in the shaded jar.
[INFO] Including io.netty:netty-codec-http:jar:4.1.11.Final in the shaded jar.
[INFO] Including io.netty:netty-codec:jar:4.1.11.Final in the shaded jar.
[INFO] Including io.netty:netty-handler:jar:4.1.11.Final in the shaded jar.
[INFO] Including io.netty:netty-buffer:jar:4.1.11.Final in the shaded jar.
[INFO] Including io.netty:netty-common:jar:4.1.11.Final in the shaded jar.
[INFO] Including io.netty:netty-handler-proxy:jar:4.1.11.Final in the shaded
jar.
[INFO] Including io.netty:netty-transport:jar:4.1.11.Final in the shaded jar.
[INFO] Including io.netty:netty-resolver:jar:4.1.11.Final in the shaded jar.
[INFO] Including io.netty:netty-codec-socks:jar:4.1.11.Final in the shaded jar.
[INFO] Including io.grpc:grpc-okhttp:jar:1.4.0 in the shaded jar.
[INFO] Including com.squareup.okhttp:okhttp:jar:2.5.0 in the shaded jar.
[INFO] Including com.squareup.okio:okio:jar:1.6.0 in the shaded jar.
[INFO] Including io.grpc:grpc-protobuf:jar:1.4.0 in the shaded jar.
[INFO] Including com.google.protobuf:protobuf-java:jar:3.3.1 in the shaded jar.
[INFO] Including com.google.protobuf:protobuf-java-util:jar:3.3.1 in the shaded
jar.
[INFO] Including com.google.code.gson:gson:jar:2.7 in the shaded jar.
[INFO] Including com.google.api.grpc:proto-google-common-protos:jar:0.1.9 in
the shaded jar.
[INFO] Including io.grpc:grpc-protobuf-lite:jar:1.4.0 in the shaded jar.
[INFO] Including com.google.protobuf:protobuf-lite:jar:3.0.1 in the shaded jar.
[INFO] Including io.grpc:grpc-protobuf-nano:jar:1.4.0 in the shaded jar.
[INFO] Including com.google.protobuf.nano:protobuf-javanano:jar:3.0.0-alpha-5
in the shaded jar.
[INFO] Including io.grpc:grpc-stub:jar:1.4.0 in the shaded jar.
{code}
> Provide streaming APIs with SSL/TLS
> -----------------------------------
>
> Key: HBASE-17721
> URL: https://issues.apache.org/jira/browse/HBASE-17721
> Project: HBase
> Issue Type: Umbrella
> Components: rpc, security
> Reporter: Alex Araujo
> Assignee: Alex Araujo
> Fix For: 2.0.0
>
>
> Umbrella to add optional client/server streaming capabilities to HBase.
> This would allow bandwidth to be used more efficiently for certain
> operations, and allow clients to use SSL/TLS for authentication and
> encryption.
> Desired client/server scaffolding:
> - HTTP/2 support
> - Protocol negotiation (blocking vs streaming, auth, encryption, etc.)
> - TLS/SSL support
> - Streaming RPC support
> Possibilities (and their tradeoffs):
> - gRPC: Some initial work and discussion on HBASE-13467 (Prototype using GRPC
> as IPC mechanism)
> -- Has most or all of the desired scaffolding
> -- Adds additional g* dependencies. Compat story for g* dependencies not
> always ideal
> - Custom HTTP/2 based client/server APIs
> -- More control over compat story
> -- Non-trivial to build scaffolding; might reinvent wheels along the way
> - Others?
> Related Jiras that might be rolled in as sub-tasks (or closed/replaced with
> new ones):
> HBASE-17708 (Expose config to set two-way auth over TLS in HttpServer and add
> a test)
> HBASE-8691 (High-Throughput Streaming Scan API)
> HBASE-14899 (Create custom Streaming ReplicationEndpoint)
--
This message was sent by Atlassian JIRA
(v6.4.14#64029)