[ 
https://issues.apache.org/jira/browse/HBASE-29021?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Jaehui Lee resolved HBASE-29021.
--------------------------------
    Resolution: Fixed

> 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
>
> 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.
> When upgrading HBase versions, this issue 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.
> if the HBase version is changed without modifying the storefile tracker 
> implementation, files may not be recognized.
> In such cases, the same workaround can be applied.



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

Reply via email to