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

Andrey Stepachev commented on HBASE-13087:
------------------------------------------

[~ndimiduk], [~eclark], I'll try to resolve HBASE-13147 as soon as possible. 
Sorry for delay here. As soon we will be able to distinguish what version of 
meta is used
it should be possible to do rolling upgrade.
Once we have meta version we need to invent some way to let AssignmentManager
to know what version of Meta RegionServer is expected.
We could add to server status, reported by RS, version
of expected META, so AM could consult this infomation and assign meta
to compatible RS only. 
As I think it should looks like:
1. Master restarted.
2. AM checks META versions and in case mismatch unassign META from
RS with old expected version.
3. Once there is RS with compatible version META could be assigned to it
(in case of rolling upgrade exepected delay could be time of master
restart + 1 region server restart).

> branch-1 isn't rolling upgradable from 0.98
> -------------------------------------------
>
>                 Key: HBASE-13087
>                 URL: https://issues.apache.org/jira/browse/HBASE-13087
>             Project: HBase
>          Issue Type: Bug
>    Affects Versions: 1.1.0
>            Reporter: Elliott Clark
>            Assignee: Rajesh Nishtala
>            Priority: Blocker
>             Fix For: 1.1.0
>
>         Attachments: HBASE-13087-v1.txt
>
>
> {code}org.apache.hadoop.hbase.client.RetriesExhaustedWithDetailsException: 
> Failed 1 action: 
> org.apache.hadoop.hbase.regionserver.NoSuchColumnFamilyException: Column 
> family table does not exist in region hbase:meta,,1.1588230740 in table 
> 'hbase:meta', {TABLE_ATTRIBUTES => {IS_META => 'true', coprocessor$1 => 
> '|org.apache.hadoop.hbase.coprocessor.MultiRowMutationEndpoint|536870911|'}, 
> {NAME => 'info', BLOOMFILTER => 'NONE', VERSIONS => '10', IN_MEMORY => 
> 'true', KEEP_DELETED_CELLS => 'FALSE', DATA_BLOCK_ENCODING => 'NONE', TTL => 
> 'FOREVER', COMPRESSION => 'NONE', MIN_VERSIONS => '0', BLOCKCACHE => 'true', 
> BLOCKSIZE => '8192', REPLICATION_SCOPE => '0'}
>       at 
> org.apache.hadoop.hbase.regionserver.HRegionServer.doBatchOp(HRegionServer.java:4513)
>       at 
> org.apache.hadoop.hbase.regionserver.HRegionServer.doNonAtomicRegionMutation(HRegionServer.java:3687)
>       at 
> org.apache.hadoop.hbase.regionserver.HRegionServer.multi(HRegionServer.java:3576)
>       at 
> org.apache.hadoop.hbase.protobuf.generated.ClientProtos$ClientService$2.callBlockingMethod(ClientProtos.java:30816)
>       at org.apache.hadoop.hbase.ipc.RpcServer.call(RpcServer.java:2029)
>       at org.apache.hadoop.hbase.ipc.CallRunner.run(CallRunner.java:107)
>       at 
> org.apache.hadoop.hbase.ipc.RpcExecutor.consumerLoop(RpcExecutor.java:130)
>       at org.apache.hadoop.hbase.ipc.RpcExecutor$1.run(RpcExecutor.java:107)
>       at java.lang.Thread.run(Thread.java:745)
> : 1 time, 
>       at 
> org.apache.hadoop.hbase.client.AsyncProcess$BatchErrors.makeException(AsyncProcess.java:228)
>       at 
> org.apache.hadoop.hbase.client.AsyncProcess$BatchErrors.access$1700(AsyncProcess.java:208)
>       at 
> org.apache.hadoop.hbase.client.AsyncProcess.waitForAllPreviousOpsAndReset(AsyncProcess.java:1689)
>       at 
> org.apache.hadoop.hbase.client.BufferedMutatorImpl.backgroundFlushCommits(BufferedMutatorImpl.java:208)
>       at 
> org.apache.hadoop.hbase.client.BufferedMutatorImpl.flush(BufferedMutatorImpl.java:183)
>       at org.apache.hadoop.hbase.client.HTable.flushCommits(HTable.java:1404)
>       at org.apache.hadoop.hbase.client.HTable.put(HTable.java:1017)
>       at 
> org.apache.hadoop.hbase.MetaTableAccessor.put(MetaTableAccessor.java:1123)
>       at 
> org.apache.hadoop.hbase.MetaTableAccessor.putToMetaTable(MetaTableAccessor.java:1113)
>       at 
> org.apache.hadoop.hbase.MetaTableAccessor.updateTableState(MetaTableAccessor.java:1436)
>       at 
> org.apache.hadoop.hbase.MetaTableAccessor.updateTableState(MetaTableAccessor.java:948)
>       at 
> org.apache.hadoop.hbase.master.TableStateManager.writeMetaState(TableStateManager.java:195)
>       at 
> org.apache.hadoop.hbase.master.TableStateManager.setTableState(TableStateManager.java:69)
>       at 
> org.apache.hadoop.hbase.master.AssignmentManager.setEnabledTable(AssignmentManager.java:3427)
>       at org.apache.hadoop.hbase.master.HMaster.assignMeta(HMaster.java:903)
>       at 
> org.apache.hadoop.hbase.master.HMaster.finishActiveMasterInitialization(HMaster.java:698)
>       at org.apache.hadoop.hbase.master.HMaster.access$500(HMaster.java:166)
>       at org.apache.hadoop.hbase.master.HMaster$1.run(HMaster.java:1494)
>       at java.lang.Thread.run(Thread.java:745)
> {code}



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

Reply via email to