hbase-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Elliott Clark (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (HBASE-7533) Write an RPC Specification for 0.96
Date Thu, 17 Jan 2013 22:04:13 GMT

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

Elliott Clark commented on HBASE-7533:
--------------------------------------

bq.The region server will throw an actual exception wrapping the message which will be understood
by the ipc layer, or the region server does not throw the exception, but set the exception
message to the response?

I'm not sure I understand the question, so I might not answer the exact question you're asking.
 However here's my thinking:

Right now the HRegionServer throws the exception and the ipc classes on the server side catch
the exception.  This exception is currently a message carrying two strings that're parsed
on the client side.

I'm proposing a that exception is sent as bytes + name of the class to decode these bytes.
 So a couple of examples:

# HRegionServer throws NoSuchColumFamilyException (could be any of the normal non payload
carrying exceptions) 
# The ipc handler catches the exception.  Sees that there's no registered way to serialize
this specially. So the ipc handler would use the default StringBasedException. That pb would
be built and the bytes array would be added to the response along side the key that tells
the client to decode on it's side using StringBasedException.
# The client would then get the message.
# See there is an exception.
# look up how to decode it using exceptionMessageType.
# decode the bytes array and throw the exception


The special case:
# HRegionServer throws RegionMovedException
# The ipc classes catch the exception
# See that this is a specially registered class.
# Use the registered encode to take RegionMovedException and create RegionMovedExceptionMessage.
# Build the message
# put the bytes into the exception field.
# put the key telling the client to decode this as RegionMovedExceptionMessage into exceptionMessageType
# client would get the message
# see that there's an exception
# load the class the key says will decode the exception bytes.
# Use it to parse the RegionMovedExceptionMessage
# throw the exception on the client side.
                
> Write an RPC Specification for 0.96
> -----------------------------------
>
>                 Key: HBASE-7533
>                 URL: https://issues.apache.org/jira/browse/HBASE-7533
>             Project: HBase
>          Issue Type: Bug
>            Reporter: stack
>            Assignee: stack
>             Fix For: 0.96.0
>
>         Attachments: 7533_proto_sketch.txt
>
>
> RPC format is changing for 0.96 to accomodate our protobufing all around.  Here is a
first cut.  Please shred: https://docs.google.com/document/d/1-1RJMLXzYldmHgKP7M7ynK6euRpucD03fZ603DlZfGI/edit

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira

Mime
View raw message