hbase-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "stack (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (HBASE-15638) Shade protobuf
Date Wed, 13 Apr 2016 15:26:25 GMT

    [ https://issues.apache.org/jira/browse/HBASE-15638?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15239421#comment-15239421
] 

stack commented on HBASE-15638:
-------------------------------

Thank you for taking a look [~sergey.soldatov] 

bq. What is the reason to do it in this way?

Totally open to any approach. My thought was to localize all shading and pb machinations inside
our hbase-protocol module. Encapsulate the mess.

bq. IMHO it's better to apply the shading pattern to all required modules

So, shade in the top-level pom?

How will it resolve the ByteString issue? The API being called is from HDFS... HDFS has not
been shaded. It wants com.google.pb.ByteString but we are passing it org.apache.hbase.shaded.com.google.pb.ByteString.

Thanks for the help here [~sergey.soldatov]

> Shade protobuf
> --------------
>
>                 Key: HBASE-15638
>                 URL: https://issues.apache.org/jira/browse/HBASE-15638
>             Project: HBase
>          Issue Type: Bug
>          Components: Protobufs
>            Reporter: stack
>         Attachments: as.far.as.server.patch
>
>
> Shade protobufs so we can move to a different version without breaking the world. We
want to get up on pb3 because it has unsafe methods that allow us save on copies; it also
has some means of dealing with BBs so we can pass it offheap DBBs. We'll probably want to
change PB3 to open it up some more too so we can stay offheap as we traverse PB. This issue
comes of [~anoop.hbase] and [~ram_krish]'s offheaping of the readpath work.
> This change is mostly straight-forward but there are some tricky bits:
>  # How to interface with HDFS? It wants its ByteStrings. Here in particular in FanOutOneBlockAsyncDFSOutputSaslHelper:
> {code}
>       if (payload != null) {
>         builder.setPayload(ByteString.copyFrom(payload));
>       }
> {code}
>  # [~busbey] also points out that we need to take care of endpoints done as pb. Test
at least.
> Let me raise this one on the dev list too.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Mime
View raw message