[ https://issues.apache.org/jira/browse/HBASE-29021?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Duo Zhang resolved HBASE-29021. ------------------------------- Fix Version/s: 2.7.0 3.0.0-beta-2 2.6.2 Hadoop Flags: Reviewed Resolution: Fixed Pushed to branch-2.6+. Thanks [~jaehui-lee] for contributing! > When StoreFileTracker is FILE, unable to recognize StoreFileListFile after > upgrade from 2.5 to 2.6 > -------------------------------------------------------------------------------------------------- > > Key: HBASE-29021 > URL: https://issues.apache.org/jira/browse/HBASE-29021 > Project: HBase > Issue Type: Bug > Components: HFile, regionserver > Affects Versions: 2.6.1, 2.5.10 > Reporter: Ke Han > Assignee: Jaehui Lee > Priority: Critical > Labels: pull-request-available > Fix For: 2.7.0, 3.0.0-beta-2, 2.6.2 > > > h1. Symptoms > After upgrading from HBase 2.5.10 to HBase 2.6.1, I observed an inconsistent > read across versions. > Before the upgrade, I created a table with one row. Invoking a count command > returns 1. After upgrading to 2.6.1, execute the same count command, it > returns 0. > {code:java} > count 'test' > Old Version Result: > 1 row(s) > Took 0.5582 seconds > => 1 > New Version Result: > 0 row(s) > Took 1.4439 seconds > => 0 {code} > h1. Reproduce > It can be reproduced deterministically with the following steps > Step1: Start up the HBase cluster in 2.5.10 and execute the following commands > {code:java} > create 'test', 'cf', CONFIGURATION => {'hbase.store.file-tracker.impl' => > 'FILE'} > put 'test', 'row', 'cf:q', 'value'{code} > Step2: Execute the count command in the old version > {code:java} > count 'test' > 1 row(s) > Took 0.5582 seconds > => 1 {code} > Step3: Stop the entire cluster, upgrade to 2.6.1 and execute the same count > command > {code:java} > count 'test' > 0 row(s) > Took 0.0842 seconds > => 0{code} > h1. Analysis > The names of {{StoreFileListFile}} differ between the two versions: > * In 2.5.10: {{f1}} or {{f2}} > * In 2.6.1: {{{}f1.{timestamp{}}}} or {{{}f2.{timestamp{}}}} > The addition of a timestamp to the file name was introduced in HBASE-26791. > It can be resolved by handling missing timestamps by setting them to 0. > However, in the case of downgrading versions, the above approach does not > work. A workaround is available: > * Change the storefile tracker implementation from {{FILE}} > {{MIGRATION > > DEFAULT}} before downgrading. -- This message was sent by Atlassian Jira (v8.20.10#820010)