You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@hbase.apache.org by "Shanmukha Haripriya Kota (Jira)" <ji...@apache.org> on 2026/05/07 14:54:00 UTC

[jira] [Resolved] (HBASE-30090) Table on replica cluster not refreshing after flipping read-only flag twice

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

Shanmukha Haripriya Kota resolved HBASE-30090.
----------------------------------------------
    Resolution: Fixed

> Table on replica cluster not refreshing after flipping read-only flag twice
> ---------------------------------------------------------------------------
>
>                 Key: HBASE-30090
>                 URL: https://issues.apache.org/jira/browse/HBASE-30090
>             Project: HBase
>          Issue Type: Sub-task
>          Components: read replicas
>            Reporter: Kevin Geiszler
>            Assignee: Shanmukha Haripriya Kota
>            Priority: Major
>              Labels: pull-request-available
>         Attachments: original-active-cluster-logs.tar.gz, original-replica-cluster-logs.tar.gz
>
>
> I have noticed that an existing table on a read-replica cluster is not getting updated after making this cluster the active cluster and then making it read-only again.  If you have an active cluster, create a table, give it data, and flush the table, then the replica will see this after refreshing meta and hfiles.  If you flip the read-only flag on both clusters, and add more data, then the new replica will see this data.  However, after flipping the flag back for both clusters and adding data on the active cluster, the replica cluster will not see this new data even after flushing the table on the active cluster and refreshing meta and hfiles on the replica.  Here are some example steps to reproduce this issue on the hbase-docker setup:
> Assume Cluster A starts as the active cluster and Cluster B starts as the read-replica cluster.
>  # On Cluster A, create a table:  create 't1', 'cf'
>  # On Cluster A, add data:  put 't1', 'r1', 'cf:c1', '1'
>  # On Cluster A, flush:  flush 't1'
>  # On Cluster B, run refresh_meta and refresh_hfiles.  Verify 't1' is there and has one row.
>  # Make Cluster A read-only.
>  # Make Cluster B the active cluster.
>  # On Cluster B, add a row to 't1':  put 't1', 'r2', 'cf:c1', '2'
>  # On Cluster B, flush:  flush 't1'
>  # On Cluster A, run refresh_meta and refresh_hfiles.  Verify 't1' is there and has two rows.
>  # Make Cluster B read-only again.
>  # Make Cluster A the active cluster again.
>  # On Cluster A, add data to 't1':  put 't1', 'r3', 'cf:c1', '3'
>  # On Cluster A, flush:  flush 't1'
>  # On Cluster B, run refresh_meta and refresh_hfiles.  The row count for 't1' will still be 2 rows rather than 3 rows.



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