Ray Mattingly created HBASE-28882:
-------------------------------------
Summary: Backup restores are broken if the backup has moved
locations
Key: HBASE-28882
URL: https://issues.apache.org/jira/browse/HBASE-28882
Project: HBase
Issue Type: Bug
Affects Versions: 3.0.0-beta-1, 4.0.0-alpha-1, 2.7.0, 2.6.1
Reporter: Ray Mattingly
My company runs a few hundred HBase clusters. We want to take backups everyday
in one public cloud region, and then use said cloud's native replication
solution to "backup our backups" in a secondary region. This is how we plan for
region-wide disaster recovery.
This system should work, but doesn't because of the way that BackupManifests
are constructed.
Backing up a bit (no pun intended): when we replicate backups verbatim, the
manifest file continues to point to the original backup root. This shouldn't
matter, because when taking a restore one passes a RestoreRequest to the
RestoreTablesClient — and this RestoreRequest includes a BackupRootDir field.
This works as you would expect initially, but eventually we build a
BackupManifest that fails to interpolate this provided root directory and,
instead, falls back to what it finds on disk in the backup (which would point
back to the primary backup location, even if reading a replicated backup).
To fix this, I'm proposing that we properly interpolate the request's root
directory field when building BackupManifests.
--
This message was sent by Atlassian Jira
(v8.20.10#820010)