Bryan Beaudreault created HBASE-27657:
-----------------------------------------

             Summary: Connection and Request Attributes
                 Key: HBASE-27657
                 URL: https://issues.apache.org/jira/browse/HBASE-27657
             Project: HBase
          Issue Type: New Feature
            Reporter: Bryan Beaudreault


Currently we have the ability to set Operation attributes, via 
Get.setAttribute, etc. It would be useful to be able to set attributes at the 
request and connection level.

These levels can result in less duplication. For example, send some attributes 
once per connection instead of for every one of the millions of requests a 
connection might send. Or send once for the request, instead of duplicating on 
every operation in a multi request.

Additionally, the Connection and RequestHeader are more globally available on 
the server side. Both can be accessed via RpcServer.getCurrentCall(), which is 
useful in various integration points – coprocessors, custom queues, quotas, 
slow log, etc. Operation attributes are harder to access because you need to 
parse the raw Message into the appropriate type to get access to the getter.

I was thinking adding two new methods to Connection interface:

- setAttribute (and getAttribute/getAttributes)

- setRequestAttributeProvider

Any Connection attributes would be set onto the ConnectionHeader during 
initialization. The RequestAttributeProvider would be called when creating each 
RequestHeader.

An alternative to setRequestAttributeProvider would be to add this into 
HBaseRpcController, which can already be customized via site configuration. 



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

Reply via email to