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

Enis Soztutar commented on HBASE-7305:
--------------------------------------

bq. Can you say more. This is interesting.
Most of the client -> master operations are async. On the RPC code path, the 
Handler objects are created, and some basic checks are performed in the c.tor. 
Then the rpc returns without waiting for the operation to finish. But we don't 
expose any generic mechanism to the client so that it can check the status or 
the request (like whether it finished/succeeded/exception). The client can only 
check the side effects of the request (if enable table, whether the table is 
enabled yet, HBaseAdmin.createTable(), etc). 
If we do HBASE-5487, or keep request id's around in the handlers, we can fix 
that by exposing some submit task / query status / get exception API from the 
master to the client. I think we need to start working on that after this.
In this patch though, we do not acquire the table lock in the rpc path, but 
only on EventHandler.process(). The client rpc never waits for the table lock. 
But now thinking about it, I think I will change it so that the table lock is 
acquired in the RPC handler, and released from the table event handler. 
                
> ZK based Read/Write locks for table operations
> ----------------------------------------------
>
>                 Key: HBASE-7305
>                 URL: https://issues.apache.org/jira/browse/HBASE-7305
>             Project: HBase
>          Issue Type: Bug
>          Components: Client, master, Zookeeper
>            Reporter: Enis Soztutar
>            Assignee: Enis Soztutar
>             Fix For: 0.96.0
>
>         Attachments: hbase-7305_v0.patch
>
>
> This has started as forward porting of HBASE-5494 and HBASE-5991 from the 
> 89-fb branch to trunk, but diverged enough to have it's own issue. 
> The idea is to implement a zk based read/write lock per table. Master 
> initiated operations should get the write lock, and region operations (region 
> split, moving, balance?, etc) acquire a shared read lock. 

--
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

Reply via email to