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

Allan Yang commented on HBASE-21487:
------------------------------------

{quote}
>From the above solution only one operation will be succeeded because we will 
>abort one of the procedure if ID is not equal.Is this acceptable behavior?
{quote}
Yes, I think it is acceptable
{quote}
Or else after checking the sequence ID of descriptor in prepare state,if its 
not equal can we just throw exception and retry again by building new 
descriptor and submitting procedure again?
{quote}
Since there is only one kind of procedure(ModifyTableProcedure) here, when it 
is begin to execute, it doesn't know how to build the new descriptor, unless we 
record some info into the procedure.

> Concurrent modify table ops can lead to unexpected results
> ----------------------------------------------------------
>
>                 Key: HBASE-21487
>                 URL: https://issues.apache.org/jira/browse/HBASE-21487
>             Project: HBase
>          Issue Type: Bug
>    Affects Versions: 3.0.0, 2.0.0
>            Reporter: Syeda Arshiya Tabreen
>            Priority: Major
>
> Concurrent  modifyTable or add/delete/modify columnFamily leads to incorrect 
> result. After HBASE-18893, The behavior of add/delete/modify column family 
> during concurrent operation is changed compare to branch-1.When  one client 
> is adding cf2 and another one cf3 .. In branch-1 final result will be 
> cf1,cf2,cf3 but now either cf1,cf2 OR cf1,cf3 will be the outcome depending 
> on which ModifyTableProcedure executed finally.Its because new table 
> descriptor is constructed before submitting the ModifyTableProcedure in 
> HMaster class and its not guarded by any lock.
> *Steps to reproduce*
> 1.Create table 't' with column family 'f1'
> 2.Client-1 and Client-2 requests to add column family 'f2' and 'f3' on table 
> 't' concurrently.
> *Expected Result*
> Table should have three column families(f1,f2,f3)
> *Actual Result*
> Table 't' will have column family either (f1,f2) or (f1,f3)



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)

Reply via email to