Re: [PR] HBASE-29133: Implement "pitr" Command for Point-in-Time Restore [hbase]

2025-05-30 Thread via GitHub


taklwu merged PR #6717:
URL: https://github.com/apache/hbase/pull/6717


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]



Re: [PR] HBASE-29133: Implement "pitr" Command for Point-in-Time Restore [hbase]

2025-05-30 Thread via GitHub


kgeisz commented on code in PR #6717:
URL: https://github.com/apache/hbase/pull/6717#discussion_r2116260761


##
hbase-backup/src/main/java/org/apache/hadoop/hbase/backup/AbstractRestoreDriver.java:
##
@@ -0,0 +1,227 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.hadoop.hbase.backup;
+
+import static 
org.apache.hadoop.hbase.backup.BackupRestoreConstants.OPTION_CHECK;
+import static 
org.apache.hadoop.hbase.backup.BackupRestoreConstants.OPTION_CHECK_DESC;
+import static 
org.apache.hadoop.hbase.backup.BackupRestoreConstants.OPTION_DEBUG;
+import static 
org.apache.hadoop.hbase.backup.BackupRestoreConstants.OPTION_DEBUG_DESC;
+import static 
org.apache.hadoop.hbase.backup.BackupRestoreConstants.OPTION_OVERWRITE;
+import static 
org.apache.hadoop.hbase.backup.BackupRestoreConstants.OPTION_OVERWRITE_DESC;
+import static org.apache.hadoop.hbase.backup.BackupRestoreConstants.OPTION_SET;
+import static 
org.apache.hadoop.hbase.backup.BackupRestoreConstants.OPTION_SET_RESTORE_DESC;
+import static 
org.apache.hadoop.hbase.backup.BackupRestoreConstants.OPTION_TABLE;
+import static 
org.apache.hadoop.hbase.backup.BackupRestoreConstants.OPTION_TABLE_LIST_DESC;
+import static 
org.apache.hadoop.hbase.backup.BackupRestoreConstants.OPTION_TABLE_MAPPING;
+import static 
org.apache.hadoop.hbase.backup.BackupRestoreConstants.OPTION_TABLE_MAPPING_DESC;
+import static 
org.apache.hadoop.hbase.backup.BackupRestoreConstants.OPTION_YARN_QUEUE_NAME;
+import static 
org.apache.hadoop.hbase.backup.BackupRestoreConstants.OPTION_YARN_QUEUE_NAME_RESTORE_DESC;
+
+import java.io.IOException;
+import java.util.List;
+import java.util.Objects;
+import org.apache.commons.lang3.StringUtils;
+import org.apache.hadoop.hbase.TableName;
+import org.apache.hadoop.hbase.backup.impl.BackupManager;
+import org.apache.hadoop.hbase.backup.impl.BackupSystemTable;
+import org.apache.hadoop.hbase.backup.util.BackupUtils;
+import org.apache.hadoop.hbase.client.Connection;
+import org.apache.hadoop.hbase.client.ConnectionFactory;
+import org.apache.hadoop.hbase.logging.Log4jUtils;
+import org.apache.hadoop.hbase.util.AbstractHBaseTool;
+import org.apache.yetus.audience.InterfaceAudience;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+import org.apache.hbase.thirdparty.org.apache.commons.cli.CommandLine;
+import org.apache.hbase.thirdparty.org.apache.commons.cli.HelpFormatter;
+
[email protected]
+public abstract class AbstractRestoreDriver extends AbstractHBaseTool {
+  protected static final Logger LOG = 
LoggerFactory.getLogger(AbstractRestoreDriver.class);
+  protected CommandLine cmd;
+
+  protected static final String USAGE_FOOTER = "";
+
+  protected AbstractRestoreDriver() {
+init();
+  }
+
+  protected void init() {
+Log4jUtils.disableZkAndClientLoggers();
+  }
+
+  protected abstract int executeRestore(boolean check, TableName[] fromTables, 
TableName[] toTables,
+boolean isOverwrite);
+
+  private int parseAndRun() throws IOException {
+if (!BackupManager.isBackupEnabled(getConf())) {
+  System.err.println(BackupRestoreConstants.ENABLE_BACKUP);
+  return -1;
+}
+
+if (cmd.hasOption(OPTION_DEBUG)) {
+  Log4jUtils.setLogLevel("org.apache.hadoop.hbase.backup", "DEBUG");
+}
+
+boolean overwrite = cmd.hasOption(OPTION_OVERWRITE);
+if (overwrite) {
+  LOG.debug("Found -overwrite option in restore command, "
++ "will overwrite to existing table if any in the restore target");
+}
+
+boolean check = cmd.hasOption(OPTION_CHECK);
+if (check) {

Review Comment:
   I missed that you're using this at the end of the function as well, so no 
change is needed here.



-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]



Re: [PR] HBASE-29133: Implement "pitr" Command for Point-in-Time Restore [hbase]

2025-05-30 Thread via GitHub


kgeisz commented on code in PR #6717:
URL: https://github.com/apache/hbase/pull/6717#discussion_r2116260761


##
hbase-backup/src/main/java/org/apache/hadoop/hbase/backup/AbstractRestoreDriver.java:
##
@@ -0,0 +1,227 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.hadoop.hbase.backup;
+
+import static 
org.apache.hadoop.hbase.backup.BackupRestoreConstants.OPTION_CHECK;
+import static 
org.apache.hadoop.hbase.backup.BackupRestoreConstants.OPTION_CHECK_DESC;
+import static 
org.apache.hadoop.hbase.backup.BackupRestoreConstants.OPTION_DEBUG;
+import static 
org.apache.hadoop.hbase.backup.BackupRestoreConstants.OPTION_DEBUG_DESC;
+import static 
org.apache.hadoop.hbase.backup.BackupRestoreConstants.OPTION_OVERWRITE;
+import static 
org.apache.hadoop.hbase.backup.BackupRestoreConstants.OPTION_OVERWRITE_DESC;
+import static org.apache.hadoop.hbase.backup.BackupRestoreConstants.OPTION_SET;
+import static 
org.apache.hadoop.hbase.backup.BackupRestoreConstants.OPTION_SET_RESTORE_DESC;
+import static 
org.apache.hadoop.hbase.backup.BackupRestoreConstants.OPTION_TABLE;
+import static 
org.apache.hadoop.hbase.backup.BackupRestoreConstants.OPTION_TABLE_LIST_DESC;
+import static 
org.apache.hadoop.hbase.backup.BackupRestoreConstants.OPTION_TABLE_MAPPING;
+import static 
org.apache.hadoop.hbase.backup.BackupRestoreConstants.OPTION_TABLE_MAPPING_DESC;
+import static 
org.apache.hadoop.hbase.backup.BackupRestoreConstants.OPTION_YARN_QUEUE_NAME;
+import static 
org.apache.hadoop.hbase.backup.BackupRestoreConstants.OPTION_YARN_QUEUE_NAME_RESTORE_DESC;
+
+import java.io.IOException;
+import java.util.List;
+import java.util.Objects;
+import org.apache.commons.lang3.StringUtils;
+import org.apache.hadoop.hbase.TableName;
+import org.apache.hadoop.hbase.backup.impl.BackupManager;
+import org.apache.hadoop.hbase.backup.impl.BackupSystemTable;
+import org.apache.hadoop.hbase.backup.util.BackupUtils;
+import org.apache.hadoop.hbase.client.Connection;
+import org.apache.hadoop.hbase.client.ConnectionFactory;
+import org.apache.hadoop.hbase.logging.Log4jUtils;
+import org.apache.hadoop.hbase.util.AbstractHBaseTool;
+import org.apache.yetus.audience.InterfaceAudience;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+import org.apache.hbase.thirdparty.org.apache.commons.cli.CommandLine;
+import org.apache.hbase.thirdparty.org.apache.commons.cli.HelpFormatter;
+
[email protected]
+public abstract class AbstractRestoreDriver extends AbstractHBaseTool {
+  protected static final Logger LOG = 
LoggerFactory.getLogger(AbstractRestoreDriver.class);
+  protected CommandLine cmd;
+
+  protected static final String USAGE_FOOTER = "";
+
+  protected AbstractRestoreDriver() {
+init();
+  }
+
+  protected void init() {
+Log4jUtils.disableZkAndClientLoggers();
+  }
+
+  protected abstract int executeRestore(boolean check, TableName[] fromTables, 
TableName[] toTables,
+boolean isOverwrite);
+
+  private int parseAndRun() throws IOException {
+if (!BackupManager.isBackupEnabled(getConf())) {
+  System.err.println(BackupRestoreConstants.ENABLE_BACKUP);
+  return -1;
+}
+
+if (cmd.hasOption(OPTION_DEBUG)) {
+  Log4jUtils.setLogLevel("org.apache.hadoop.hbase.backup", "DEBUG");
+}
+
+boolean overwrite = cmd.hasOption(OPTION_OVERWRITE);
+if (overwrite) {
+  LOG.debug("Found -overwrite option in restore command, "
++ "will overwrite to existing table if any in the restore target");
+}
+
+boolean check = cmd.hasOption(OPTION_CHECK);
+if (check) {

Review Comment:
   I missed that you're using this at the end of the function as well.



-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]



Re: [PR] HBASE-29133: Implement "pitr" Command for Point-in-Time Restore [hbase]

2025-05-30 Thread via GitHub


kgeisz commented on code in PR #6717:
URL: https://github.com/apache/hbase/pull/6717#discussion_r2116259352


##
hbase-backup/src/main/java/org/apache/hadoop/hbase/backup/AbstractRestoreDriver.java:
##
@@ -0,0 +1,227 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.hadoop.hbase.backup;
+
+import static 
org.apache.hadoop.hbase.backup.BackupRestoreConstants.OPTION_CHECK;
+import static 
org.apache.hadoop.hbase.backup.BackupRestoreConstants.OPTION_CHECK_DESC;
+import static 
org.apache.hadoop.hbase.backup.BackupRestoreConstants.OPTION_DEBUG;
+import static 
org.apache.hadoop.hbase.backup.BackupRestoreConstants.OPTION_DEBUG_DESC;
+import static 
org.apache.hadoop.hbase.backup.BackupRestoreConstants.OPTION_OVERWRITE;
+import static 
org.apache.hadoop.hbase.backup.BackupRestoreConstants.OPTION_OVERWRITE_DESC;
+import static org.apache.hadoop.hbase.backup.BackupRestoreConstants.OPTION_SET;
+import static 
org.apache.hadoop.hbase.backup.BackupRestoreConstants.OPTION_SET_RESTORE_DESC;
+import static 
org.apache.hadoop.hbase.backup.BackupRestoreConstants.OPTION_TABLE;
+import static 
org.apache.hadoop.hbase.backup.BackupRestoreConstants.OPTION_TABLE_LIST_DESC;
+import static 
org.apache.hadoop.hbase.backup.BackupRestoreConstants.OPTION_TABLE_MAPPING;
+import static 
org.apache.hadoop.hbase.backup.BackupRestoreConstants.OPTION_TABLE_MAPPING_DESC;
+import static 
org.apache.hadoop.hbase.backup.BackupRestoreConstants.OPTION_YARN_QUEUE_NAME;
+import static 
org.apache.hadoop.hbase.backup.BackupRestoreConstants.OPTION_YARN_QUEUE_NAME_RESTORE_DESC;
+
+import java.io.IOException;
+import java.util.List;
+import java.util.Objects;
+import org.apache.commons.lang3.StringUtils;
+import org.apache.hadoop.hbase.TableName;
+import org.apache.hadoop.hbase.backup.impl.BackupManager;
+import org.apache.hadoop.hbase.backup.impl.BackupSystemTable;
+import org.apache.hadoop.hbase.backup.util.BackupUtils;
+import org.apache.hadoop.hbase.client.Connection;
+import org.apache.hadoop.hbase.client.ConnectionFactory;
+import org.apache.hadoop.hbase.logging.Log4jUtils;
+import org.apache.hadoop.hbase.util.AbstractHBaseTool;
+import org.apache.yetus.audience.InterfaceAudience;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+import org.apache.hbase.thirdparty.org.apache.commons.cli.CommandLine;
+import org.apache.hbase.thirdparty.org.apache.commons.cli.HelpFormatter;
+
[email protected]
+public abstract class AbstractRestoreDriver extends AbstractHBaseTool {
+  protected static final Logger LOG = 
LoggerFactory.getLogger(AbstractRestoreDriver.class);
+  protected CommandLine cmd;
+
+  protected static final String USAGE_FOOTER = "";
+
+  protected AbstractRestoreDriver() {
+init();
+  }
+
+  protected void init() {
+Log4jUtils.disableZkAndClientLoggers();
+  }
+
+  protected abstract int executeRestore(boolean check, TableName[] fromTables, 
TableName[] toTables,
+boolean isOverwrite);
+
+  private int parseAndRun() throws IOException {
+if (!BackupManager.isBackupEnabled(getConf())) {
+  System.err.println(BackupRestoreConstants.ENABLE_BACKUP);
+  return -1;
+}
+
+if (cmd.hasOption(OPTION_DEBUG)) {
+  Log4jUtils.setLogLevel("org.apache.hadoop.hbase.backup", "DEBUG");
+}
+
+boolean overwrite = cmd.hasOption(OPTION_OVERWRITE);
+if (overwrite) {

Review Comment:
   Got it, I missed that.



-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]



Re: [PR] HBASE-29133: Implement "pitr" Command for Point-in-Time Restore [hbase]

2025-05-30 Thread via GitHub


vinayakphegde commented on code in PR #6717:
URL: https://github.com/apache/hbase/pull/6717#discussion_r2115679885


##
hbase-backup/src/main/java/org/apache/hadoop/hbase/backup/RestoreDriver.java:
##
@@ -17,117 +17,34 @@
  */
 package org.apache.hadoop.hbase.backup;
 
-import static 
org.apache.hadoop.hbase.backup.BackupRestoreConstants.OPTION_CHECK;
-import static 
org.apache.hadoop.hbase.backup.BackupRestoreConstants.OPTION_CHECK_DESC;
-import static 
org.apache.hadoop.hbase.backup.BackupRestoreConstants.OPTION_DEBUG;
-import static 
org.apache.hadoop.hbase.backup.BackupRestoreConstants.OPTION_DEBUG_DESC;
-import static 
org.apache.hadoop.hbase.backup.BackupRestoreConstants.OPTION_OVERWRITE;
-import static 
org.apache.hadoop.hbase.backup.BackupRestoreConstants.OPTION_OVERWRITE_DESC;
-import static org.apache.hadoop.hbase.backup.BackupRestoreConstants.OPTION_SET;
-import static 
org.apache.hadoop.hbase.backup.BackupRestoreConstants.OPTION_SET_RESTORE_DESC;
-import static 
org.apache.hadoop.hbase.backup.BackupRestoreConstants.OPTION_TABLE;
-import static 
org.apache.hadoop.hbase.backup.BackupRestoreConstants.OPTION_TABLE_LIST_DESC;
-import static 
org.apache.hadoop.hbase.backup.BackupRestoreConstants.OPTION_TABLE_MAPPING;
-import static 
org.apache.hadoop.hbase.backup.BackupRestoreConstants.OPTION_TABLE_MAPPING_DESC;
-import static 
org.apache.hadoop.hbase.backup.BackupRestoreConstants.OPTION_YARN_QUEUE_NAME;
-import static 
org.apache.hadoop.hbase.backup.BackupRestoreConstants.OPTION_YARN_QUEUE_NAME_RESTORE_DESC;
-
-import java.io.IOException;
 import java.net.URI;
-import java.util.List;
-import java.util.Objects;
-import org.apache.commons.lang3.StringUtils;
 import org.apache.hadoop.conf.Configuration;
 import org.apache.hadoop.fs.Path;
 import org.apache.hadoop.hbase.HBaseConfiguration;
 import org.apache.hadoop.hbase.TableName;
 import org.apache.hadoop.hbase.backup.impl.BackupAdminImpl;
-import org.apache.hadoop.hbase.backup.impl.BackupManager;
-import org.apache.hadoop.hbase.backup.impl.BackupSystemTable;
 import org.apache.hadoop.hbase.backup.util.BackupUtils;
 import org.apache.hadoop.hbase.client.Connection;
 import org.apache.hadoop.hbase.client.ConnectionFactory;
-import org.apache.hadoop.hbase.logging.Log4jUtils;
-import org.apache.hadoop.hbase.util.AbstractHBaseTool;
 import org.apache.hadoop.hbase.util.CommonFSUtils;
 import org.apache.hadoop.util.ToolRunner;
 import org.apache.yetus.audience.InterfaceAudience;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-import org.apache.hbase.thirdparty.org.apache.commons.cli.CommandLine;
-import org.apache.hbase.thirdparty.org.apache.commons.cli.HelpFormatter;
 
 /**
  * Command-line entry point for restore operation
  */
 @InterfaceAudience.Private
-public class RestoreDriver extends AbstractHBaseTool {
-  private static final Logger LOG = 
LoggerFactory.getLogger(RestoreDriver.class);
-  private CommandLine cmd;
-
-  private static final String USAGE_STRING =
-"Usage: hbase restore   [options]\n"
-  + "  backup_path Path to a backup destination root\n"
-  + "  backup_id   Backup image ID to restore\n"
-  + "  table(s)Comma-separated list of tables to restore\n";
-
-  private static final String USAGE_FOOTER = "";
-
-  protected RestoreDriver() throws IOException {
-init();
-  }
-
-  protected void init() {
-// disable irrelevant loggers to avoid it mess up command output
-Log4jUtils.disableZkAndClientLoggers();
-  }
-
-  private int parseAndRun() throws IOException {
-// Check if backup is enabled
-if (!BackupManager.isBackupEnabled(getConf())) {
-  System.err.println(BackupRestoreConstants.ENABLE_BACKUP);
-  return -1;
-}
-
-// enable debug logging
-if (cmd.hasOption(OPTION_DEBUG)) {
-  Log4jUtils.setLogLevel("org.apache.hadoop.hbase.backup", "DEBUG");
-}
-
-// whether to overwrite to existing table if any, false by default
-boolean overwrite = cmd.hasOption(OPTION_OVERWRITE);
-if (overwrite) {
-  LOG.debug("Found -overwrite option in restore command, "
-+ "will overwrite to existing table if any in the restore target");
-}
-
-// whether to only check the dependencies, false by default
-boolean check = cmd.hasOption(OPTION_CHECK);
-if (check) {
-  LOG.debug(
-"Found -check option in restore command, " + "will check and verify 
the dependencies");
-}
-
-if (cmd.hasOption(OPTION_SET) && cmd.hasOption(OPTION_TABLE)) {
-  System.err.println(
-"Options -s and -t are mutaully exclusive," + " you can not specify 
both of them.");
-  printToolUsage();
-  return -1;
-}
-
-if (!cmd.hasOption(OPTION_SET) && !cmd.hasOption(OPTION_TABLE)) {
-  System.err.println("You have to specify either set name or table list to 
restore");
-  printToolUsage();
-  return -1;
-}
-
-if (cmd.hasOption(OPTION_YARN_QUEUE_NAME)) {
-  String queueName = cmd.ge

Re: [PR] HBASE-29133: Implement "pitr" Command for Point-in-Time Restore [hbase]

2025-05-30 Thread via GitHub


Apache-HBase commented on PR #6717:
URL: https://github.com/apache/hbase/pull/6717#issuecomment-2922342728

   :confetti_ball: **+1 overall**
   
   
   
   
   
   
   | Vote | Subsystem | Runtime |  Logfile | Comment |
   |::|--:|:|::|:---:|
   | +0 :ok: |  reexec  |   0m 58s |  |  Docker mode activated.  |
    _ Prechecks _ |
   | +1 :green_heart: |  dupname  |   0m  0s |  |  No case conflicting files 
found.  |
   | +0 :ok: |  codespell  |   0m  0s |  |  codespell was not available.  |
   | +0 :ok: |  detsecrets  |   0m  0s |  |  detect-secrets was not available.  
|
   | +0 :ok: |  shelldocs  |   0m  0s |  |  Shelldocs was not available.  |
   | +1 :green_heart: |  @author  |   0m  0s |  |  The patch does not contain 
any @author tags.  |
   | +1 :green_heart: |  hbaseanti  |   0m  0s |  |  Patch does not have any 
anti-patterns.  |
    _ HBASE-28957 Compile Tests _ |
   | +0 :ok: |  mvndep  |   0m 38s |  |  Maven dependency ordering for branch  |
   | +1 :green_heart: |  mvninstall  |   4m 36s |  |  HBASE-28957 passed  |
   | +1 :green_heart: |  compile  |   9m 30s |  |  HBASE-28957 passed  |
   | +1 :green_heart: |  checkstyle  |   1m 19s |  |  HBASE-28957 passed  |
   | +1 :green_heart: |  spotbugs  |   9m 18s |  |  HBASE-28957 passed  |
   | +1 :green_heart: |  spotless  |   0m 51s |  |  branch has no errors when 
running spotless:check.  |
    _ Patch Compile Tests _ |
   | +0 :ok: |  mvndep  |   0m 11s |  |  Maven dependency ordering for patch  |
   | +1 :green_heart: |  mvninstall  |   3m 44s |  |  the patch passed  |
   | +1 :green_heart: |  compile  |   9m 59s |  |  the patch passed  |
   | -0 :warning: |  javac  |   9m 59s | 
[/results-compile-javac-root.txt](https://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-6717/11/artifact/yetus-general-check/output/results-compile-javac-root.txt)
 |  root generated 1 new + 1273 unchanged - 0 fixed = 1274 total (was 1273)  |
   | +1 :green_heart: |  blanks  |   0m  0s |  |  The patch has no blanks 
issues.  |
   | -0 :warning: |  checkstyle  |   1m 26s | 
[/buildtool-patch-checkstyle-root.txt](https://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-6717/11/artifact/yetus-general-check/output/buildtool-patch-checkstyle-root.txt)
 |  The patch fails to run checkstyle in root  |
   | +1 :green_heart: |  shellcheck  |   0m  2s |  |  No new issues.  |
   | +1 :green_heart: |  spotbugs  |  10m 28s |  |  the patch passed  |
   | +1 :green_heart: |  hadoopcheck  |  13m  7s |  |  Patch does not cause any 
errors with Hadoop 3.3.6 3.4.0.  |
   | +1 :green_heart: |  spotless  |   0m 53s |  |  patch has no errors when 
running spotless:check.  |
    _ Other Tests _ |
   | +1 :green_heart: |  asflicense  |   0m 22s |  |  The patch does not 
generate ASF License warnings.  |
   |  |   |  76m 24s |  |  |
   
   
   | Subsystem | Report/Notes |
   |--:|:-|
   | Docker | ClientAPI=1.43 ServerAPI=1.43 base: 
https://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-6717/11/artifact/yetus-general-check/output/Dockerfile
 |
   | GITHUB PR | https://github.com/apache/hbase/pull/6717 |
   | JIRA Issue | HBASE-29133 |
   | Optional Tests | dupname asflicense codespell detsecrets shellcheck 
shelldocs spotless javac spotbugs checkstyle compile hadoopcheck hbaseanti |
   | uname | Linux c8bcb4e6215d 5.4.0-1103-aws #111~18.04.1-Ubuntu SMP Tue May 
23 20:04:10 UTC 2023 x86_64 x86_64 x86_64 GNU/Linux |
   | Build tool | maven |
   | Personality | dev-support/hbase-personality.sh |
   | git revision | HBASE-28957 / 04afea2a728acfad28eeb7f8e7d45c1b1a1b2f17 |
   | Default Java | Eclipse Adoptium-17.0.11+9 |
   | Max. process+thread count | 189 (vs. ulimit of 3) |
   | modules | C: hbase-backup . U: . |
   | Console output | 
https://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-6717/11/console
 |
   | versions | git=2.34.1 maven=3.9.8 spotbugs=4.7.3 shellcheck=0.8.0 |
   | Powered by | Apache Yetus 0.15.0 https://yetus.apache.org |
   
   
   This message was automatically generated.
   
   


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]



Re: [PR] HBASE-29133: Implement "pitr" Command for Point-in-Time Restore [hbase]

2025-05-30 Thread via GitHub


vinayakphegde commented on code in PR #6717:
URL: https://github.com/apache/hbase/pull/6717#discussion_r2115684437


##
hbase-backup/src/main/java/org/apache/hadoop/hbase/backup/PointInTimeRestoreDriver.java:
##
@@ -0,0 +1,136 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.hadoop.hbase.backup;
+
+import static 
org.apache.hadoop.hbase.backup.BackupRestoreConstants.CONF_CONTINUOUS_BACKUP_WAL_DIR;
+import static 
org.apache.hadoop.hbase.backup.BackupRestoreConstants.LONG_OPTION_PITR_BACKUP_PATH;
+import static 
org.apache.hadoop.hbase.backup.BackupRestoreConstants.LONG_OPTION_TO_DATETIME;
+import static 
org.apache.hadoop.hbase.backup.BackupRestoreConstants.OPTION_PITR_BACKUP_PATH;
+import static 
org.apache.hadoop.hbase.backup.BackupRestoreConstants.OPTION_PITR_BACKUP_PATH_DESC;
+import static 
org.apache.hadoop.hbase.backup.BackupRestoreConstants.OPTION_TO_DATETIME;
+import static 
org.apache.hadoop.hbase.backup.BackupRestoreConstants.OPTION_TO_DATETIME_DESC;
+
+import java.net.URI;
+import org.apache.hadoop.conf.Configuration;
+import org.apache.hadoop.fs.Path;
+import org.apache.hadoop.hbase.HBaseConfiguration;
+import org.apache.hadoop.hbase.TableName;
+import org.apache.hadoop.hbase.backup.impl.BackupAdminImpl;
+import org.apache.hadoop.hbase.backup.util.BackupUtils;
+import org.apache.hadoop.hbase.client.Connection;
+import org.apache.hadoop.hbase.client.ConnectionFactory;
+import org.apache.hadoop.hbase.util.CommonFSUtils;
+import org.apache.hadoop.util.ToolRunner;
+import org.apache.yetus.audience.InterfaceAudience;
+
+/**
+ * Command-line entry point for restore operation
+ */
[email protected]
+public class PointInTimeRestoreDriver extends AbstractRestoreDriver {
+  private static final String USAGE_STRING = """
+  Usage: hbase pitr [options]
+   Backup Path to use for Point in Time Restore
+table(s)Comma-separated list of tables to restore
+  """;
+
+  @Override
+  protected int executeRestore(boolean check, TableName[] fromTables, 
TableName[] toTables,
+boolean isOverwrite) {
+String walBackupDir = getConf().get(CONF_CONTINUOUS_BACKUP_WAL_DIR);
+if (walBackupDir == null || walBackupDir.isEmpty()) {
+  System.err.printf(
+"Point-in-Time Restore requires the WAL backup directory (%s) to 
replay logs after full and incremental backups. "
+  + "Set this property if you need Point-in-Time Restore. Otherwise, 
use the normal restore process with the appropriate backup ID.%n",
+CONF_CONTINUOUS_BACKUP_WAL_DIR);
+  return -1;
+}
+
+String[] remainArgs = cmd.getArgs();
+if (remainArgs.length != 0) {
+  printToolUsage();
+  return -1;
+}
+
+String backupRootDir =
+  cmd.hasOption(OPTION_PITR_BACKUP_PATH) ? 
cmd.getOptionValue(OPTION_PITR_BACKUP_PATH) : null;

Review Comment:
   True. but can we keep for readability purpose?



-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]



Re: [PR] HBASE-29133: Implement "pitr" Command for Point-in-Time Restore [hbase]

2025-05-30 Thread via GitHub


Apache-HBase commented on PR #6717:
URL: https://github.com/apache/hbase/pull/6717#issuecomment-2922245786

   :broken_heart: **-1 overall**
   
   
   
   
   
   
   | Vote | Subsystem | Runtime |  Logfile | Comment |
   |::|--:|:|::|:---:|
   | +0 :ok: |  reexec  |   0m 33s |  |  Docker mode activated.  |
   | -0 :warning: |  yetus  |   0m  3s |  |  Unprocessed flag(s): 
--brief-report-file --spotbugs-strict-precheck --author-ignore-list 
--blanks-eol-ignore-file --blanks-tabs-ignore-file --quick-hadoopcheck  |
    _ Prechecks _ |
    _ HBASE-28957 Compile Tests _ |
   | +0 :ok: |  mvndep  |   0m 17s |  |  Maven dependency ordering for branch  |
   | +1 :green_heart: |  mvninstall  |   3m 17s |  |  HBASE-28957 passed  |
   | +1 :green_heart: |  compile  |   2m 12s |  |  HBASE-28957 passed  |
   | +1 :green_heart: |  javadoc  |   2m 10s |  |  HBASE-28957 passed  |
   | +1 :green_heart: |  shadedjars  |   5m 59s |  |  branch has no errors when 
building our shaded downstream artifacts.  |
    _ Patch Compile Tests _ |
   | +0 :ok: |  mvndep  |   0m 12s |  |  Maven dependency ordering for patch  |
   | +1 :green_heart: |  mvninstall  |   3m  2s |  |  the patch passed  |
   | +1 :green_heart: |  compile  |   2m 12s |  |  the patch passed  |
   | +1 :green_heart: |  javac  |   2m 12s |  |  the patch passed  |
   | +1 :green_heart: |  javadoc  |   2m  9s |  |  the patch passed  |
   | +1 :green_heart: |  shadedjars  |   5m 58s |  |  patch has no errors when 
building our shaded downstream artifacts.  |
    _ Other Tests _ |
   | -1 :x: |  unit  |   3m  9s | 
[/patch-unit-root.txt](https://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-6717/11/artifact/yetus-jdk17-hadoop3-check/output/patch-unit-root.txt)
 |  root in the patch failed.  |
   |  |   |  32m 24s |  |  |
   
   
   | Subsystem | Report/Notes |
   |--:|:-|
   | Docker | ClientAPI=1.43 ServerAPI=1.43 base: 
https://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-6717/11/artifact/yetus-jdk17-hadoop3-check/output/Dockerfile
 |
   | GITHUB PR | https://github.com/apache/hbase/pull/6717 |
   | JIRA Issue | HBASE-29133 |
   | Optional Tests | javac javadoc unit compile shadedjars |
   | uname | Linux cfa9f4152a3f 5.4.0-1103-aws #111~18.04.1-Ubuntu SMP Tue May 
23 20:04:10 UTC 2023 x86_64 x86_64 x86_64 GNU/Linux |
   | Build tool | maven |
   | Personality | dev-support/hbase-personality.sh |
   | git revision | HBASE-28957 / 04afea2a728acfad28eeb7f8e7d45c1b1a1b2f17 |
   | Default Java | Eclipse Adoptium-17.0.11+9 |
   |  Test Results | 
https://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-6717/11/testReport/
 |
   | Max. process+thread count | 315 (vs. ulimit of 3) |
   | modules | C: hbase-backup . U: . |
   | Console output | 
https://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-6717/11/console
 |
   | versions | git=2.34.1 maven=3.9.8 |
   | Powered by | Apache Yetus 0.15.0 https://yetus.apache.org |
   
   
   This message was automatically generated.
   
   


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]



Re: [PR] HBASE-29133: Implement "pitr" Command for Point-in-Time Restore [hbase]

2025-05-30 Thread via GitHub


vinayakphegde commented on code in PR #6717:
URL: https://github.com/apache/hbase/pull/6717#discussion_r2115689818


##
hbase-backup/src/main/java/org/apache/hadoop/hbase/backup/PointInTimeRestoreDriver.java:
##
@@ -0,0 +1,136 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.hadoop.hbase.backup;
+
+import static 
org.apache.hadoop.hbase.backup.BackupRestoreConstants.CONF_CONTINUOUS_BACKUP_WAL_DIR;
+import static 
org.apache.hadoop.hbase.backup.BackupRestoreConstants.LONG_OPTION_PITR_BACKUP_PATH;
+import static 
org.apache.hadoop.hbase.backup.BackupRestoreConstants.LONG_OPTION_TO_DATETIME;
+import static 
org.apache.hadoop.hbase.backup.BackupRestoreConstants.OPTION_PITR_BACKUP_PATH;
+import static 
org.apache.hadoop.hbase.backup.BackupRestoreConstants.OPTION_PITR_BACKUP_PATH_DESC;
+import static 
org.apache.hadoop.hbase.backup.BackupRestoreConstants.OPTION_TO_DATETIME;
+import static 
org.apache.hadoop.hbase.backup.BackupRestoreConstants.OPTION_TO_DATETIME_DESC;
+
+import java.net.URI;
+import org.apache.hadoop.conf.Configuration;
+import org.apache.hadoop.fs.Path;
+import org.apache.hadoop.hbase.HBaseConfiguration;
+import org.apache.hadoop.hbase.TableName;
+import org.apache.hadoop.hbase.backup.impl.BackupAdminImpl;
+import org.apache.hadoop.hbase.backup.util.BackupUtils;
+import org.apache.hadoop.hbase.client.Connection;
+import org.apache.hadoop.hbase.client.ConnectionFactory;
+import org.apache.hadoop.hbase.util.CommonFSUtils;
+import org.apache.hadoop.util.ToolRunner;
+import org.apache.yetus.audience.InterfaceAudience;
+
+/**
+ * Command-line entry point for restore operation
+ */
[email protected]
+public class PointInTimeRestoreDriver extends AbstractRestoreDriver {
+  private static final String USAGE_STRING = """
+  Usage: hbase pitr [options]
+   Backup Path to use for Point in Time Restore
+table(s)Comma-separated list of tables to restore
+  """;
+
+  @Override
+  protected int executeRestore(boolean check, TableName[] fromTables, 
TableName[] toTables,
+boolean isOverwrite) {
+String walBackupDir = getConf().get(CONF_CONTINUOUS_BACKUP_WAL_DIR);
+if (walBackupDir == null || walBackupDir.isEmpty()) {
+  System.err.printf(
+"Point-in-Time Restore requires the WAL backup directory (%s) to 
replay logs after full and incremental backups. "
+  + "Set this property if you need Point-in-Time Restore. Otherwise, 
use the normal restore process with the appropriate backup ID.%n",
+CONF_CONTINUOUS_BACKUP_WAL_DIR);
+  return -1;
+}
+
+String[] remainArgs = cmd.getArgs();
+if (remainArgs.length != 0) {
+  printToolUsage();
+  return -1;
+}
+
+String backupRootDir =
+  cmd.hasOption(OPTION_PITR_BACKUP_PATH) ? 
cmd.getOptionValue(OPTION_PITR_BACKUP_PATH) : null;

Review Comment:
   But I will modify it. user will know that backupRootDir could be null since 
we are using cmd.getOptionValue(), which could return null;



-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]



Re: [PR] HBASE-29133: Implement "pitr" Command for Point-in-Time Restore [hbase]

2025-05-30 Thread via GitHub


vinayakphegde commented on code in PR #6717:
URL: https://github.com/apache/hbase/pull/6717#discussion_r2115697664


##
hbase-backup/src/main/java/org/apache/hadoop/hbase/backup/AbstractRestoreDriver.java:
##
@@ -0,0 +1,227 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.hadoop.hbase.backup;
+
+import static 
org.apache.hadoop.hbase.backup.BackupRestoreConstants.OPTION_CHECK;
+import static 
org.apache.hadoop.hbase.backup.BackupRestoreConstants.OPTION_CHECK_DESC;
+import static 
org.apache.hadoop.hbase.backup.BackupRestoreConstants.OPTION_DEBUG;
+import static 
org.apache.hadoop.hbase.backup.BackupRestoreConstants.OPTION_DEBUG_DESC;
+import static 
org.apache.hadoop.hbase.backup.BackupRestoreConstants.OPTION_OVERWRITE;
+import static 
org.apache.hadoop.hbase.backup.BackupRestoreConstants.OPTION_OVERWRITE_DESC;
+import static org.apache.hadoop.hbase.backup.BackupRestoreConstants.OPTION_SET;
+import static 
org.apache.hadoop.hbase.backup.BackupRestoreConstants.OPTION_SET_RESTORE_DESC;
+import static 
org.apache.hadoop.hbase.backup.BackupRestoreConstants.OPTION_TABLE;
+import static 
org.apache.hadoop.hbase.backup.BackupRestoreConstants.OPTION_TABLE_LIST_DESC;
+import static 
org.apache.hadoop.hbase.backup.BackupRestoreConstants.OPTION_TABLE_MAPPING;
+import static 
org.apache.hadoop.hbase.backup.BackupRestoreConstants.OPTION_TABLE_MAPPING_DESC;
+import static 
org.apache.hadoop.hbase.backup.BackupRestoreConstants.OPTION_YARN_QUEUE_NAME;
+import static 
org.apache.hadoop.hbase.backup.BackupRestoreConstants.OPTION_YARN_QUEUE_NAME_RESTORE_DESC;
+
+import java.io.IOException;
+import java.util.List;
+import java.util.Objects;
+import org.apache.commons.lang3.StringUtils;
+import org.apache.hadoop.hbase.TableName;
+import org.apache.hadoop.hbase.backup.impl.BackupManager;
+import org.apache.hadoop.hbase.backup.impl.BackupSystemTable;
+import org.apache.hadoop.hbase.backup.util.BackupUtils;
+import org.apache.hadoop.hbase.client.Connection;
+import org.apache.hadoop.hbase.client.ConnectionFactory;
+import org.apache.hadoop.hbase.logging.Log4jUtils;
+import org.apache.hadoop.hbase.util.AbstractHBaseTool;
+import org.apache.yetus.audience.InterfaceAudience;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+import org.apache.hbase.thirdparty.org.apache.commons.cli.CommandLine;
+import org.apache.hbase.thirdparty.org.apache.commons.cli.HelpFormatter;
+
[email protected]
+public abstract class AbstractRestoreDriver extends AbstractHBaseTool {
+  protected static final Logger LOG = 
LoggerFactory.getLogger(AbstractRestoreDriver.class);
+  protected CommandLine cmd;
+
+  protected static final String USAGE_FOOTER = "";
+
+  protected AbstractRestoreDriver() {
+init();
+  }
+
+  protected void init() {
+Log4jUtils.disableZkAndClientLoggers();
+  }
+
+  protected abstract int executeRestore(boolean check, TableName[] fromTables, 
TableName[] toTables,
+boolean isOverwrite);
+
+  private int parseAndRun() throws IOException {
+if (!BackupManager.isBackupEnabled(getConf())) {
+  System.err.println(BackupRestoreConstants.ENABLE_BACKUP);
+  return -1;
+}
+
+if (cmd.hasOption(OPTION_DEBUG)) {
+  Log4jUtils.setLogLevel("org.apache.hadoop.hbase.backup", "DEBUG");
+}
+
+boolean overwrite = cmd.hasOption(OPTION_OVERWRITE);
+if (overwrite) {

Review Comment:
   But I am using the value of `overwrite` in another place (line 152).



-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]



Re: [PR] HBASE-29133: Implement "pitr" Command for Point-in-Time Restore [hbase]

2025-05-29 Thread via GitHub


kgeisz commented on code in PR #6717:
URL: https://github.com/apache/hbase/pull/6717#discussion_r2114795970


##
hbase-backup/src/main/java/org/apache/hadoop/hbase/backup/AbstractRestoreDriver.java:
##
@@ -0,0 +1,227 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.hadoop.hbase.backup;
+
+import static 
org.apache.hadoop.hbase.backup.BackupRestoreConstants.OPTION_CHECK;
+import static 
org.apache.hadoop.hbase.backup.BackupRestoreConstants.OPTION_CHECK_DESC;
+import static 
org.apache.hadoop.hbase.backup.BackupRestoreConstants.OPTION_DEBUG;
+import static 
org.apache.hadoop.hbase.backup.BackupRestoreConstants.OPTION_DEBUG_DESC;
+import static 
org.apache.hadoop.hbase.backup.BackupRestoreConstants.OPTION_OVERWRITE;
+import static 
org.apache.hadoop.hbase.backup.BackupRestoreConstants.OPTION_OVERWRITE_DESC;
+import static org.apache.hadoop.hbase.backup.BackupRestoreConstants.OPTION_SET;
+import static 
org.apache.hadoop.hbase.backup.BackupRestoreConstants.OPTION_SET_RESTORE_DESC;
+import static 
org.apache.hadoop.hbase.backup.BackupRestoreConstants.OPTION_TABLE;
+import static 
org.apache.hadoop.hbase.backup.BackupRestoreConstants.OPTION_TABLE_LIST_DESC;
+import static 
org.apache.hadoop.hbase.backup.BackupRestoreConstants.OPTION_TABLE_MAPPING;
+import static 
org.apache.hadoop.hbase.backup.BackupRestoreConstants.OPTION_TABLE_MAPPING_DESC;
+import static 
org.apache.hadoop.hbase.backup.BackupRestoreConstants.OPTION_YARN_QUEUE_NAME;
+import static 
org.apache.hadoop.hbase.backup.BackupRestoreConstants.OPTION_YARN_QUEUE_NAME_RESTORE_DESC;
+
+import java.io.IOException;
+import java.util.List;
+import java.util.Objects;
+import org.apache.commons.lang3.StringUtils;
+import org.apache.hadoop.hbase.TableName;
+import org.apache.hadoop.hbase.backup.impl.BackupManager;
+import org.apache.hadoop.hbase.backup.impl.BackupSystemTable;
+import org.apache.hadoop.hbase.backup.util.BackupUtils;
+import org.apache.hadoop.hbase.client.Connection;
+import org.apache.hadoop.hbase.client.ConnectionFactory;
+import org.apache.hadoop.hbase.logging.Log4jUtils;
+import org.apache.hadoop.hbase.util.AbstractHBaseTool;
+import org.apache.yetus.audience.InterfaceAudience;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+import org.apache.hbase.thirdparty.org.apache.commons.cli.CommandLine;
+import org.apache.hbase.thirdparty.org.apache.commons.cli.HelpFormatter;
+
[email protected]
+public abstract class AbstractRestoreDriver extends AbstractHBaseTool {
+  protected static final Logger LOG = 
LoggerFactory.getLogger(AbstractRestoreDriver.class);
+  protected CommandLine cmd;
+
+  protected static final String USAGE_FOOTER = "";
+
+  protected AbstractRestoreDriver() {
+init();
+  }
+
+  protected void init() {
+Log4jUtils.disableZkAndClientLoggers();
+  }
+
+  protected abstract int executeRestore(boolean check, TableName[] fromTables, 
TableName[] toTables,
+boolean isOverwrite);
+
+  private int parseAndRun() throws IOException {
+if (!BackupManager.isBackupEnabled(getConf())) {
+  System.err.println(BackupRestoreConstants.ENABLE_BACKUP);
+  return -1;
+}
+
+if (cmd.hasOption(OPTION_DEBUG)) {
+  Log4jUtils.setLogLevel("org.apache.hadoop.hbase.backup", "DEBUG");
+}
+
+boolean overwrite = cmd.hasOption(OPTION_OVERWRITE);
+if (overwrite) {
+  LOG.debug("Found -overwrite option in restore command, "
++ "will overwrite to existing table if any in the restore target");
+}
+
+boolean check = cmd.hasOption(OPTION_CHECK);
+if (check) {
+  LOG.debug(
+"Found -check option in restore command, " + "will check and verify 
the dependencies");
+}
+
+if (cmd.hasOption(OPTION_SET) && cmd.hasOption(OPTION_TABLE)) {
+  System.err.println(
+"Options -s and -t are mutually exclusive," + " you can not specify 
both of them.");
+  printToolUsage();
+  return -1;
+}
+
+if (!cmd.hasOption(OPTION_SET) && !cmd.hasOption(OPTION_TABLE)) {
+  System.err.println("You have to specify either set name or table list to 
restore");

Review Comment:
   Similar to the previous comment
   
   ```suggestion
 System.err.pri

Re: [PR] HBASE-29133: Implement "pitr" Command for Point-in-Time Restore [hbase]

2025-05-29 Thread via GitHub


kgeisz commented on code in PR #6717:
URL: https://github.com/apache/hbase/pull/6717#discussion_r2114744849


##
hbase-backup/src/main/java/org/apache/hadoop/hbase/backup/AbstractRestoreDriver.java:
##
@@ -0,0 +1,227 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.hadoop.hbase.backup;
+
+import static 
org.apache.hadoop.hbase.backup.BackupRestoreConstants.OPTION_CHECK;
+import static 
org.apache.hadoop.hbase.backup.BackupRestoreConstants.OPTION_CHECK_DESC;
+import static 
org.apache.hadoop.hbase.backup.BackupRestoreConstants.OPTION_DEBUG;
+import static 
org.apache.hadoop.hbase.backup.BackupRestoreConstants.OPTION_DEBUG_DESC;
+import static 
org.apache.hadoop.hbase.backup.BackupRestoreConstants.OPTION_OVERWRITE;
+import static 
org.apache.hadoop.hbase.backup.BackupRestoreConstants.OPTION_OVERWRITE_DESC;
+import static org.apache.hadoop.hbase.backup.BackupRestoreConstants.OPTION_SET;
+import static 
org.apache.hadoop.hbase.backup.BackupRestoreConstants.OPTION_SET_RESTORE_DESC;
+import static 
org.apache.hadoop.hbase.backup.BackupRestoreConstants.OPTION_TABLE;
+import static 
org.apache.hadoop.hbase.backup.BackupRestoreConstants.OPTION_TABLE_LIST_DESC;
+import static 
org.apache.hadoop.hbase.backup.BackupRestoreConstants.OPTION_TABLE_MAPPING;
+import static 
org.apache.hadoop.hbase.backup.BackupRestoreConstants.OPTION_TABLE_MAPPING_DESC;
+import static 
org.apache.hadoop.hbase.backup.BackupRestoreConstants.OPTION_YARN_QUEUE_NAME;
+import static 
org.apache.hadoop.hbase.backup.BackupRestoreConstants.OPTION_YARN_QUEUE_NAME_RESTORE_DESC;
+
+import java.io.IOException;
+import java.util.List;
+import java.util.Objects;
+import org.apache.commons.lang3.StringUtils;
+import org.apache.hadoop.hbase.TableName;
+import org.apache.hadoop.hbase.backup.impl.BackupManager;
+import org.apache.hadoop.hbase.backup.impl.BackupSystemTable;
+import org.apache.hadoop.hbase.backup.util.BackupUtils;
+import org.apache.hadoop.hbase.client.Connection;
+import org.apache.hadoop.hbase.client.ConnectionFactory;
+import org.apache.hadoop.hbase.logging.Log4jUtils;
+import org.apache.hadoop.hbase.util.AbstractHBaseTool;
+import org.apache.yetus.audience.InterfaceAudience;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+import org.apache.hbase.thirdparty.org.apache.commons.cli.CommandLine;
+import org.apache.hbase.thirdparty.org.apache.commons.cli.HelpFormatter;
+
[email protected]
+public abstract class AbstractRestoreDriver extends AbstractHBaseTool {
+  protected static final Logger LOG = 
LoggerFactory.getLogger(AbstractRestoreDriver.class);
+  protected CommandLine cmd;
+
+  protected static final String USAGE_FOOTER = "";
+
+  protected AbstractRestoreDriver() {
+init();
+  }
+
+  protected void init() {
+Log4jUtils.disableZkAndClientLoggers();
+  }
+
+  protected abstract int executeRestore(boolean check, TableName[] fromTables, 
TableName[] toTables,
+boolean isOverwrite);
+
+  private int parseAndRun() throws IOException {
+if (!BackupManager.isBackupEnabled(getConf())) {
+  System.err.println(BackupRestoreConstants.ENABLE_BACKUP);
+  return -1;
+}
+
+if (cmd.hasOption(OPTION_DEBUG)) {
+  Log4jUtils.setLogLevel("org.apache.hadoop.hbase.backup", "DEBUG");
+}
+
+boolean overwrite = cmd.hasOption(OPTION_OVERWRITE);
+if (overwrite) {
+  LOG.debug("Found -overwrite option in restore command, "
++ "will overwrite to existing table if any in the restore target");

Review Comment:
   nit - I see you have `-o`, but from what I can tell `-overwrite` is not an 
available alternative option.  It may be more clear to have the actual option 
in parenthesis.
   
   ```suggestion
 LOG.debug("Found overwrite option (-{}) in restore command, "
   + "will overwrite to existing table if any in the restore target", 
OPTION_OVERWRITE);
   ```



-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected].

Re: [PR] HBASE-29133: Implement "pitr" Command for Point-in-Time Restore [hbase]

2025-05-29 Thread via GitHub


kgeisz commented on code in PR #6717:
URL: https://github.com/apache/hbase/pull/6717#discussion_r2114793555


##
hbase-backup/src/main/java/org/apache/hadoop/hbase/backup/AbstractRestoreDriver.java:
##
@@ -0,0 +1,227 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.hadoop.hbase.backup;
+
+import static 
org.apache.hadoop.hbase.backup.BackupRestoreConstants.OPTION_CHECK;
+import static 
org.apache.hadoop.hbase.backup.BackupRestoreConstants.OPTION_CHECK_DESC;
+import static 
org.apache.hadoop.hbase.backup.BackupRestoreConstants.OPTION_DEBUG;
+import static 
org.apache.hadoop.hbase.backup.BackupRestoreConstants.OPTION_DEBUG_DESC;
+import static 
org.apache.hadoop.hbase.backup.BackupRestoreConstants.OPTION_OVERWRITE;
+import static 
org.apache.hadoop.hbase.backup.BackupRestoreConstants.OPTION_OVERWRITE_DESC;
+import static org.apache.hadoop.hbase.backup.BackupRestoreConstants.OPTION_SET;
+import static 
org.apache.hadoop.hbase.backup.BackupRestoreConstants.OPTION_SET_RESTORE_DESC;
+import static 
org.apache.hadoop.hbase.backup.BackupRestoreConstants.OPTION_TABLE;
+import static 
org.apache.hadoop.hbase.backup.BackupRestoreConstants.OPTION_TABLE_LIST_DESC;
+import static 
org.apache.hadoop.hbase.backup.BackupRestoreConstants.OPTION_TABLE_MAPPING;
+import static 
org.apache.hadoop.hbase.backup.BackupRestoreConstants.OPTION_TABLE_MAPPING_DESC;
+import static 
org.apache.hadoop.hbase.backup.BackupRestoreConstants.OPTION_YARN_QUEUE_NAME;
+import static 
org.apache.hadoop.hbase.backup.BackupRestoreConstants.OPTION_YARN_QUEUE_NAME_RESTORE_DESC;
+
+import java.io.IOException;
+import java.util.List;
+import java.util.Objects;
+import org.apache.commons.lang3.StringUtils;
+import org.apache.hadoop.hbase.TableName;
+import org.apache.hadoop.hbase.backup.impl.BackupManager;
+import org.apache.hadoop.hbase.backup.impl.BackupSystemTable;
+import org.apache.hadoop.hbase.backup.util.BackupUtils;
+import org.apache.hadoop.hbase.client.Connection;
+import org.apache.hadoop.hbase.client.ConnectionFactory;
+import org.apache.hadoop.hbase.logging.Log4jUtils;
+import org.apache.hadoop.hbase.util.AbstractHBaseTool;
+import org.apache.yetus.audience.InterfaceAudience;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+import org.apache.hbase.thirdparty.org.apache.commons.cli.CommandLine;
+import org.apache.hbase.thirdparty.org.apache.commons.cli.HelpFormatter;
+
[email protected]
+public abstract class AbstractRestoreDriver extends AbstractHBaseTool {
+  protected static final Logger LOG = 
LoggerFactory.getLogger(AbstractRestoreDriver.class);
+  protected CommandLine cmd;
+
+  protected static final String USAGE_FOOTER = "";
+
+  protected AbstractRestoreDriver() {
+init();
+  }
+
+  protected void init() {
+Log4jUtils.disableZkAndClientLoggers();
+  }
+
+  protected abstract int executeRestore(boolean check, TableName[] fromTables, 
TableName[] toTables,
+boolean isOverwrite);
+
+  private int parseAndRun() throws IOException {
+if (!BackupManager.isBackupEnabled(getConf())) {
+  System.err.println(BackupRestoreConstants.ENABLE_BACKUP);
+  return -1;
+}
+
+if (cmd.hasOption(OPTION_DEBUG)) {
+  Log4jUtils.setLogLevel("org.apache.hadoop.hbase.backup", "DEBUG");
+}
+
+boolean overwrite = cmd.hasOption(OPTION_OVERWRITE);
+if (overwrite) {
+  LOG.debug("Found -overwrite option in restore command, "
++ "will overwrite to existing table if any in the restore target");
+}
+
+boolean check = cmd.hasOption(OPTION_CHECK);
+if (check) {
+  LOG.debug(
+"Found -check option in restore command, " + "will check and verify 
the dependencies");
+}
+
+if (cmd.hasOption(OPTION_SET) && cmd.hasOption(OPTION_TABLE)) {
+  System.err.println(
+"Options -s and -t are mutually exclusive," + " you can not specify 
both of them.");

Review Comment:
   Maybe add a little info to quickly remind the user what `-s` and `-t` do?
   
   ```suggestion
 System.err.printf(
   "Set name (-%s) and table list (-%s) are mutually exclusive, you can 
not specify both " 
 + "of them.%n", OPTION_SET, OPTION_TABLE);
   ```
   

Re: [PR] HBASE-29133: Implement "pitr" Command for Point-in-Time Restore [hbase]

2025-05-29 Thread via GitHub


anmolnar commented on PR #6717:
URL: https://github.com/apache/hbase/pull/6717#issuecomment-2919423263

   > > > > Overall lgtm, but surprising how low the level of unit tests' 
granularity is: for instance `BackupAdminImpl` is such a big class and there's 
no corresponding test class. It has a lot of private methods which could be 
tested as "units" if they were package private and we had a `BackupAdminTest` 
class. Please consider that.
   > > > 
   > > > 
   > > > True, there isn’t a separate test class specifically for 
`BackupAdminImpl`. However, if you look at the overall structure, the core 
implementation resides in `BackupAdminImpl`, while the other classes primarily 
handle input preparation (including validation) and delegate the calls to 
`BackupAdminImpl`. We have a lot of tests for those classes, which indirectly 
cover almost all parts of `BackupAdminImpl`.
   > > > That said, I’ll still take a closer look at the class and add tests if 
I find any gaps.
   > > 
   > > 
   > > Could you please provide examples of that? Are they really just proxy 
calls?
   > 
   > Yes, for example, mergeBackups() is already covered by tests in 
TestBackupMerge, TestIncrementalBackupMergeWithBulkLoad, and 
IntegrationTestBackupRestore. The checkIfValidForMerge() method is private and 
is only called from mergeBackups(), which is the case for most of the methods 
in this class.
   > 
   > That said, we can definitely create a dedicated test class for this and 
add the remaining/uncovered test cases. I’ll open a separate Jira for that. 
Does that sound good?
   
   Yeah, these examples are all integration tests as the same suggests in some 
cases: they create "real"/mini HBase cluster, sets up a connection, get 
reference to Admin and call methods which are publicly accessible. Looks like 
this is historically the main approach for HBase testing, but this is not unit 
testing.
   
   What I'm talking about is instantiating BackupAdminImpl class directly with 
a mocked connection and test the methods individually. In order to do this you 
have to make methods accessible from unit tests, for instance, by changing 
visibility to package private. I don't insist doing this strictly, just leaving 
here as something to think about. Let me approve this patch regardless.


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]



Re: [PR] HBASE-29133: Implement "pitr" Command for Point-in-Time Restore [hbase]

2025-05-28 Thread via GitHub


Apache-HBase commented on PR #6717:
URL: https://github.com/apache/hbase/pull/6717#issuecomment-2917985019

   :broken_heart: **-1 overall**
   
   
   
   
   
   
   | Vote | Subsystem | Runtime |  Logfile | Comment |
   |::|--:|:|::|:---:|
   | +0 :ok: |  reexec  |   0m 33s |  |  Docker mode activated.  |
   | -0 :warning: |  yetus  |   0m  3s |  |  Unprocessed flag(s): 
--brief-report-file --spotbugs-strict-precheck --author-ignore-list 
--blanks-eol-ignore-file --blanks-tabs-ignore-file --quick-hadoopcheck  |
    _ Prechecks _ |
    _ HBASE-28957 Compile Tests _ |
   | +0 :ok: |  mvndep  |   0m 10s |  |  Maven dependency ordering for branch  |
   | +1 :green_heart: |  mvninstall  |   3m 11s |  |  HBASE-28957 passed  |
   | +1 :green_heart: |  compile  |   2m 13s |  |  HBASE-28957 passed  |
   | +1 :green_heart: |  javadoc  |   2m 11s |  |  HBASE-28957 passed  |
   | +1 :green_heart: |  shadedjars  |   5m 59s |  |  branch has no errors when 
building our shaded downstream artifacts.  |
    _ Patch Compile Tests _ |
   | +0 :ok: |  mvndep  |   0m 12s |  |  Maven dependency ordering for patch  |
   | +1 :green_heart: |  mvninstall  |   3m  2s |  |  the patch passed  |
   | +1 :green_heart: |  compile  |   2m  9s |  |  the patch passed  |
   | +1 :green_heart: |  javac  |   2m  9s |  |  the patch passed  |
   | +1 :green_heart: |  javadoc  |   2m 12s |  |  the patch passed  |
   | +1 :green_heart: |  shadedjars  |   5m 56s |  |  patch has no errors when 
building our shaded downstream artifacts.  |
    _ Other Tests _ |
   | -1 :x: |  unit  | 247m 12s | 
[/patch-unit-root.txt](https://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-6717/10/artifact/yetus-jdk17-hadoop3-check/output/patch-unit-root.txt)
 |  root in the patch failed.  |
   |  |   | 280m 34s |  |  |
   
   
   | Subsystem | Report/Notes |
   |--:|:-|
   | Docker | ClientAPI=1.43 ServerAPI=1.43 base: 
https://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-6717/10/artifact/yetus-jdk17-hadoop3-check/output/Dockerfile
 |
   | GITHUB PR | https://github.com/apache/hbase/pull/6717 |
   | JIRA Issue | HBASE-29133 |
   | Optional Tests | javac javadoc unit compile shadedjars |
   | uname | Linux 43e28404db18 5.4.0-1103-aws #111~18.04.1-Ubuntu SMP Tue May 
23 20:04:10 UTC 2023 x86_64 x86_64 x86_64 GNU/Linux |
   | Build tool | maven |
   | Personality | dev-support/hbase-personality.sh |
   | git revision | HBASE-28957 / 8063bbe39ea421ae2df1980f20d235270c76f366 |
   | Default Java | Eclipse Adoptium-17.0.11+9 |
   |  Test Results | 
https://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-6717/10/testReport/
 |
   | Max. process+thread count | 6046 (vs. ulimit of 3) |
   | modules | C: hbase-backup . U: . |
   | Console output | 
https://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-6717/10/console
 |
   | versions | git=2.34.1 maven=3.9.8 |
   | Powered by | Apache Yetus 0.15.0 https://yetus.apache.org |
   
   
   This message was automatically generated.
   
   


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]



Re: [PR] HBASE-29133: Implement "pitr" Command for Point-in-Time Restore [hbase]

2025-05-28 Thread via GitHub


Apache-HBase commented on PR #6717:
URL: https://github.com/apache/hbase/pull/6717#issuecomment-2917738689

   :confetti_ball: **+1 overall**
   
   
   
   
   
   
   | Vote | Subsystem | Runtime |  Logfile | Comment |
   |::|--:|:|::|:---:|
   | +0 :ok: |  reexec  |   0m 42s |  |  Docker mode activated.  |
    _ Prechecks _ |
   | +1 :green_heart: |  dupname  |   0m  0s |  |  No case conflicting files 
found.  |
   | +0 :ok: |  codespell  |   0m  0s |  |  codespell was not available.  |
   | +0 :ok: |  detsecrets  |   0m  0s |  |  detect-secrets was not available.  
|
   | +0 :ok: |  shelldocs  |   0m  0s |  |  Shelldocs was not available.  |
   | +1 :green_heart: |  @author  |   0m  0s |  |  The patch does not contain 
any @author tags.  |
   | +1 :green_heart: |  hbaseanti  |   0m  0s |  |  Patch does not have any 
anti-patterns.  |
    _ HBASE-28957 Compile Tests _ |
   | +0 :ok: |  mvndep  |   0m 12s |  |  Maven dependency ordering for branch  |
   | +1 :green_heart: |  mvninstall  |   4m  7s |  |  HBASE-28957 passed  |
   | +1 :green_heart: |  compile  |  10m 48s |  |  HBASE-28957 passed  |
   | +1 :green_heart: |  checkstyle  |   1m 29s |  |  HBASE-28957 passed  |
   | +1 :green_heart: |  spotbugs  |  10m 12s |  |  HBASE-28957 passed  |
   | +1 :green_heart: |  spotless  |   0m 59s |  |  branch has no errors when 
running spotless:check.  |
    _ Patch Compile Tests _ |
   | +0 :ok: |  mvndep  |   0m 11s |  |  Maven dependency ordering for patch  |
   | +1 :green_heart: |  mvninstall  |   3m 55s |  |  the patch passed  |
   | +1 :green_heart: |  compile  |  10m 36s |  |  the patch passed  |
   | -0 :warning: |  javac  |  10m 36s | 
[/results-compile-javac-root.txt](https://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-6717/10/artifact/yetus-general-check/output/results-compile-javac-root.txt)
 |  root generated 1 new + 1273 unchanged - 0 fixed = 1274 total (was 1273)  |
   | +1 :green_heart: |  blanks  |   0m  0s |  |  The patch has no blanks 
issues.  |
   | -0 :warning: |  checkstyle  |   1m 29s | 
[/buildtool-patch-checkstyle-root.txt](https://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-6717/10/artifact/yetus-general-check/output/buildtool-patch-checkstyle-root.txt)
 |  The patch fails to run checkstyle in root  |
   | +1 :green_heart: |  shellcheck  |   0m  2s |  |  No new issues.  |
   | +1 :green_heart: |  spotbugs  |  10m 53s |  |  the patch passed  |
   | +1 :green_heart: |  hadoopcheck  |  14m 49s |  |  Patch does not cause any 
errors with Hadoop 3.3.6 3.4.0.  |
   | +1 :green_heart: |  spotless  |   1m  0s |  |  patch has no errors when 
running spotless:check.  |
    _ Other Tests _ |
   | +1 :green_heart: |  asflicense  |   0m 28s |  |  The patch does not 
generate ASF License warnings.  |
   |  |   |  81m 23s |  |  |
   
   
   | Subsystem | Report/Notes |
   |--:|:-|
   | Docker | ClientAPI=1.43 ServerAPI=1.43 base: 
https://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-6717/10/artifact/yetus-general-check/output/Dockerfile
 |
   | GITHUB PR | https://github.com/apache/hbase/pull/6717 |
   | JIRA Issue | HBASE-29133 |
   | Optional Tests | dupname asflicense codespell detsecrets shellcheck 
shelldocs spotless javac spotbugs checkstyle compile hadoopcheck hbaseanti |
   | uname | Linux 099ca9c0447e 5.4.0-1103-aws #111~18.04.1-Ubuntu SMP Tue May 
23 20:04:10 UTC 2023 x86_64 x86_64 x86_64 GNU/Linux |
   | Build tool | maven |
   | Personality | dev-support/hbase-personality.sh |
   | git revision | HBASE-28957 / 8063bbe39ea421ae2df1980f20d235270c76f366 |
   | Default Java | Eclipse Adoptium-17.0.11+9 |
   | Max. process+thread count | 189 (vs. ulimit of 3) |
   | modules | C: hbase-backup . U: . |
   | Console output | 
https://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-6717/10/console
 |
   | versions | git=2.34.1 maven=3.9.8 spotbugs=4.7.3 shellcheck=0.8.0 |
   | Powered by | Apache Yetus 0.15.0 https://yetus.apache.org |
   
   
   This message was automatically generated.
   
   


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]



Re: [PR] HBASE-29133: Implement "pitr" Command for Point-in-Time Restore [hbase]

2025-05-28 Thread via GitHub


vinayakphegde commented on PR #6717:
URL: https://github.com/apache/hbase/pull/6717#issuecomment-2917299012

   > > > Overall lgtm, but surprising how low the level of unit tests' 
granularity is: for instance `BackupAdminImpl` is such a big class and there's 
no corresponding test class. It has a lot of private methods which could be 
tested as "units" if they were package private and we had a `BackupAdminTest` 
class. Please consider that.
   > > 
   > > 
   > > True, there isn’t a separate test class specifically for 
`BackupAdminImpl`. However, if you look at the overall structure, the core 
implementation resides in `BackupAdminImpl`, while the other classes primarily 
handle input preparation (including validation) and delegate the calls to 
`BackupAdminImpl`. We have a lot of tests for those classes, which indirectly 
cover almost all parts of `BackupAdminImpl`.
   > > That said, I’ll still take a closer look at the class and add tests if I 
find any gaps.
   > 
   > Could you please provide examples of that? Are they really just proxy 
calls?
   
   Yes, for example, mergeBackups() is already covered by tests in 
TestBackupMerge, TestIncrementalBackupMergeWithBulkLoad, and 
IntegrationTestBackupRestore. The checkIfValidForMerge() method is private and 
is only called from mergeBackups(), which is the case for most of the methods 
in this class.
   
   That said, we can definitely create a dedicated test class for this and add 
the remaining/uncovered test cases. I’ll open a separate Jira for that. Does 
that sound good?


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]



Re: [PR] HBASE-29133: Implement "pitr" Command for Point-in-Time Restore [hbase]

2025-05-28 Thread via GitHub


anmolnar commented on PR #6717:
URL: https://github.com/apache/hbase/pull/6717#issuecomment-2916411766

   > > Overall lgtm, but surprising how low the level of unit tests' 
granularity is: for instance `BackupAdminImpl` is such a big class and there's 
no corresponding test class. It has a lot of private methods which could be 
tested as "units" if they were package private and we had a `BackupAdminTest` 
class. Please consider that.
   > 
   > True, there isn’t a separate test class specifically for 
`BackupAdminImpl`. However, if you look at the overall structure, the core 
implementation resides in `BackupAdminImpl`, while the other classes primarily 
handle input preparation (including validation) and delegate the calls to 
`BackupAdminImpl`. We have a lot of tests for those classes, which indirectly 
cover almost all parts of `BackupAdminImpl`.
   > 
   > That said, I’ll still take a closer look at the class and add tests if I 
find any gaps.
   
   Could you please provide examples of that?
   Are they really just proxy calls?


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]



Re: [PR] HBASE-29133: Implement "pitr" Command for Point-in-Time Restore [hbase]

2025-05-28 Thread via GitHub


vinayakphegde commented on PR #6717:
URL: https://github.com/apache/hbase/pull/6717#issuecomment-2915955005

   > Overall lgtm, but surprising how low the level of unit tests' granularity 
is: for instance `BackupAdminImpl` is such a big class and there's no 
corresponding test class. It has a lot of private methods which could be tested 
as "units" if they were package private and we had a `BackupAdminTest` class. 
Please consider that.
   
   True, there isn’t a separate test class specifically for `BackupAdminImpl`. 
However, if you look at the overall structure, the core implementation resides 
in `BackupAdminImpl`, while the other classes primarily handle input 
preparation (including validation) and delegate the calls to `BackupAdminImpl`. 
We have a lot of tests for those classes, which indirectly cover almost all 
parts of `BackupAdminImpl`.
   
   That said, I’ll still take a closer look at the class and add tests if I 
find any gaps.


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]



Re: [PR] HBASE-29133: Implement "pitr" Command for Point-in-Time Restore [hbase]

2025-05-27 Thread via GitHub


anmolnar commented on PR #6717:
URL: https://github.com/apache/hbase/pull/6717#issuecomment-2914556397

   @vinayakphegde You also need to rebase the patch. Some flaky tests have 
already been fixed on the feature branch.


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]



Re: [PR] HBASE-29133: Implement "pitr" Command for Point-in-Time Restore [hbase]

2025-05-27 Thread via GitHub


anmolnar commented on code in PR #6717:
URL: https://github.com/apache/hbase/pull/6717#discussion_r2110477468


##
hbase-backup/src/main/java/org/apache/hadoop/hbase/backup/util/BackupUtils.java:
##
@@ -671,6 +682,14 @@ public static RestoreRequest createRestoreRequest(String 
backupRootDir, String b
 return request;
   }
 
+  public static PointInTimeRestoreRequest 
createPointInTimeRestoreRequest(String backupRootDir,

Review Comment:
   nit: Since you have Builder implemented for PointInTimeRestoreRequest, this 
method is redundant. Creating a new request is already a one-liner.



##
hbase-backup/src/main/java/org/apache/hadoop/hbase/backup/util/BackupUtils.java:
##
@@ -770,4 +789,156 @@ public static String findMostRecentBackupId(String[] 
backupIds) {
 return BackupRestoreConstants.BACKUPID_PREFIX + recentTimestamp;
   }
 
+  /**
+   * Calculates the replication checkpoint timestamp used for continuous 
backup.
+   * 
+   * A replication checkpoint is the earliest timestamp across all region 
servers such that every
+   * WAL entry before that point is known to be replicated to the target 
system. This is essential
+   * for features like Point-in-Time Restore (PITR) and incremental backups, 
where we want to
+   * confidently restore data to a consistent state without missing updates.
+   * 
+   * The checkpoint is calculated using a combination of:
+   * 
+   * The start timestamps of WAL files currently being replicated for each 
server.
+   * The latest successfully replicated timestamp recorded by the 
replication marker chore.
+   * 
+   * 
+   * We combine these two sources to handle the following challenges:
+   * 
+   * Stale WAL start times: If replication traffic is low or WALs 
are long-lived, the
+   * replication offset may point to the same WAL for a long time, resulting 
in stale timestamps
+   * that underestimate progress. This could delay PITR unnecessarily.
+   * Limitations of marker-only tracking: The replication marker 
chore stores the last
+   * successfully replicated timestamp per region server in a system table. 
However, this data may
+   * become stale if the server goes offline or region ownership changes. For 
example, if a region
+   * initially belonged to rs1 and was later moved to rs4 due to re-balancing, 
rs1’s marker would
+   * persist even though it no longer holds any regions. Relying solely on 
these stale markers could
+   * lead to incorrect or outdated checkpoints.
+   * 
+   * 
+   * To handle these limitations, the method:
+   * 
+   * Verifies that the continuous backup peer exists to ensure replication 
is enabled.
+   * Retrieves WAL replication queue information for the peer, collecting 
WAL start times per
+   * region server. This gives us a lower bound for replication progress.
+   * Reads the marker chore's replicated timestamps from the backup system 
table.
+   * For servers found in both sources, if the marker timestamp is more 
recent than the WAL's
+   * start timestamp, we use the marker (since replication has progressed 
beyond the WAL).
+   * We discard marker entries for region servers that are not present in 
WAL queues, assuming
+   * those servers are no longer relevant (e.g., decommissioned or 
reassigned).
+   * The checkpoint is the minimum of all chosen timestamps — i.e., the 
slowest replicating
+   * region server.
+   * Finally, we persist the updated marker information to include any 
newly participating
+   * region servers.
+   * 
+   * 
+   * Note: If the replication marker chore is disabled, we fall back to using 
only the WAL start
+   * times. This ensures correctness but may lead to conservative checkpoint 
estimates during idle
+   * periods.
+   * @param conn the HBase connection
+   * @return the calculated replication checkpoint timestamp
+   * @throws IOException if reading replication queues or updating the backup 
system table fails
+   */
+  public static long getReplicationCheckpoint(Connection conn) throws 
IOException {
+Configuration conf = conn.getConfiguration();
+long checkpoint = EnvironmentEdgeManager.getDelegate().currentTime();
+
+// Step 1: Ensure the continuous backup replication peer exists
+if (!continuousBackupReplicationPeerExists(conn.getAdmin())) {
+  String msg = "Replication peer '" + CONTINUOUS_BACKUP_REPLICATION_PEER
++ "' not found. Continuous backup not enabled.";
+  LOG.error(msg);
+  throw new IOException(msg);
+}
+
+// Step 2: Get all replication queues for the continuous backup peer
+ReplicationQueueStorage queueStorage =
+  ReplicationStorageFactory.getReplicationQueueStorage(conn, conf);
+
+List queueIds;
+try {
+  queueIds = 
queueStorage.listAllQueueIds(CONTINUOUS_BACKUP_REPLICATION_PEER);
+} catch (ReplicationException e) {
+  String msg = "Failed to retrieve replication queue IDs for peer '"
++ CONTINUOUS_BACKUP_REPLICATION_PEER + "'";
+  LOG.error(msg, 

Re: [PR] HBASE-29133: Implement "pitr" Command for Point-in-Time Restore [hbase]

2025-05-05 Thread via GitHub


vinayakphegde commented on code in PR #6717:
URL: https://github.com/apache/hbase/pull/6717#discussion_r2074738766


##
hbase-backup/src/main/java/org/apache/hadoop/hbase/backup/util/BackupUtils.java:
##
@@ -770,4 +789,156 @@ public static String findMostRecentBackupId(String[] 
backupIds) {
 return BackupRestoreConstants.BACKUPID_PREFIX + recentTimestamp;
   }
 
+  /**
+   * Calculates the replication checkpoint timestamp used for continuous 
backup.
+   * 
+   * A replication checkpoint is the earliest timestamp across all region 
servers such that every
+   * WAL entry before that point is known to be replicated to the target 
system. This is essential
+   * for features like Point-in-Time Restore (PITR) and incremental backups, 
where we want to
+   * confidently restore data to a consistent state without missing updates.
+   * 
+   * The checkpoint is calculated using a combination of:
+   * 
+   * The start timestamps of WAL files currently being replicated for each 
server.
+   * The latest successfully replicated timestamp recorded by the 
replication marker chore.
+   * 
+   * 
+   * We combine these two sources to handle the following challenges:
+   * 
+   * Stale WAL start times: If replication traffic is low or WALs 
are long-lived, the
+   * replication offset may point to the same WAL for a long time, resulting 
in stale timestamps
+   * that underestimate progress. This could delay PITR unnecessarily.
+   * Limitations of marker-only tracking: The replication marker 
chore stores the last
+   * successfully replicated timestamp per region server in a system table. 
However, this data may
+   * become stale if the server goes offline or region ownership changes. For 
example, if a region
+   * initially belonged to rs1 and was later moved to rs4 due to re-balancing, 
rs1’s marker would
+   * persist even though it no longer holds any regions. Relying solely on 
these stale markers could
+   * lead to incorrect or outdated checkpoints.
+   * 
+   * 
+   * To handle these limitations, the method:
+   * 
+   * Verifies that the continuous backup peer exists to ensure replication 
is enabled.
+   * Retrieves WAL replication queue information for the peer, collecting 
WAL start times per
+   * region server. This gives us a lower bound for replication progress.
+   * Reads the marker chore's replicated timestamps from the backup system 
table.
+   * For servers found in both sources, if the marker timestamp is more 
recent than the WAL's
+   * start timestamp, we use the marker (since replication has progressed 
beyond the WAL).
+   * We discard marker entries for region servers that are not present in 
WAL queues, assuming
+   * those servers are no longer relevant (e.g., decommissioned or 
reassigned).
+   * The checkpoint is the minimum of all chosen timestamps — i.e., the 
slowest replicating
+   * region server.
+   * Finally, we persist the updated marker information to include any 
newly participating
+   * region servers.
+   * 
+   * 
+   * Note: If the replication marker chore is disabled, we fall back to using 
only the WAL start
+   * times. This ensures correctness but may lead to conservative checkpoint 
estimates during idle
+   * periods.
+   * @param conn the HBase connection
+   * @return the calculated replication checkpoint timestamp
+   * @throws IOException if reading replication queues or updating the backup 
system table fails
+   */
+  public static long getReplicationCheckpoint(Connection conn) throws 
IOException {
+Configuration conf = conn.getConfiguration();
+long checkpoint = EnvironmentEdgeManager.getDelegate().currentTime();
+
+// Step 1: Ensure the continuous backup replication peer exists
+if (!continuousBackupReplicationPeerExists(conn.getAdmin())) {
+  String msg = "Replication peer '" + CONTINUOUS_BACKUP_REPLICATION_PEER
++ "' not found. Continuous backup not enabled.";
+  LOG.error(msg);
+  throw new IOException(msg);
+}
+
+// Step 2: Get all replication queues for the continuous backup peer
+ReplicationQueueStorage queueStorage =
+  ReplicationStorageFactory.getReplicationQueueStorage(conn, conf);
+
+List queueIds;
+try {
+  queueIds = 
queueStorage.listAllQueueIds(CONTINUOUS_BACKUP_REPLICATION_PEER);
+} catch (ReplicationException e) {
+  String msg = "Failed to retrieve replication queue IDs for peer '"
++ CONTINUOUS_BACKUP_REPLICATION_PEER + "'";
+  LOG.error(msg, e);
+  throw new IOException(msg, e);
+}
+
+if (queueIds.isEmpty()) {
+  String msg = "Replication peer '" + CONTINUOUS_BACKUP_REPLICATION_PEER + 
"' has no queues. "
++ "This may indicate that continuous backup replication is not 
initialized correctly.";
+  LOG.error(msg);
+  throw new IOException(msg);
+}
+
+// Step 3: Build a map of ServerName -> WAL start timestamp (lowest seen 
per server)
+Map serverToCheckpoint = new HashMap<>();
+for 

Re: [PR] HBASE-29133: Implement "pitr" Command for Point-in-Time Restore [hbase]

2025-04-28 Thread via GitHub


kgeisz commented on code in PR #6717:
URL: https://github.com/apache/hbase/pull/6717#discussion_r2065030821


##
hbase-backup/src/main/java/org/apache/hadoop/hbase/backup/util/BackupUtils.java:
##
@@ -770,4 +789,156 @@ public static String findMostRecentBackupId(String[] 
backupIds) {
 return BackupRestoreConstants.BACKUPID_PREFIX + recentTimestamp;
   }
 
+  /**
+   * Calculates the replication checkpoint timestamp used for continuous 
backup.
+   * 
+   * A replication checkpoint is the earliest timestamp across all region 
servers such that every
+   * WAL entry before that point is known to be replicated to the target 
system. This is essential
+   * for features like Point-in-Time Restore (PITR) and incremental backups, 
where we want to
+   * confidently restore data to a consistent state without missing updates.
+   * 
+   * The checkpoint is calculated using a combination of:
+   * 
+   * The start timestamps of WAL files currently being replicated for each 
server.
+   * The latest successfully replicated timestamp recorded by the 
replication marker chore.
+   * 
+   * 
+   * We combine these two sources to handle the following challenges:
+   * 
+   * Stale WAL start times: If replication traffic is low or WALs 
are long-lived, the
+   * replication offset may point to the same WAL for a long time, resulting 
in stale timestamps
+   * that underestimate progress. This could delay PITR unnecessarily.
+   * Limitations of marker-only tracking: The replication marker 
chore stores the last
+   * successfully replicated timestamp per region server in a system table. 
However, this data may
+   * become stale if the server goes offline or region ownership changes. For 
example, if a region
+   * initially belonged to rs1 and was later moved to rs4 due to re-balancing, 
rs1’s marker would
+   * persist even though it no longer holds any regions. Relying solely on 
these stale markers could
+   * lead to incorrect or outdated checkpoints.
+   * 
+   * 
+   * To handle these limitations, the method:
+   * 
+   * Verifies that the continuous backup peer exists to ensure replication 
is enabled.
+   * Retrieves WAL replication queue information for the peer, collecting 
WAL start times per
+   * region server. This gives us a lower bound for replication progress.
+   * Reads the marker chore's replicated timestamps from the backup system 
table.
+   * For servers found in both sources, if the marker timestamp is more 
recent than the WAL's
+   * start timestamp, we use the marker (since replication has progressed 
beyond the WAL).
+   * We discard marker entries for region servers that are not present in 
WAL queues, assuming
+   * those servers are no longer relevant (e.g., decommissioned or 
reassigned).
+   * The checkpoint is the minimum of all chosen timestamps — i.e., the 
slowest replicating
+   * region server.
+   * Finally, we persist the updated marker information to include any 
newly participating
+   * region servers.
+   * 
+   * 
+   * Note: If the replication marker chore is disabled, we fall back to using 
only the WAL start
+   * times. This ensures correctness but may lead to conservative checkpoint 
estimates during idle
+   * periods.
+   * @param conn the HBase connection
+   * @return the calculated replication checkpoint timestamp
+   * @throws IOException if reading replication queues or updating the backup 
system table fails
+   */
+  public static long getReplicationCheckpoint(Connection conn) throws 
IOException {
+Configuration conf = conn.getConfiguration();
+long checkpoint = EnvironmentEdgeManager.getDelegate().currentTime();
+
+// Step 1: Ensure the continuous backup replication peer exists
+if (!continuousBackupReplicationPeerExists(conn.getAdmin())) {
+  String msg = "Replication peer '" + CONTINUOUS_BACKUP_REPLICATION_PEER
++ "' not found. Continuous backup not enabled.";
+  LOG.error(msg);
+  throw new IOException(msg);
+}
+
+// Step 2: Get all replication queues for the continuous backup peer
+ReplicationQueueStorage queueStorage =
+  ReplicationStorageFactory.getReplicationQueueStorage(conn, conf);
+
+List queueIds;
+try {
+  queueIds = 
queueStorage.listAllQueueIds(CONTINUOUS_BACKUP_REPLICATION_PEER);
+} catch (ReplicationException e) {
+  String msg = "Failed to retrieve replication queue IDs for peer '"
++ CONTINUOUS_BACKUP_REPLICATION_PEER + "'";
+  LOG.error(msg, e);
+  throw new IOException(msg, e);
+}
+
+if (queueIds.isEmpty()) {
+  String msg = "Replication peer '" + CONTINUOUS_BACKUP_REPLICATION_PEER + 
"' has no queues. "
++ "This may indicate that continuous backup replication is not 
initialized correctly.";
+  LOG.error(msg);
+  throw new IOException(msg);
+}
+
+// Step 3: Build a map of ServerName -> WAL start timestamp (lowest seen 
per server)
+Map serverToCheckpoint = new HashMap<>();
+for (Replic

Re: [PR] HBASE-29133: Implement "pitr" Command for Point-in-Time Restore [hbase]

2025-04-10 Thread via GitHub


Apache-HBase commented on PR #6717:
URL: https://github.com/apache/hbase/pull/6717#issuecomment-2793429101

   :broken_heart: **-1 overall**
   
   
   
   
   
   
   | Vote | Subsystem | Runtime |  Logfile | Comment |
   |::|--:|:|::|:---:|
   | +0 :ok: |  reexec  |   0m 45s |  |  Docker mode activated.  |
   | -0 :warning: |  yetus  |   0m  2s |  |  Unprocessed flag(s): 
--brief-report-file --spotbugs-strict-precheck --author-ignore-list 
--blanks-eol-ignore-file --blanks-tabs-ignore-file --quick-hadoopcheck  |
    _ Prechecks _ |
    _ HBASE-28957 Compile Tests _ |
   | +0 :ok: |  mvndep  |   0m 11s |  |  Maven dependency ordering for branch  |
   | +1 :green_heart: |  mvninstall  |   4m 11s |  |  HBASE-28957 passed  |
   | +1 :green_heart: |  compile  |   2m 57s |  |  HBASE-28957 passed  |
   | +1 :green_heart: |  javadoc  |   3m 23s |  |  HBASE-28957 passed  |
   | +1 :green_heart: |  shadedjars  |   7m 40s |  |  branch has no errors when 
building our shaded downstream artifacts.  |
    _ Patch Compile Tests _ |
   | +0 :ok: |  mvndep  |   0m 20s |  |  Maven dependency ordering for patch  |
   | +1 :green_heart: |  mvninstall  |   4m 31s |  |  the patch passed  |
   | +1 :green_heart: |  compile  |   3m 17s |  |  the patch passed  |
   | +1 :green_heart: |  javac  |   3m 17s |  |  the patch passed  |
   | +1 :green_heart: |  javadoc  |   3m 33s |  |  the patch passed  |
   | +1 :green_heart: |  shadedjars  |   7m 50s |  |  patch has no errors when 
building our shaded downstream artifacts.  |
    _ Other Tests _ |
   | -1 :x: |  unit  | 300m 23s | 
[/patch-unit-root.txt](https://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-6717/9/artifact/yetus-jdk17-hadoop3-check/output/patch-unit-root.txt)
 |  root in the patch failed.  |
   |  |   | 346m 33s |  |  |
   
   
   | Subsystem | Report/Notes |
   |--:|:-|
   | Docker | ClientAPI=1.43 ServerAPI=1.43 base: 
https://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-6717/9/artifact/yetus-jdk17-hadoop3-check/output/Dockerfile
 |
   | GITHUB PR | https://github.com/apache/hbase/pull/6717 |
   | JIRA Issue | HBASE-29133 |
   | Optional Tests | javac javadoc unit compile shadedjars |
   | uname | Linux 921d9702e677 5.4.0-1103-aws #111~18.04.1-Ubuntu SMP Tue May 
23 20:04:10 UTC 2023 x86_64 x86_64 x86_64 GNU/Linux |
   | Build tool | maven |
   | Personality | dev-support/hbase-personality.sh |
   | git revision | HBASE-28957 / f0c0a7f41b623487cdfe3b12ebf351e2f2585ddf |
   | Default Java | Eclipse Adoptium-17.0.11+9 |
   |  Test Results | 
https://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-6717/9/testReport/
 |
   | Max. process+thread count | 5436 (vs. ulimit of 3) |
   | modules | C: hbase-backup . U: . |
   | Console output | 
https://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-6717/9/console 
|
   | versions | git=2.34.1 maven=3.9.8 |
   | Powered by | Apache Yetus 0.15.0 https://yetus.apache.org |
   
   
   This message was automatically generated.
   
   


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]



Re: [PR] HBASE-29133: Implement "pitr" Command for Point-in-Time Restore [hbase]

2025-04-10 Thread via GitHub


Apache-HBase commented on PR #6717:
URL: https://github.com/apache/hbase/pull/6717#issuecomment-2792183358

   :confetti_ball: **+1 overall**
   
   
   
   
   
   
   | Vote | Subsystem | Runtime |  Logfile | Comment |
   |::|--:|:|::|:---:|
   | +0 :ok: |  reexec  |   0m 44s |  |  Docker mode activated.  |
    _ Prechecks _ |
   | +1 :green_heart: |  dupname  |   0m  0s |  |  No case conflicting files 
found.  |
   | +0 :ok: |  codespell  |   0m  0s |  |  codespell was not available.  |
   | +0 :ok: |  detsecrets  |   0m  0s |  |  detect-secrets was not available.  
|
   | +0 :ok: |  shelldocs  |   0m  0s |  |  Shelldocs was not available.  |
   | +1 :green_heart: |  @author  |   0m  0s |  |  The patch does not contain 
any @author tags.  |
   | +1 :green_heart: |  hbaseanti  |   0m  0s |  |  Patch does not have any 
anti-patterns.  |
    _ HBASE-28957 Compile Tests _ |
   | +0 :ok: |  mvndep  |   0m 39s |  |  Maven dependency ordering for branch  |
   | +1 :green_heart: |  mvninstall  |   4m 38s |  |  HBASE-28957 passed  |
   | +1 :green_heart: |  compile  |  10m 52s |  |  HBASE-28957 passed  |
   | +1 :green_heart: |  checkstyle  |   1m 19s |  |  HBASE-28957 passed  |
   | +1 :green_heart: |  spotbugs  |  11m 11s |  |  HBASE-28957 passed  |
   | +1 :green_heart: |  spotless  |   1m 12s |  |  branch has no errors when 
running spotless:check.  |
    _ Patch Compile Tests _ |
   | +0 :ok: |  mvndep  |   0m 13s |  |  Maven dependency ordering for patch  |
   | +1 :green_heart: |  mvninstall  |   3m 45s |  |  the patch passed  |
   | +1 :green_heart: |  compile  |  12m  4s |  |  the patch passed  |
   | -0 :warning: |  javac  |  12m  4s | 
[/results-compile-javac-root.txt](https://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-6717/9/artifact/yetus-general-check/output/results-compile-javac-root.txt)
 |  root generated 1 new + 1273 unchanged - 0 fixed = 1274 total (was 1273)  |
   | +1 :green_heart: |  blanks  |   0m  0s |  |  The patch has no blanks 
issues.  |
   | -0 :warning: |  checkstyle  |   2m  6s | 
[/buildtool-patch-checkstyle-root.txt](https://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-6717/9/artifact/yetus-general-check/output/buildtool-patch-checkstyle-root.txt)
 |  The patch fails to run checkstyle in root  |
   | +1 :green_heart: |  shellcheck  |   0m  1s |  |  No new issues.  |
   | +1 :green_heart: |  spotbugs  |  11m  1s |  |  the patch passed  |
   | +1 :green_heart: |  hadoopcheck  |  18m  7s |  |  Patch does not cause any 
errors with Hadoop 3.3.6 3.4.0.  |
   | +1 :green_heart: |  spotless  |   1m 10s |  |  patch has no errors when 
running spotless:check.  |
    _ Other Tests _ |
   | +1 :green_heart: |  asflicense  |   0m 28s |  |  The patch does not 
generate ASF License warnings.  |
   |  |   |  90m 30s |  |  |
   
   
   | Subsystem | Report/Notes |
   |--:|:-|
   | Docker | ClientAPI=1.43 ServerAPI=1.43 base: 
https://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-6717/9/artifact/yetus-general-check/output/Dockerfile
 |
   | GITHUB PR | https://github.com/apache/hbase/pull/6717 |
   | JIRA Issue | HBASE-29133 |
   | Optional Tests | dupname asflicense codespell detsecrets shellcheck 
shelldocs spotless javac spotbugs checkstyle compile hadoopcheck hbaseanti |
   | uname | Linux 21eda626d1f6 5.4.0-1103-aws #111~18.04.1-Ubuntu SMP Tue May 
23 20:04:10 UTC 2023 x86_64 x86_64 x86_64 GNU/Linux |
   | Build tool | maven |
   | Personality | dev-support/hbase-personality.sh |
   | git revision | HBASE-28957 / f0c0a7f41b623487cdfe3b12ebf351e2f2585ddf |
   | Default Java | Eclipse Adoptium-17.0.11+9 |
   | Max. process+thread count | 188 (vs. ulimit of 3) |
   | modules | C: hbase-backup . U: . |
   | Console output | 
https://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-6717/9/console 
|
   | versions | git=2.34.1 maven=3.9.8 spotbugs=4.7.3 shellcheck=0.8.0 |
   | Powered by | Apache Yetus 0.15.0 https://yetus.apache.org |
   
   
   This message was automatically generated.
   
   


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]



Re: [PR] HBASE-29133: Implement "pitr" Command for Point-in-Time Restore [hbase]

2025-04-09 Thread via GitHub


Apache-HBase commented on PR #6717:
URL: https://github.com/apache/hbase/pull/6717#issuecomment-2791215313

   :broken_heart: **-1 overall**
   
   
   
   
   
   
   | Vote | Subsystem | Runtime |  Logfile | Comment |
   |::|--:|:|::|:---:|
   | +0 :ok: |  reexec  |   0m 40s |  |  Docker mode activated.  |
   | -0 :warning: |  yetus  |   0m  3s |  |  Unprocessed flag(s): 
--brief-report-file --spotbugs-strict-precheck --author-ignore-list 
--blanks-eol-ignore-file --blanks-tabs-ignore-file --quick-hadoopcheck  |
    _ Prechecks _ |
    _ HBASE-28957 Compile Tests _ |
   | +0 :ok: |  mvndep  |   0m 12s |  |  Maven dependency ordering for branch  |
   | +1 :green_heart: |  mvninstall  |   3m 43s |  |  HBASE-28957 passed  |
   | +1 :green_heart: |  compile  |   2m 40s |  |  HBASE-28957 passed  |
   | +1 :green_heart: |  javadoc  |   3m 12s |  |  HBASE-28957 passed  |
   | +1 :green_heart: |  shadedjars  |   7m 17s |  |  branch has no errors when 
building our shaded downstream artifacts.  |
    _ Patch Compile Tests _ |
   | +0 :ok: |  mvndep  |   0m 11s |  |  Maven dependency ordering for patch  |
   | +1 :green_heart: |  mvninstall  |   3m 41s |  |  the patch passed  |
   | +1 :green_heart: |  compile  |   2m 25s |  |  the patch passed  |
   | +1 :green_heart: |  javac  |   2m 25s |  |  the patch passed  |
   | +1 :green_heart: |  javadoc  |   2m 48s |  |  the patch passed  |
   | +1 :green_heart: |  shadedjars  |   7m  4s |  |  patch has no errors when 
building our shaded downstream artifacts.  |
    _ Other Tests _ |
   | -1 :x: |  unit  | 341m 10s | 
[/patch-unit-root.txt](https://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-6717/8/artifact/yetus-jdk17-hadoop3-check/output/patch-unit-root.txt)
 |  root in the patch failed.  |
   |  |   | 381m 51s |  |  |
   
   
   | Subsystem | Report/Notes |
   |--:|:-|
   | Docker | ClientAPI=1.43 ServerAPI=1.43 base: 
https://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-6717/8/artifact/yetus-jdk17-hadoop3-check/output/Dockerfile
 |
   | GITHUB PR | https://github.com/apache/hbase/pull/6717 |
   | JIRA Issue | HBASE-29133 |
   | Optional Tests | javac javadoc unit compile shadedjars |
   | uname | Linux 226dc3cbdea3 5.4.0-1103-aws #111~18.04.1-Ubuntu SMP Tue May 
23 20:04:10 UTC 2023 x86_64 x86_64 x86_64 GNU/Linux |
   | Build tool | maven |
   | Personality | dev-support/hbase-personality.sh |
   | git revision | HBASE-28957 / 4fa1c3b31e3266c2f177480a92af433d2ddc50cd |
   | Default Java | Eclipse Adoptium-17.0.11+9 |
   |  Test Results | 
https://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-6717/8/testReport/
 |
   | Max. process+thread count | 5128 (vs. ulimit of 3) |
   | modules | C: hbase-backup . U: . |
   | Console output | 
https://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-6717/8/console 
|
   | versions | git=2.34.1 maven=3.9.8 |
   | Powered by | Apache Yetus 0.15.0 https://yetus.apache.org |
   
   
   This message was automatically generated.
   
   


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]



Re: [PR] HBASE-29133: Implement "pitr" Command for Point-in-Time Restore [hbase]

2025-04-09 Thread via GitHub


Apache-HBase commented on PR #6717:
URL: https://github.com/apache/hbase/pull/6717#issuecomment-2790625668

   :confetti_ball: **+1 overall**
   
   
   
   
   
   
   | Vote | Subsystem | Runtime |  Logfile | Comment |
   |::|--:|:|::|:---:|
   | +0 :ok: |  reexec  |   0m 32s |  |  Docker mode activated.  |
    _ Prechecks _ |
   | +1 :green_heart: |  dupname  |   0m  0s |  |  No case conflicting files 
found.  |
   | +0 :ok: |  codespell  |   0m  0s |  |  codespell was not available.  |
   | +0 :ok: |  detsecrets  |   0m  0s |  |  detect-secrets was not available.  
|
   | +0 :ok: |  shelldocs  |   0m  0s |  |  Shelldocs was not available.  |
   | +1 :green_heart: |  @author  |   0m  0s |  |  The patch does not contain 
any @author tags.  |
   | +1 :green_heart: |  hbaseanti  |   0m  1s |  |  Patch does not have any 
anti-patterns.  |
    _ HBASE-28957 Compile Tests _ |
   | +0 :ok: |  mvndep  |   0m 36s |  |  Maven dependency ordering for branch  |
   | +1 :green_heart: |  mvninstall  |   3m 30s |  |  HBASE-28957 passed  |
   | +1 :green_heart: |  compile  |   7m 58s |  |  HBASE-28957 passed  |
   | +1 :green_heart: |  checkstyle  |   1m 11s |  |  HBASE-28957 passed  |
   | +1 :green_heart: |  spotbugs  |   7m 57s |  |  HBASE-28957 passed  |
   | +1 :green_heart: |  spotless  |   0m 45s |  |  branch has no errors when 
running spotless:check.  |
    _ Patch Compile Tests _ |
   | +0 :ok: |  mvndep  |   0m 11s |  |  Maven dependency ordering for patch  |
   | +1 :green_heart: |  mvninstall  |   3m  1s |  |  the patch passed  |
   | +1 :green_heart: |  compile  |   9m 39s |  |  the patch passed  |
   | -0 :warning: |  javac  |   9m 39s | 
[/results-compile-javac-root.txt](https://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-6717/8/artifact/yetus-general-check/output/results-compile-javac-root.txt)
 |  root generated 1 new + 1273 unchanged - 0 fixed = 1274 total (was 1273)  |
   | +1 :green_heart: |  blanks  |   0m  0s |  |  The patch has no blanks 
issues.  |
   | -0 :warning: |  checkstyle  |   1m 27s | 
[/buildtool-patch-checkstyle-root.txt](https://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-6717/8/artifact/yetus-general-check/output/buildtool-patch-checkstyle-root.txt)
 |  The patch fails to run checkstyle in root  |
   | +1 :green_heart: |  shellcheck  |   0m  1s |  |  No new issues.  |
   | +1 :green_heart: |  spotbugs  |  10m 59s |  |  the patch passed  |
   | +1 :green_heart: |  hadoopcheck  |  12m 59s |  |  Patch does not cause any 
errors with Hadoop 3.3.6 3.4.0.  |
   | +1 :green_heart: |  spotless  |   0m 46s |  |  patch has no errors when 
running spotless:check.  |
    _ Other Tests _ |
   | +1 :green_heart: |  asflicense  |   0m 21s |  |  The patch does not 
generate ASF License warnings.  |
   |  |   |  69m 59s |  |  |
   
   
   | Subsystem | Report/Notes |
   |--:|:-|
   | Docker | ClientAPI=1.43 ServerAPI=1.43 base: 
https://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-6717/8/artifact/yetus-general-check/output/Dockerfile
 |
   | GITHUB PR | https://github.com/apache/hbase/pull/6717 |
   | JIRA Issue | HBASE-29133 |
   | Optional Tests | dupname asflicense codespell detsecrets shellcheck 
shelldocs spotless javac spotbugs checkstyle compile hadoopcheck hbaseanti |
   | uname | Linux 0623615afd49 5.4.0-1103-aws #111~18.04.1-Ubuntu SMP Tue May 
23 20:04:10 UTC 2023 x86_64 x86_64 x86_64 GNU/Linux |
   | Build tool | maven |
   | Personality | dev-support/hbase-personality.sh |
   | git revision | HBASE-28957 / 4fa1c3b31e3266c2f177480a92af433d2ddc50cd |
   | Default Java | Eclipse Adoptium-17.0.11+9 |
   | Max. process+thread count | 191 (vs. ulimit of 3) |
   | modules | C: hbase-backup . U: . |
   | Console output | 
https://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-6717/8/console 
|
   | versions | git=2.34.1 maven=3.9.8 spotbugs=4.7.3 shellcheck=0.8.0 |
   | Powered by | Apache Yetus 0.15.0 https://yetus.apache.org |
   
   
   This message was automatically generated.
   
   


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]



Re: [PR] HBASE-29133: Implement "pitr" Command for Point-in-Time Restore [hbase]

2025-04-01 Thread via GitHub


Apache-HBase commented on PR #6717:
URL: https://github.com/apache/hbase/pull/6717#issuecomment-2770384020

   :broken_heart: **-1 overall**
   
   
   
   
   
   
   | Vote | Subsystem | Runtime |  Logfile | Comment |
   |::|--:|:|::|:---:|
   | +0 :ok: |  reexec  |   0m 30s |  |  Docker mode activated.  |
   | -0 :warning: |  yetus  |   0m  3s |  |  Unprocessed flag(s): 
--brief-report-file --spotbugs-strict-precheck --author-ignore-list 
--blanks-eol-ignore-file --blanks-tabs-ignore-file --quick-hadoopcheck  |
    _ Prechecks _ |
    _ HBASE-28957 Compile Tests _ |
   | +0 :ok: |  mvndep  |   0m 11s |  |  Maven dependency ordering for branch  |
   | +1 :green_heart: |  mvninstall  |   3m 11s |  |  HBASE-28957 passed  |
   | +1 :green_heart: |  compile  |   2m 11s |  |  HBASE-28957 passed  |
   | +1 :green_heart: |  javadoc  |   2m 26s |  |  HBASE-28957 passed  |
   | +1 :green_heart: |  shadedjars  |   6m  2s |  |  branch has no errors when 
building our shaded downstream artifacts.  |
    _ Patch Compile Tests _ |
   | +0 :ok: |  mvndep  |   0m 12s |  |  Maven dependency ordering for patch  |
   | +1 :green_heart: |  mvninstall  |   3m  3s |  |  the patch passed  |
   | +1 :green_heart: |  compile  |   2m  7s |  |  the patch passed  |
   | +1 :green_heart: |  javac  |   2m  7s |  |  the patch passed  |
   | +1 :green_heart: |  javadoc  |   2m 10s |  |  the patch passed  |
   | +1 :green_heart: |  shadedjars  |   5m 53s |  |  patch has no errors when 
building our shaded downstream artifacts.  |
    _ Other Tests _ |
   | -1 :x: |  unit  | 350m  3s | 
[/patch-unit-root.txt](https://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-6717/7/artifact/yetus-jdk17-hadoop3-check/output/patch-unit-root.txt)
 |  root in the patch failed.  |
   |  |   | 384m  1s |  |  |
   
   
   | Subsystem | Report/Notes |
   |--:|:-|
   | Docker | ClientAPI=1.43 ServerAPI=1.43 base: 
https://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-6717/7/artifact/yetus-jdk17-hadoop3-check/output/Dockerfile
 |
   | GITHUB PR | https://github.com/apache/hbase/pull/6717 |
   | JIRA Issue | HBASE-29133 |
   | Optional Tests | javac javadoc unit compile shadedjars |
   | uname | Linux eaa86a45a5b8 5.4.0-1103-aws #111~18.04.1-Ubuntu SMP Tue May 
23 20:04:10 UTC 2023 x86_64 x86_64 x86_64 GNU/Linux |
   | Build tool | maven |
   | Personality | dev-support/hbase-personality.sh |
   | git revision | HBASE-28957 / cf0f97ebd4c6c7b3ced7f97b7c11bc4a1a9b7828 |
   | Default Java | Eclipse Adoptium-17.0.11+9 |
   |  Test Results | 
https://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-6717/7/testReport/
 |
   | Max. process+thread count | 5150 (vs. ulimit of 3) |
   | modules | C: hbase-backup . U: . |
   | Console output | 
https://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-6717/7/console 
|
   | versions | git=2.34.1 maven=3.9.8 |
   | Powered by | Apache Yetus 0.15.0 https://yetus.apache.org |
   
   
   This message was automatically generated.
   
   


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]



Re: [PR] HBASE-29133: Implement "pitr" Command for Point-in-Time Restore [hbase]

2025-04-01 Thread via GitHub


Apache-HBase commented on PR #6717:
URL: https://github.com/apache/hbase/pull/6717#issuecomment-2769353514

   :confetti_ball: **+1 overall**
   
   
   
   
   
   
   | Vote | Subsystem | Runtime |  Logfile | Comment |
   |::|--:|:|::|:---:|
   | +0 :ok: |  reexec  |   0m 30s |  |  Docker mode activated.  |
    _ Prechecks _ |
   | +1 :green_heart: |  dupname  |   0m  0s |  |  No case conflicting files 
found.  |
   | +0 :ok: |  codespell  |   0m  0s |  |  codespell was not available.  |
   | +0 :ok: |  detsecrets  |   0m  0s |  |  detect-secrets was not available.  
|
   | +0 :ok: |  shelldocs  |   0m  0s |  |  Shelldocs was not available.  |
   | +1 :green_heart: |  @author  |   0m  0s |  |  The patch does not contain 
any @author tags.  |
   | +1 :green_heart: |  hbaseanti  |   0m  0s |  |  Patch does not have any 
anti-patterns.  |
    _ HBASE-28957 Compile Tests _ |
   | +0 :ok: |  mvndep  |   0m 11s |  |  Maven dependency ordering for branch  |
   | +1 :green_heart: |  mvninstall  |   3m 12s |  |  HBASE-28957 passed  |
   | +1 :green_heart: |  compile  |   8m  3s |  |  HBASE-28957 passed  |
   | +1 :green_heart: |  checkstyle  |   1m 11s |  |  HBASE-28957 passed  |
   | +1 :green_heart: |  spotbugs  |   7m 55s |  |  HBASE-28957 passed  |
   | +1 :green_heart: |  spotless  |   0m 46s |  |  branch has no errors when 
running spotless:check.  |
    _ Patch Compile Tests _ |
   | +0 :ok: |  mvndep  |   0m 11s |  |  Maven dependency ordering for patch  |
   | +1 :green_heart: |  mvninstall  |   3m  4s |  |  the patch passed  |
   | +1 :green_heart: |  compile  |   8m  0s |  |  the patch passed  |
   | -0 :warning: |  javac  |   8m  0s | 
[/results-compile-javac-root.txt](https://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-6717/7/artifact/yetus-general-check/output/results-compile-javac-root.txt)
 |  root generated 1 new + 1273 unchanged - 0 fixed = 1274 total (was 1273)  |
   | +1 :green_heart: |  blanks  |   0m  0s |  |  The patch has no blanks 
issues.  |
   | -0 :warning: |  checkstyle  |   1m  9s | 
[/buildtool-patch-checkstyle-root.txt](https://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-6717/7/artifact/yetus-general-check/output/buildtool-patch-checkstyle-root.txt)
 |  The patch fails to run checkstyle in root  |
   | +1 :green_heart: |  shellcheck  |   0m  1s |  |  No new issues.  |
   | +1 :green_heart: |  spotbugs  |   8m 17s |  |  the patch passed  |
   | +1 :green_heart: |  hadoopcheck  |  11m 55s |  |  Patch does not cause any 
errors with Hadoop 3.3.6 3.4.0.  |
   | +1 :green_heart: |  spotless  |   0m 44s |  |  patch has no errors when 
running spotless:check.  |
    _ Other Tests _ |
   | +1 :green_heart: |  asflicense  |   0m 20s |  |  The patch does not 
generate ASF License warnings.  |
   |  |   |  63m  1s |  |  |
   
   
   | Subsystem | Report/Notes |
   |--:|:-|
   | Docker | ClientAPI=1.43 ServerAPI=1.43 base: 
https://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-6717/7/artifact/yetus-general-check/output/Dockerfile
 |
   | GITHUB PR | https://github.com/apache/hbase/pull/6717 |
   | JIRA Issue | HBASE-29133 |
   | Optional Tests | dupname asflicense codespell detsecrets shellcheck 
shelldocs spotless javac spotbugs checkstyle compile hadoopcheck hbaseanti |
   | uname | Linux ea6bd2b72cf5 5.4.0-1103-aws #111~18.04.1-Ubuntu SMP Tue May 
23 20:04:10 UTC 2023 x86_64 x86_64 x86_64 GNU/Linux |
   | Build tool | maven |
   | Personality | dev-support/hbase-personality.sh |
   | git revision | HBASE-28957 / cf0f97ebd4c6c7b3ced7f97b7c11bc4a1a9b7828 |
   | Default Java | Eclipse Adoptium-17.0.11+9 |
   | Max. process+thread count | 190 (vs. ulimit of 3) |
   | modules | C: hbase-backup . U: . |
   | Console output | 
https://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-6717/7/console 
|
   | versions | git=2.34.1 maven=3.9.8 spotbugs=4.7.3 shellcheck=0.8.0 |
   | Powered by | Apache Yetus 0.15.0 https://yetus.apache.org |
   
   
   This message was automatically generated.
   
   


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]



Re: [PR] HBASE-29133: Implement "pitr" Command for Point-in-Time Restore [hbase]

2025-03-26 Thread via GitHub


Apache-HBase commented on PR #6717:
URL: https://github.com/apache/hbase/pull/6717#issuecomment-2755113867

   :broken_heart: **-1 overall**
   
   
   
   
   
   
   | Vote | Subsystem | Runtime |  Logfile | Comment |
   |::|--:|:|::|:---:|
   | +0 :ok: |  reexec  |   0m 34s |  |  Docker mode activated.  |
   | -0 :warning: |  yetus  |   0m  3s |  |  Unprocessed flag(s): 
--brief-report-file --spotbugs-strict-precheck --author-ignore-list 
--blanks-eol-ignore-file --blanks-tabs-ignore-file --quick-hadoopcheck  |
    _ Prechecks _ |
    _ HBASE-28957 Compile Tests _ |
   | +0 :ok: |  mvndep  |   0m 10s |  |  Maven dependency ordering for branch  |
   | +1 :green_heart: |  mvninstall  |   3m 59s |  |  HBASE-28957 passed  |
   | +1 :green_heart: |  compile  |   2m 28s |  |  HBASE-28957 passed  |
   | +1 :green_heart: |  javadoc  |   2m 36s |  |  HBASE-28957 passed  |
   | +1 :green_heart: |  shadedjars  |   6m 30s |  |  branch has no errors when 
building our shaded downstream artifacts.  |
    _ Patch Compile Tests _ |
   | +0 :ok: |  mvndep  |   0m 11s |  |  Maven dependency ordering for patch  |
   | +1 :green_heart: |  mvninstall  |   3m 55s |  |  the patch passed  |
   | +1 :green_heart: |  compile  |   2m 54s |  |  the patch passed  |
   | +1 :green_heart: |  javac  |   2m 54s |  |  the patch passed  |
   | +1 :green_heart: |  javadoc  |   2m 37s |  |  the patch passed  |
   | +1 :green_heart: |  shadedjars  |   6m 36s |  |  patch has no errors when 
building our shaded downstream artifacts.  |
    _ Other Tests _ |
   | -1 :x: |  unit  | 324m 51s | 
[/patch-unit-root.txt](https://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-6717/6/artifact/yetus-jdk17-hadoop3-check/output/patch-unit-root.txt)
 |  root in the patch failed.  |
   |  |   | 364m 15s |  |  |
   
   
   | Subsystem | Report/Notes |
   |--:|:-|
   | Docker | ClientAPI=1.43 ServerAPI=1.43 base: 
https://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-6717/6/artifact/yetus-jdk17-hadoop3-check/output/Dockerfile
 |
   | GITHUB PR | https://github.com/apache/hbase/pull/6717 |
   | JIRA Issue | HBASE-29133 |
   | Optional Tests | javac javadoc unit compile shadedjars |
   | uname | Linux 0321603f87fe 5.4.0-1103-aws #111~18.04.1-Ubuntu SMP Tue May 
23 20:04:10 UTC 2023 x86_64 x86_64 x86_64 GNU/Linux |
   | Build tool | maven |
   | Personality | dev-support/hbase-personality.sh |
   | git revision | HBASE-28957 / dc20fbe957936fc024e211c8c4cab85edace5097 |
   | Default Java | Eclipse Adoptium-17.0.11+9 |
   |  Test Results | 
https://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-6717/6/testReport/
 |
   | Max. process+thread count | 5063 (vs. ulimit of 3) |
   | modules | C: hbase-backup . U: . |
   | Console output | 
https://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-6717/6/console 
|
   | versions | git=2.34.1 maven=3.9.8 |
   | Powered by | Apache Yetus 0.15.0 https://yetus.apache.org |
   
   
   This message was automatically generated.
   
   


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]



Re: [PR] HBASE-29133: Implement "pitr" Command for Point-in-Time Restore [hbase]

2025-03-26 Thread via GitHub


Apache-HBase commented on PR #6717:
URL: https://github.com/apache/hbase/pull/6717#issuecomment-2754134768

   :confetti_ball: **+1 overall**
   
   
   
   
   
   
   | Vote | Subsystem | Runtime |  Logfile | Comment |
   |::|--:|:|::|:---:|
   | +0 :ok: |  reexec  |   0m 27s |  |  Docker mode activated.  |
    _ Prechecks _ |
   | +1 :green_heart: |  dupname  |   0m  0s |  |  No case conflicting files 
found.  |
   | +0 :ok: |  codespell  |   0m  0s |  |  codespell was not available.  |
   | +0 :ok: |  detsecrets  |   0m  0s |  |  detect-secrets was not available.  
|
   | +0 :ok: |  shelldocs  |   0m  0s |  |  Shelldocs was not available.  |
   | +1 :green_heart: |  @author  |   0m  0s |  |  The patch does not contain 
any @author tags.  |
   | +1 :green_heart: |  hbaseanti  |   0m  0s |  |  Patch does not have any 
anti-patterns.  |
    _ HBASE-28957 Compile Tests _ |
   | +0 :ok: |  mvndep  |   0m 10s |  |  Maven dependency ordering for branch  |
   | +1 :green_heart: |  mvninstall  |   3m 12s |  |  HBASE-28957 passed  |
   | +1 :green_heart: |  compile  |   7m 51s |  |  HBASE-28957 passed  |
   | +1 :green_heart: |  checkstyle  |   1m 10s |  |  HBASE-28957 passed  |
   | +1 :green_heart: |  spotbugs  |   7m 50s |  |  HBASE-28957 passed  |
   | +1 :green_heart: |  spotless  |   0m 44s |  |  branch has no errors when 
running spotless:check.  |
    _ Patch Compile Tests _ |
   | +0 :ok: |  mvndep  |   0m 10s |  |  Maven dependency ordering for patch  |
   | +1 :green_heart: |  mvninstall  |   3m  0s |  |  the patch passed  |
   | +1 :green_heart: |  compile  |   7m 50s |  |  the patch passed  |
   | -0 :warning: |  javac  |   7m 50s | 
[/results-compile-javac-root.txt](https://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-6717/6/artifact/yetus-general-check/output/results-compile-javac-root.txt)
 |  root generated 1 new + 1273 unchanged - 0 fixed = 1274 total (was 1273)  |
   | +1 :green_heart: |  blanks  |   0m  0s |  |  The patch has no blanks 
issues.  |
   | -0 :warning: |  checkstyle  |   1m 10s | 
[/buildtool-patch-checkstyle-root.txt](https://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-6717/6/artifact/yetus-general-check/output/buildtool-patch-checkstyle-root.txt)
 |  The patch fails to run checkstyle in root  |
   | +1 :green_heart: |  shellcheck  |   0m  0s |  |  No new issues.  |
   | +1 :green_heart: |  spotbugs  |   8m  2s |  |  the patch passed  |
   | +1 :green_heart: |  hadoopcheck  |  11m 48s |  |  Patch does not cause any 
errors with Hadoop 3.3.6 3.4.0.  |
   | +1 :green_heart: |  spotless  |   0m 44s |  |  patch has no errors when 
running spotless:check.  |
    _ Other Tests _ |
   | +1 :green_heart: |  asflicense  |   0m 20s |  |  The patch does not 
generate ASF License warnings.  |
   |  |   |  62m  3s |  |  |
   
   
   | Subsystem | Report/Notes |
   |--:|:-|
   | Docker | ClientAPI=1.43 ServerAPI=1.43 base: 
https://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-6717/6/artifact/yetus-general-check/output/Dockerfile
 |
   | GITHUB PR | https://github.com/apache/hbase/pull/6717 |
   | JIRA Issue | HBASE-29133 |
   | Optional Tests | dupname asflicense codespell detsecrets shellcheck 
shelldocs spotless javac spotbugs checkstyle compile hadoopcheck hbaseanti |
   | uname | Linux b2c23608dc02 5.4.0-1103-aws #111~18.04.1-Ubuntu SMP Tue May 
23 20:04:10 UTC 2023 x86_64 x86_64 x86_64 GNU/Linux |
   | Build tool | maven |
   | Personality | dev-support/hbase-personality.sh |
   | git revision | HBASE-28957 / dc20fbe957936fc024e211c8c4cab85edace5097 |
   | Default Java | Eclipse Adoptium-17.0.11+9 |
   | Max. process+thread count | 189 (vs. ulimit of 3) |
   | modules | C: hbase-backup . U: . |
   | Console output | 
https://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-6717/6/console 
|
   | versions | git=2.34.1 maven=3.9.8 spotbugs=4.7.3 shellcheck=0.8.0 |
   | Powered by | Apache Yetus 0.15.0 https://yetus.apache.org |
   
   
   This message was automatically generated.
   
   


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]



Re: [PR] HBASE-29133: Implement "pitr" Command for Point-in-Time Restore [hbase]

2025-02-24 Thread via GitHub


Apache-HBase commented on PR #6717:
URL: https://github.com/apache/hbase/pull/6717#issuecomment-2680270812

   :broken_heart: **-1 overall**
   
   
   
   
   
   
   | Vote | Subsystem | Runtime |  Logfile | Comment |
   |::|--:|:|::|:---:|
   | +0 :ok: |  reexec  |   0m 29s |  |  Docker mode activated.  |
   | -0 :warning: |  yetus  |   0m  3s |  |  Unprocessed flag(s): 
--brief-report-file --spotbugs-strict-precheck --author-ignore-list 
--blanks-eol-ignore-file --blanks-tabs-ignore-file --quick-hadoopcheck  |
    _ Prechecks _ |
    _ HBASE-28957 Compile Tests _ |
   | +0 :ok: |  mvndep  |   0m 11s |  |  Maven dependency ordering for branch  |
   | +1 :green_heart: |  mvninstall  |   3m 10s |  |  HBASE-28957 passed  |
   | +1 :green_heart: |  compile  |   2m  8s |  |  HBASE-28957 passed  |
   | +1 :green_heart: |  javadoc  |   2m  7s |  |  HBASE-28957 passed  |
   | +1 :green_heart: |  shadedjars  |   5m 49s |  |  branch has no errors when 
building our shaded downstream artifacts.  |
    _ Patch Compile Tests _ |
   | +0 :ok: |  mvndep  |   0m 11s |  |  Maven dependency ordering for patch  |
   | +1 :green_heart: |  mvninstall  |   3m  2s |  |  the patch passed  |
   | +1 :green_heart: |  compile  |   2m 13s |  |  the patch passed  |
   | +1 :green_heart: |  javac  |   2m 13s |  |  the patch passed  |
   | +1 :green_heart: |  javadoc  |   2m 27s |  |  the patch passed  |
   | +1 :green_heart: |  shadedjars  |   7m  7s |  |  patch has no errors when 
building our shaded downstream artifacts.  |
    _ Other Tests _ |
   | -1 :x: |  unit  | 277m 49s | 
[/patch-unit-root.txt](https://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-6717/1/artifact/yetus-jdk17-hadoop3-check/output/patch-unit-root.txt)
 |  root in the patch failed.  |
   |  |   | 312m 10s |  |  |
   
   
   | Subsystem | Report/Notes |
   |--:|:-|
   | Docker | ClientAPI=1.43 ServerAPI=1.43 base: 
https://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-6717/1/artifact/yetus-jdk17-hadoop3-check/output/Dockerfile
 |
   | GITHUB PR | https://github.com/apache/hbase/pull/6717 |
   | JIRA Issue | HBASE-29133 |
   | Optional Tests | javac javadoc unit compile shadedjars |
   | uname | Linux 3b9e992d0499 5.4.0-1103-aws #111~18.04.1-Ubuntu SMP Tue May 
23 20:04:10 UTC 2023 x86_64 x86_64 x86_64 GNU/Linux |
   | Build tool | maven |
   | Personality | dev-support/hbase-personality.sh |
   | git revision | HBASE-28957 / 606ff9eb584d65c2d751fa34732f2bbec2c34f45 |
   | Default Java | Eclipse Adoptium-17.0.11+9 |
   |  Test Results | 
https://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-6717/1/testReport/
 |
   | Max. process+thread count | 6055 (vs. ulimit of 3) |
   | modules | C: hbase-backup . U: . |
   | Console output | 
https://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-6717/1/console 
|
   | versions | git=2.34.1 maven=3.9.8 |
   | Powered by | Apache Yetus 0.15.0 https://yetus.apache.org |
   
   
   This message was automatically generated.
   
   


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]



Re: [PR] HBASE-29133: Implement "pitr" Command for Point-in-Time Restore [hbase]

2025-02-24 Thread via GitHub


Apache-HBase commented on PR #6717:
URL: https://github.com/apache/hbase/pull/6717#issuecomment-2679833313

   :confetti_ball: **+1 overall**
   
   
   
   
   
   
   | Vote | Subsystem | Runtime |  Logfile | Comment |
   |::|--:|:|::|:---:|
   | +0 :ok: |  reexec  |   0m 38s |  |  Docker mode activated.  |
    _ Prechecks _ |
   | +1 :green_heart: |  dupname  |   0m  0s |  |  No case conflicting files 
found.  |
   | +0 :ok: |  codespell  |   0m  0s |  |  codespell was not available.  |
   | +0 :ok: |  detsecrets  |   0m  0s |  |  detect-secrets was not available.  
|
   | +0 :ok: |  shelldocs  |   0m  0s |  |  Shelldocs was not available.  |
   | +1 :green_heart: |  @author  |   0m  0s |  |  The patch does not contain 
any @author tags.  |
   | +1 :green_heart: |  hbaseanti  |   0m  0s |  |  Patch does not have any 
anti-patterns.  |
    _ HBASE-28957 Compile Tests _ |
   | +0 :ok: |  mvndep  |   0m 15s |  |  Maven dependency ordering for branch  |
   | +1 :green_heart: |  mvninstall  |   5m  3s |  |  HBASE-28957 passed  |
   | +1 :green_heart: |  compile  |  12m 56s |  |  HBASE-28957 passed  |
   | +1 :green_heart: |  checkstyle  |   1m 51s |  |  HBASE-28957 passed  |
   | +1 :green_heart: |  spotbugs  |  11m 43s |  |  HBASE-28957 passed  |
   | +1 :green_heart: |  spotless  |   0m 52s |  |  branch has no errors when 
running spotless:check.  |
    _ Patch Compile Tests _ |
   | +0 :ok: |  mvndep  |   0m 10s |  |  Maven dependency ordering for patch  |
   | +1 :green_heart: |  mvninstall  |   3m 58s |  |  the patch passed  |
   | +1 :green_heart: |  compile  |  12m 28s |  |  the patch passed  |
   | -0 :warning: |  javac  |  12m 28s | 
[/results-compile-javac-root.txt](https://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-6717/1/artifact/yetus-general-check/output/results-compile-javac-root.txt)
 |  root generated 1 new + 1281 unchanged - 0 fixed = 1282 total (was 1281)  |
   | +1 :green_heart: |  blanks  |   0m  0s |  |  The patch has no blanks 
issues.  |
   | -0 :warning: |  checkstyle  |   1m 34s | 
[/buildtool-patch-checkstyle-root.txt](https://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-6717/1/artifact/yetus-general-check/output/buildtool-patch-checkstyle-root.txt)
 |  The patch fails to run checkstyle in root  |
   | +1 :green_heart: |  shellcheck  |   0m  1s |  |  No new issues.  |
   | +1 :green_heart: |  spotbugs  |  12m  5s |  |  the patch passed  |
   | +1 :green_heart: |  hadoopcheck  |  15m 53s |  |  Patch does not cause any 
errors with Hadoop 3.3.6 3.4.0.  |
   | +1 :green_heart: |  spotless  |   1m  8s |  |  patch has no errors when 
running spotless:check.  |
    _ Other Tests _ |
   | +1 :green_heart: |  asflicense  |   0m 25s |  |  The patch does not 
generate ASF License warnings.  |
   |  |   |  91m 20s |  |  |
   
   
   | Subsystem | Report/Notes |
   |--:|:-|
   | Docker | ClientAPI=1.43 ServerAPI=1.43 base: 
https://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-6717/1/artifact/yetus-general-check/output/Dockerfile
 |
   | GITHUB PR | https://github.com/apache/hbase/pull/6717 |
   | JIRA Issue | HBASE-29133 |
   | Optional Tests | dupname asflicense codespell detsecrets shellcheck 
shelldocs spotless javac spotbugs checkstyle compile hadoopcheck hbaseanti |
   | uname | Linux 35ff8a72c6c1 5.4.0-1103-aws #111~18.04.1-Ubuntu SMP Tue May 
23 20:04:10 UTC 2023 x86_64 x86_64 x86_64 GNU/Linux |
   | Build tool | maven |
   | Personality | dev-support/hbase-personality.sh |
   | git revision | HBASE-28957 / 606ff9eb584d65c2d751fa34732f2bbec2c34f45 |
   | Default Java | Eclipse Adoptium-17.0.11+9 |
   | Max. process+thread count | 188 (vs. ulimit of 3) |
   | modules | C: hbase-backup . U: . |
   | Console output | 
https://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-6717/1/console 
|
   | versions | git=2.34.1 maven=3.9.8 spotbugs=4.7.3 shellcheck=0.8.0 |
   | Powered by | Apache Yetus 0.15.0 https://yetus.apache.org |
   
   
   This message was automatically generated.
   
   


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]