Re: [PR] HBASE-29328: Implement new HBase command: refresh_hfiles [hbase]

2025-09-20 Thread via GitHub


sharmaar12 commented on code in PR #7149:
URL: https://github.com/apache/hbase/pull/7149#discussion_r2332563185


##
hbase-server/src/main/java/org/apache/hadoop/hbase/master/procedure/RefreshHFilesTableProcedure.java:
##
@@ -0,0 +1,173 @@
+/*
+ * 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.master.procedure;
+
+import java.io.IOException;
+import java.util.List;
+import org.apache.hadoop.hbase.TableName;
+import org.apache.hadoop.hbase.client.TableDescriptor;
+import org.apache.hadoop.hbase.procedure2.ProcedureStateSerializer;
+import org.apache.yetus.audience.InterfaceAudience;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+import org.apache.hadoop.hbase.shaded.protobuf.ProtobufUtil;
+import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProcedureProtos;
+import 
org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProcedureProtos.RefreshHFilesTableProcedureState;
+
[email protected]
+public class RefreshHFilesTableProcedure
+  extends AbstractStateMachineTableProcedure 
{
+  private static final Logger LOG = 
LoggerFactory.getLogger(RefreshHFilesTableProcedure.class);
+
+  private TableName tableName;
+  private String namespaceName;
+
+  public RefreshHFilesTableProcedure() {
+super();
+  }
+
+  public RefreshHFilesTableProcedure(MasterProcedureEnv env) {
+super(env);
+  }
+
+  public RefreshHFilesTableProcedure(MasterProcedureEnv env, TableName 
tableName) {
+super(env);
+this.tableName = tableName;
+  }
+
+  public RefreshHFilesTableProcedure(MasterProcedureEnv env, String 
namespaceName) {
+super(env);
+this.namespaceName = namespaceName;
+  }
+
+  @Override
+  public TableOperationType getTableOperationType() {
+return TableOperationType.REFRESH_HFILES;
+  }
+
+  @Override
+  protected void serializeStateData(ProcedureStateSerializer serializer) 
throws IOException {
+super.serializeStateData(serializer);
+MasterProcedureProtos.RefreshHFilesTableProcedureStateData.Builder builder 
=
+  MasterProcedureProtos.RefreshHFilesTableProcedureStateData.newBuilder();
+if (tableName != null && namespaceName == null) {
+  builder.setTableName(ProtobufUtil.toProtoTableName(tableName));
+} else if (tableName == null && namespaceName != null) {
+  builder.setNamespaceName(namespaceName);
+}
+serializer.serialize(builder.build());
+  }
+
+  @Override
+  protected void deserializeStateData(ProcedureStateSerializer serializer) 
throws IOException {
+super.deserializeStateData(serializer);
+MasterProcedureProtos.RefreshHFilesTableProcedureStateData data =
+  
serializer.deserialize(MasterProcedureProtos.RefreshHFilesTableProcedureStateData.class);
+if (data.hasTableName() && !data.hasNamespaceName()) {
+  this.tableName = ProtobufUtil.toTableName(data.getTableName());
+} else if (!data.hasTableName() && data.hasNamespaceName()) {
+  this.namespaceName = data.getNamespaceName();
+}
+  }
+
+  @Override
+  public TableName getTableName() {
+if (tableName != null && namespaceName == null) {
+  return tableName;
+}
+return DUMMY_NAMESPACE_TABLE_NAME;
+  }
+
+  @Override
+  protected RefreshHFilesTableProcedureState getInitialState() {
+return RefreshHFilesTableProcedureState.REFRESH_HFILES_PREPARE;
+  }
+
+  @Override
+  protected int getStateId(RefreshHFilesTableProcedureState state) {
+return state.getNumber();
+  }
+
+  @Override
+  protected RefreshHFilesTableProcedureState getState(int stateId) {
+return RefreshHFilesTableProcedureState.forNumber(stateId);
+  }
+
+  @Override
+  protected void rollbackState(MasterProcedureEnv env, 
RefreshHFilesTableProcedureState state)
+throws IOException, InterruptedException {
+// Refresh HFiles is idempotent operation hence rollback is not needed
+LOG.trace("Rollback not implemented for RefreshHFilesTableProcedure state: 
{}", state);
+  }
+
+  @Override
+  protected Flow executeFromState(MasterProcedureEnv env, 
RefreshHFilesTableProcedureState state) {
+LOG.info("Executing RefreshHFilesTableProcedureState state: {}", state);
+
+try {
+  return switch (state) {
+case 

Re: [PR] HBASE-29328: Implement new HBase command: refresh_hfiles [hbase]

2025-09-18 Thread via GitHub


sharmaar12 commented on code in PR #7149:
URL: https://github.com/apache/hbase/pull/7149#discussion_r2332230822


##
hbase-server/src/main/java/org/apache/hadoop/hbase/master/procedure/RefreshHFilesTableProcedure.java:
##
@@ -0,0 +1,173 @@
+/*
+ * 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.master.procedure;
+
+import java.io.IOException;
+import java.util.List;
+import org.apache.hadoop.hbase.TableName;
+import org.apache.hadoop.hbase.client.TableDescriptor;
+import org.apache.hadoop.hbase.procedure2.ProcedureStateSerializer;
+import org.apache.yetus.audience.InterfaceAudience;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+import org.apache.hadoop.hbase.shaded.protobuf.ProtobufUtil;
+import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProcedureProtos;
+import 
org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProcedureProtos.RefreshHFilesTableProcedureState;
+
[email protected]
+public class RefreshHFilesTableProcedure
+  extends AbstractStateMachineTableProcedure 
{
+  private static final Logger LOG = 
LoggerFactory.getLogger(RefreshHFilesTableProcedure.class);
+
+  private TableName tableName;
+  private String namespaceName;
+
+  public RefreshHFilesTableProcedure() {
+super();
+  }
+
+  public RefreshHFilesTableProcedure(MasterProcedureEnv env) {
+super(env);
+  }
+
+  public RefreshHFilesTableProcedure(MasterProcedureEnv env, TableName 
tableName) {
+super(env);
+this.tableName = tableName;
+  }
+
+  public RefreshHFilesTableProcedure(MasterProcedureEnv env, String 
namespaceName) {
+super(env);
+this.namespaceName = namespaceName;
+  }
+
+  @Override
+  public TableOperationType getTableOperationType() {
+return TableOperationType.REFRESH_HFILES;
+  }
+
+  @Override
+  protected void serializeStateData(ProcedureStateSerializer serializer) 
throws IOException {
+super.serializeStateData(serializer);
+MasterProcedureProtos.RefreshHFilesTableProcedureStateData.Builder builder 
=
+  MasterProcedureProtos.RefreshHFilesTableProcedureStateData.newBuilder();
+if (tableName != null && namespaceName == null) {
+  builder.setTableName(ProtobufUtil.toProtoTableName(tableName));
+} else if (tableName == null && namespaceName != null) {
+  builder.setNamespaceName(namespaceName);
+}
+serializer.serialize(builder.build());
+  }
+
+  @Override
+  protected void deserializeStateData(ProcedureStateSerializer serializer) 
throws IOException {
+super.deserializeStateData(serializer);
+MasterProcedureProtos.RefreshHFilesTableProcedureStateData data =
+  
serializer.deserialize(MasterProcedureProtos.RefreshHFilesTableProcedureStateData.class);
+if (data.hasTableName() && !data.hasNamespaceName()) {
+  this.tableName = ProtobufUtil.toTableName(data.getTableName());
+} else if (!data.hasTableName() && data.hasNamespaceName()) {
+  this.namespaceName = data.getNamespaceName();
+}
+  }
+
+  @Override
+  public TableName getTableName() {
+if (tableName != null && namespaceName == null) {
+  return tableName;
+}
+return DUMMY_NAMESPACE_TABLE_NAME;
+  }
+
+  @Override
+  protected RefreshHFilesTableProcedureState getInitialState() {
+return RefreshHFilesTableProcedureState.REFRESH_HFILES_PREPARE;
+  }
+
+  @Override
+  protected int getStateId(RefreshHFilesTableProcedureState state) {
+return state.getNumber();
+  }
+
+  @Override
+  protected RefreshHFilesTableProcedureState getState(int stateId) {
+return RefreshHFilesTableProcedureState.forNumber(stateId);
+  }
+
+  @Override
+  protected void rollbackState(MasterProcedureEnv env, 
RefreshHFilesTableProcedureState state)
+throws IOException, InterruptedException {
+// Refresh HFiles is idempotent operation hence rollback is not needed
+LOG.trace("Rollback not implemented for RefreshHFilesTableProcedure state: 
{}", state);
+  }
+
+  @Override
+  protected Flow executeFromState(MasterProcedureEnv env, 
RefreshHFilesTableProcedureState state) {
+LOG.info("Executing RefreshHFilesTableProcedureState state: {}", state);
+
+try {
+  return switch (state) {
+case 

Re: [PR] HBASE-29328: Implement new HBase command: refresh_hfiles [hbase]

2025-09-17 Thread via GitHub


sharmaar12 commented on code in PR #7149:
URL: https://github.com/apache/hbase/pull/7149#discussion_r2332623476


##
hbase-server/src/test/java/org/apache/hadoop/hbase/client/TestRefreshHFilesFromClient.java:
##
@@ -0,0 +1,199 @@
+/*
+ * 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.client;
+
+import static 
org.apache.hadoop.hbase.client.AsyncConnectionConfiguration.START_LOG_ERRORS_AFTER_COUNT_KEY;
+import static org.junit.Assert.assertTrue;
+
+import java.util.Arrays;
+import org.apache.hadoop.conf.Configuration;
+import org.apache.hadoop.hbase.HBaseClassTestRule;
+import org.apache.hadoop.hbase.HBaseTestingUtil;
+import org.apache.hadoop.hbase.HConstants;
+import org.apache.hadoop.hbase.NamespaceDescriptor;
+import org.apache.hadoop.hbase.NamespaceNotFoundException;
+import org.apache.hadoop.hbase.TableName;
+import org.apache.hadoop.hbase.TableNotFoundException;
+import org.apache.hadoop.hbase.testclassification.ClientTests;
+import org.apache.hadoop.hbase.testclassification.MediumTests;
+import org.apache.hadoop.hbase.util.Bytes;
+import org.junit.After;
+import org.junit.Assert;
+import org.junit.Before;
+import org.junit.ClassRule;
+import org.junit.Test;
+import org.junit.experimental.categories.Category;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+import org.apache.hbase.thirdparty.com.google.common.io.Closeables;
+
+@Category({ MediumTests.class, ClientTests.class })
+public class TestRefreshHFilesFromClient {
+  @ClassRule
+  public static final HBaseClassTestRule CLASS_RULE =
+HBaseClassTestRule.forClass(TestRefreshHFilesFromClient.class);
+
+  private static final Logger LOG = 
LoggerFactory.getLogger(TestRefreshHFilesFromClient.class);
+  private final static HBaseTestingUtil TEST_UTIL = new HBaseTestingUtil();
+  private static AsyncConnection asyncConn;
+  private static Admin admin;
+  private static Configuration conf;
+  private static final TableName TEST_TABLE = 
TableName.valueOf("testRefreshHFilesTable");
+  private static final TableName TEST_INVALID_TABLE =
+TableName.valueOf("testRefreshHFilesInvalidTable");
+  private static final String TEST_NAMESPACE = "testRefreshHFilesNamespace";
+  private static final String TEST_INVALID_NAMESPACE = 
"testRefreshHFilesInvalidNamespace";

Review Comment:
   Done.



##
hbase-server/src/test/java/org/apache/hadoop/hbase/client/TestRefreshHFilesFromClient.java:
##
@@ -0,0 +1,199 @@
+/*
+ * 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.client;
+
+import static 
org.apache.hadoop.hbase.client.AsyncConnectionConfiguration.START_LOG_ERRORS_AFTER_COUNT_KEY;
+import static org.junit.Assert.assertTrue;
+
+import java.util.Arrays;
+import org.apache.hadoop.conf.Configuration;
+import org.apache.hadoop.hbase.HBaseClassTestRule;
+import org.apache.hadoop.hbase.HBaseTestingUtil;
+import org.apache.hadoop.hbase.HConstants;
+import org.apache.hadoop.hbase.NamespaceDescriptor;
+import org.apache.hadoop.hbase.NamespaceNotFoundException;
+import org.apache.hadoop.hbase.TableName;
+import org.apache.hadoop.hbase.TableNotFoundException;
+import org.apache.hadoop.hbase.testclassification.ClientTests;
+import org.apache.hadoop.hbase.testclassification.MediumTests;
+import org.apache.hadoop.hbase.util.Bytes;
+import org.junit.After;
+import org.junit.Assert;
+import org.junit.Before;
+import org.junit.ClassRule;
+import 

Re: [PR] HBASE-29328: Implement new HBase command: refresh_hfiles [hbase]

2025-09-17 Thread via GitHub


sharmaar12 commented on PR #7149:
URL: https://github.com/apache/hbase/pull/7149#issuecomment-3269446290

   > To be honest I cannot see in this code where the actual refresh happens. I 
see that how the procedure is getting executed on the affected regions, but 
where do we refresh the hfiles from disk? Where do we make a list of available 
HFiles from the filesystem?
   
   The refresh HFiles is happening in doCall() of 
[RefreshHFilesCallable.java](https://github.com/apache/hbase/pull/7149/files#diff-8513defcad3eb06c40f0857b688de77aba68f12a59048944cdd6314c937d051d).
 The exact code snippet responsible for this is:
   ```
for (Store store : region.getStores()) {
   store.refreshStoreFiles();
 }
   ```
   


-- 
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-29328: Implement new HBase command: refresh_hfiles [hbase]

2025-09-15 Thread via GitHub


anmolnar merged PR #7149:
URL: https://github.com/apache/hbase/pull/7149


-- 
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-29328: Implement new HBase command: refresh_hfiles [hbase]

2025-09-12 Thread via GitHub


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


##
hbase-server/src/main/java/org/apache/hadoop/hbase/master/procedure/RefreshHFilesRegionProcedure.java:
##
@@ -0,0 +1,132 @@
+/*
+ * 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.master.procedure;
+
+import java.io.IOException;
+import java.util.Optional;
+import org.apache.hadoop.hbase.ServerName;
+import org.apache.hadoop.hbase.TableName;
+import org.apache.hadoop.hbase.client.RegionInfo;
+import org.apache.hadoop.hbase.master.assignment.RegionStateNode;
+import org.apache.hadoop.hbase.master.assignment.RegionStates;
+import org.apache.hadoop.hbase.procedure2.FailedRemoteDispatchException;
+import org.apache.hadoop.hbase.procedure2.Procedure;
+import org.apache.hadoop.hbase.procedure2.ProcedureStateSerializer;
+import org.apache.hadoop.hbase.procedure2.ProcedureSuspendedException;
+import org.apache.hadoop.hbase.procedure2.ProcedureYieldException;
+import org.apache.hadoop.hbase.procedure2.RemoteProcedureDispatcher;
+import org.apache.hadoop.hbase.procedure2.RemoteProcedureException;
+import org.apache.hadoop.hbase.regionserver.RefreshHFilesCallable;
+import org.apache.yetus.audience.InterfaceAudience;
+
+import org.apache.hadoop.hbase.shaded.protobuf.ProtobufUtil;
+import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProcedureProtos;
+
[email protected]
+public class RefreshHFilesRegionProcedure extends Procedure
+  implements TableProcedureInterface,
+  RemoteProcedureDispatcher.RemoteProcedure {
+  private RegionInfo region;
+
+  public RefreshHFilesRegionProcedure() {
+  }
+
+  public RefreshHFilesRegionProcedure(RegionInfo region) {
+this.region = region;
+  }
+
+  @Override
+  protected void deserializeStateData(ProcedureStateSerializer serializer) 
throws IOException {
+MasterProcedureProtos.RefreshHFilesRegionProcedureStateData data =
+  
serializer.deserialize(MasterProcedureProtos.RefreshHFilesRegionProcedureStateData.class);
+this.region = ProtobufUtil.toRegionInfo(data.getRegion());
+// TODO Get the Data from region server
+  }
+
+  @Override
+  protected void serializeStateData(ProcedureStateSerializer serializer) 
throws IOException {
+MasterProcedureProtos.RefreshHFilesRegionProcedureStateData.Builder 
builder =
+  MasterProcedureProtos.RefreshHFilesRegionProcedureStateData.newBuilder();
+builder.setRegion(ProtobufUtil.toRegionInfo(region));
+// TODO add data that you want to pass to region server
+serializer.serialize(builder.build());
+  }
+
+  @Override
+  protected boolean abort(MasterProcedureEnv env) {
+return false;
+  }
+
+  @Override
+  protected void rollback(MasterProcedureEnv env) throws IOException, 
InterruptedException {
+throw new UnsupportedOperationException();
+  }
+
+  @Override
+  protected Procedure[] execute(MasterProcedureEnv env)
+throws ProcedureYieldException, ProcedureSuspendedException, 
InterruptedException {
+RegionStates regionStates = env.getAssignmentManager().getRegionStates();
+RegionStateNode regionNode = regionStates.getRegionStateNode(region);

Review Comment:
   Based on AWS 
[blogpost](https://aws.amazon.com/blogs/big-data/setting-up-read-replica-clusters-with-hbase-on-amazon-s3/)
 compactions can be enabled on the active cluster, however I don't fully 
understand the following statement:
   
   > On the primary cluster:
   > If compactions are enabled, run a compaction to avoid inconsistencies when 
major compactions are triggered (minor compactions are handled).
   
   Run a compaction where? On the active/primary cluster? What does "minor 
compactions are handled" mean?
   
   Anyway, I think anything could happen on the active cluster with regions and 
HFiles, therefore clients of the read replica cluster should be prepared for 
all kinds of read errors. In order to get the read replica cluster consistent 
with the primary user has to manually run the following steps (as mentioned in 
AWS blogpost too):
   
   On the read replica:
   1. Run ‘refresh_hfiles’ when: Records are added/modified for a table.
   2. Run ‘refresh_meta’ when: Regions have 

Re: [PR] HBASE-29328: Implement new HBase command: refresh_hfiles [hbase]

2025-09-12 Thread via GitHub


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

   The same scenario works fine with SFT turned off.


-- 
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-29328: Implement new HBase command: refresh_hfiles [hbase]

2025-09-11 Thread via GitHub


sharmaar12 commented on code in PR #7149:
URL: https://github.com/apache/hbase/pull/7149#discussion_r2332612251


##
hbase-server/src/test/java/org/apache/hadoop/hbase/client/TestRefreshHFilesFromClient.java:
##
@@ -0,0 +1,199 @@
+/*
+ * 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.client;
+
+import static 
org.apache.hadoop.hbase.client.AsyncConnectionConfiguration.START_LOG_ERRORS_AFTER_COUNT_KEY;
+import static org.junit.Assert.assertTrue;
+
+import java.util.Arrays;
+import org.apache.hadoop.conf.Configuration;
+import org.apache.hadoop.hbase.HBaseClassTestRule;
+import org.apache.hadoop.hbase.HBaseTestingUtil;
+import org.apache.hadoop.hbase.HConstants;
+import org.apache.hadoop.hbase.NamespaceDescriptor;
+import org.apache.hadoop.hbase.NamespaceNotFoundException;
+import org.apache.hadoop.hbase.TableName;
+import org.apache.hadoop.hbase.TableNotFoundException;
+import org.apache.hadoop.hbase.testclassification.ClientTests;
+import org.apache.hadoop.hbase.testclassification.MediumTests;
+import org.apache.hadoop.hbase.util.Bytes;
+import org.junit.After;
+import org.junit.Assert;
+import org.junit.Before;
+import org.junit.ClassRule;
+import org.junit.Test;
+import org.junit.experimental.categories.Category;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+import org.apache.hbase.thirdparty.com.google.common.io.Closeables;
+
+@Category({ MediumTests.class, ClientTests.class })
+public class TestRefreshHFilesFromClient {
+  @ClassRule
+  public static final HBaseClassTestRule CLASS_RULE =
+HBaseClassTestRule.forClass(TestRefreshHFilesFromClient.class);
+
+  private static final Logger LOG = 
LoggerFactory.getLogger(TestRefreshHFilesFromClient.class);
+  private final static HBaseTestingUtil TEST_UTIL = new HBaseTestingUtil();
+  private static AsyncConnection asyncConn;
+  private static Admin admin;
+  private static Configuration conf;
+  private static final TableName TEST_TABLE = 
TableName.valueOf("testRefreshHFilesTable");
+  private static final TableName TEST_INVALID_TABLE =
+TableName.valueOf("testRefreshHFilesInvalidTable");
+  private static final String TEST_NAMESPACE = "testRefreshHFilesNamespace";
+  private static final String TEST_INVALID_NAMESPACE = 
"testRefreshHFilesInvalidNamespace";
+  private static final String TEST_TABLE_IN_NAMESPACE = TEST_NAMESPACE + 
":testTableInNamespace";
+  private static final byte[] TEST_FAMILY = 
Bytes.toBytes("testRefreshHFilesCF1");
+
+  @Before
+  public void setUp() throws Exception {
+conf = TEST_UTIL.getConfiguration();
+conf.setInt(HConstants.HBASE_RPC_TIMEOUT_KEY, 6);
+conf.setInt(HConstants.HBASE_CLIENT_OPERATION_TIMEOUT, 12);
+conf.setInt(HConstants.HBASE_CLIENT_RETRIES_NUMBER, 1);
+conf.setInt(START_LOG_ERRORS_AFTER_COUNT_KEY, 0);
+conf.setInt(HConstants.ZK_SESSION_TIMEOUT, 1000);
+
+// Start the test cluster
+TEST_UTIL.startMiniCluster(1);
+asyncConn = 
ConnectionFactory.createAsyncConnection(TEST_UTIL.getConfiguration()).get();
+admin = TEST_UTIL.getAdmin();
+  }
+
+  @After
+  public void tearDown() throws Exception {
+Closeables.close(asyncConn, true);
+TEST_UTIL.shutdownMiniCluster();
+  }
+
+  private void createNamespace(String namespace) throws RuntimeException {
+try {
+  final NamespaceDescriptor nsd = 
NamespaceDescriptor.create(namespace).build();
+  // Create the namespace if it doesn’t exist
+  if (
+Arrays.stream(admin.listNamespaceDescriptors())
+  .noneMatch(ns -> ns.getName().equals(namespace))
+  ) {
+admin.createNamespace(nsd);
+  }
+} catch (Exception e) {
+  throw new RuntimeException(e);
+}
+  }
+
+  private void deleteNamespace(String namespace) {
+try {
+  // List table in namespace
+  TableName[] tables = admin.listTableNamesByNamespace(namespace);
+  for (TableName t : tables) {
+TEST_UTIL.deleteTableIfAny(t);
+  }
+  // Now delete the namespace
+  admin.deleteNamespace(namespace);
+} catch (Exception e) {
+  LOG.debug(
+"Unable to delete namespace " + namespace + " post test execution. 
This isn't a failure");
+}
+  }

Re: [PR] HBASE-29328: Implement new HBase command: refresh_hfiles [hbase]

2025-09-11 Thread via GitHub


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

   :broken_heart: **-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: |  buf  |   0m  0s |  |  buf was not available.  |
   | +0 :ok: |  buf  |   0m  0s |  |  buf 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-29081 Compile Tests _ |
   | +0 :ok: |  mvndep  |   0m 36s |  |  Maven dependency ordering for branch  |
   | +1 :green_heart: |  mvninstall  |   3m 22s |  |  HBASE-29081 passed  |
   | +1 :green_heart: |  compile  |   6m 25s |  |  HBASE-29081 passed  |
   | -0 :warning: |  checkstyle  |   0m 15s | 
[/buildtool-branch-checkstyle-hbase-server.txt](https://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-7149/18/artifact/yetus-general-check/output/buildtool-branch-checkstyle-hbase-server.txt)
 |  The patch fails to run checkstyle in hbase-server  |
   | +1 :green_heart: |  spotbugs  |   6m 23s |  |  HBASE-29081 passed  |
   | +1 :green_heart: |  spotless  |   0m 47s |  |  branch has no errors when 
running spotless:check.  |
    _ Patch Compile Tests _ |
   | +0 :ok: |  mvndep  |   0m 12s |  |  Maven dependency ordering for patch  |
   | +1 :green_heart: |  mvninstall  |   3m  6s |  |  the patch passed  |
   | +1 :green_heart: |  compile  |   6m 24s |  |  the patch passed  |
   | +1 :green_heart: |  cc  |   6m 24s |  |  the patch passed  |
   | +1 :green_heart: |  javac  |   6m 24s |  |  the patch passed  |
   | +1 :green_heart: |  blanks  |   0m  0s |  |  The patch has no blanks 
issues.  |
   | -0 :warning: |  checkstyle  |   0m 14s | 
[/buildtool-patch-checkstyle-hbase-server.txt](https://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-7149/18/artifact/yetus-general-check/output/buildtool-patch-checkstyle-hbase-server.txt)
 |  The patch fails to run checkstyle in hbase-server  |
   | -0 :warning: |  rubocop  |   0m 20s | 
[/results-rubocop.txt](https://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-7149/18/artifact/yetus-general-check/output/results-rubocop.txt)
 |  The patch generated 15 new + 447 unchanged - 0 fixed = 462 total (was 447)  
|
   | +1 :green_heart: |  spotbugs  |   7m  1s |  |  the patch passed  |
   | +1 :green_heart: |  hadoopcheck  |  11m 43s |  |  Patch does not cause any 
errors with Hadoop 3.3.6 3.4.0.  |
   | +1 :green_heart: |  hbaseprotoc  |   2m 33s |  |  the patch passed  |
   | -1 :x: |  spotless  |   0m 21s |  |  patch has 21 errors when running 
spotless:check, run spotless:apply to fix.  |
    _ Other Tests _ |
   | +1 :green_heart: |  asflicense  |   0m 55s |  |  The patch does not 
generate ASF License warnings.  |
   |  |   |  62m  7s |  |  |
   
   
   | Subsystem | Report/Notes |
   |--:|:-|
   | Docker | ClientAPI=1.43 ServerAPI=1.43 base: 
https://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-7149/18/artifact/yetus-general-check/output/Dockerfile
 |
   | GITHUB PR | https://github.com/apache/hbase/pull/7149 |
   | JIRA Issue | HBASE-29328 |
   | Optional Tests | dupname asflicense javac spotbugs checkstyle codespell 
detsecrets compile hadoopcheck hbaseanti spotless cc buflint bufcompat 
hbaseprotoc rubocop |
   | uname | Linux d08e9a4acfa9 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-29081 / 59ca0106677b9c8f27e70e2377cd874a1d87a557 |
   | Default Java | Eclipse Adoptium-17.0.11+9 |
   | spotless | 
https://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-7149/18/artifact/yetus-general-check/output/patch-spotless.txt
 |
   | Max. process+thread count | 86 (vs. ulimit of 3) |
   | modules | C: hbase-protocol-shaded hbase-client hbase-server hbase-thrift 
hbase-shell hbase-examples U: . |
   | Console output | 
https://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-7149/18/console
 |
   | versions | git=2.34.1 maven=3.9.8 spotbugs=4.7.3 rubocop=1.37.1 |
   | 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: 

Re: [PR] HBASE-29328: Implement new HBase command: refresh_hfiles [hbase]

2025-09-11 Thread via GitHub


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

   :confetti_ball: **+1 overall**
   
   
   
   
   
   
   | Vote | Subsystem | Runtime |  Logfile | Comment |
   |::|--:|:|::|:---:|
   | +0 :ok: |  reexec  |   0m 36s |  |  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-29081 Compile Tests _ |
   | +0 :ok: |  mvndep  |   0m 13s |  |  Maven dependency ordering for branch  |
   | +1 :green_heart: |  mvninstall  |   3m 11s |  |  HBASE-29081 passed  |
   | +1 :green_heart: |  compile  |   3m 42s |  |  HBASE-29081 passed  |
   | +1 :green_heart: |  javadoc  |   2m 31s |  |  HBASE-29081 passed  |
   | +1 :green_heart: |  shadedjars  |   6m 42s |  |  branch has no errors when 
building our shaded downstream artifacts.  |
    _ Patch Compile Tests _ |
   | +0 :ok: |  mvndep  |   0m 16s |  |  Maven dependency ordering for patch  |
   | +1 :green_heart: |  mvninstall  |   3m 42s |  |  the patch passed  |
   | +1 :green_heart: |  compile  |   2m 57s |  |  the patch passed  |
   | +1 :green_heart: |  javac  |   2m 57s |  |  the patch passed  |
   | +1 :green_heart: |  javadoc  |   1m 53s |  |  the patch passed  |
   | +1 :green_heart: |  shadedjars  |   6m  3s |  |  patch has no errors when 
building our shaded downstream artifacts.  |
    _ Other Tests _ |
   | +1 :green_heart: |  unit  |   0m 34s |  |  hbase-protocol-shaded in the 
patch passed.  |
   | +1 :green_heart: |  unit  |   1m 34s |  |  hbase-client in the patch 
passed.  |
   | +1 :green_heart: |  unit  | 230m 59s |  |  hbase-server in the patch 
passed.  |
   | +1 :green_heart: |  unit  |   7m 52s |  |  hbase-thrift in the patch 
passed.  |
   | +1 :green_heart: |  unit  |   6m 57s |  |  hbase-shell in the patch 
passed.  |
   | +1 :green_heart: |  unit  |   1m 54s |  |  hbase-examples in the patch 
passed.  |
   |  |   | 288m  0s |  |  |
   
   
   | Subsystem | Report/Notes |
   |--:|:-|
   | Docker | ClientAPI=1.43 ServerAPI=1.43 base: 
https://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-7149/19/artifact/yetus-jdk17-hadoop3-check/output/Dockerfile
 |
   | GITHUB PR | https://github.com/apache/hbase/pull/7149 |
   | JIRA Issue | HBASE-29328 |
   | Optional Tests | javac javadoc unit compile shadedjars |
   | uname | Linux 0b93902ee750 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-29081 / 59ca0106677b9c8f27e70e2377cd874a1d87a557 |
   | Default Java | Eclipse Adoptium-17.0.11+9 |
   |  Test Results | 
https://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-7149/19/testReport/
 |
   | Max. process+thread count | 4058 (vs. ulimit of 3) |
   | modules | C: hbase-protocol-shaded hbase-client hbase-server hbase-thrift 
hbase-shell hbase-examples U: . |
   | Console output | 
https://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-7149/19/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-29328: Implement new HBase command: refresh_hfiles [hbase]

2025-09-11 Thread via GitHub


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

   :broken_heart: **-1 overall**
   
   
   
   
   
   
   | Vote | Subsystem | Runtime |  Logfile | Comment |
   |::|--:|:|::|:---:|
   | +0 :ok: |  reexec  |   0m 34s |  |  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: |  buf  |   0m  0s |  |  buf was not available.  |
   | +0 :ok: |  buf  |   0m  0s |  |  buf 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-29081 Compile Tests _ |
   | +0 :ok: |  mvndep  |   0m 11s |  |  Maven dependency ordering for branch  |
   | +1 :green_heart: |  mvninstall  |   3m 47s |  |  HBASE-29081 passed  |
   | +1 :green_heart: |  compile  |   7m 14s |  |  HBASE-29081 passed  |
   | -0 :warning: |  checkstyle  |   0m 16s | 
[/buildtool-branch-checkstyle-hbase-server.txt](https://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-7149/19/artifact/yetus-general-check/output/buildtool-branch-checkstyle-hbase-server.txt)
 |  The patch fails to run checkstyle in hbase-server  |
   | +1 :green_heart: |  spotbugs  |   6m 44s |  |  HBASE-29081 passed  |
   | +1 :green_heart: |  spotless  |   0m 44s |  |  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  0s |  |  the patch passed  |
   | +1 :green_heart: |  compile  |   6m 20s |  |  the patch passed  |
   | +1 :green_heart: |  cc  |   6m 20s |  |  the patch passed  |
   | +1 :green_heart: |  javac  |   6m 20s |  |  the patch passed  |
   | +1 :green_heart: |  blanks  |   0m  0s |  |  The patch has no blanks 
issues.  |
   | -0 :warning: |  checkstyle  |   0m 14s | 
[/buildtool-patch-checkstyle-hbase-server.txt](https://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-7149/19/artifact/yetus-general-check/output/buildtool-patch-checkstyle-hbase-server.txt)
 |  The patch fails to run checkstyle in hbase-server  |
   | -0 :warning: |  rubocop  |   0m  8s | 
[/results-rubocop.txt](https://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-7149/19/artifact/yetus-general-check/output/results-rubocop.txt)
 |  The patch generated 15 new + 447 unchanged - 0 fixed = 462 total (was 447)  
|
   | +1 :green_heart: |  spotbugs  |   6m 58s |  |  the patch passed  |
   | +1 :green_heart: |  hadoopcheck  |  11m 34s |  |  Patch does not cause any 
errors with Hadoop 3.3.6 3.4.0.  |
   | +1 :green_heart: |  hbaseprotoc  |   2m 37s |  |  the patch passed  |
   | -1 :x: |  spotless  |   0m 21s |  |  patch has 21 errors when running 
spotless:check, run spotless:apply to fix.  |
    _ Other Tests _ |
   | +1 :green_heart: |  asflicense  |   0m 55s |  |  The patch does not 
generate ASF License warnings.  |
   |  |   |  62m 42s |  |  |
   
   
   | Subsystem | Report/Notes |
   |--:|:-|
   | Docker | ClientAPI=1.43 ServerAPI=1.43 base: 
https://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-7149/19/artifact/yetus-general-check/output/Dockerfile
 |
   | GITHUB PR | https://github.com/apache/hbase/pull/7149 |
   | JIRA Issue | HBASE-29328 |
   | Optional Tests | dupname asflicense javac spotbugs checkstyle codespell 
detsecrets compile hadoopcheck hbaseanti spotless cc buflint bufcompat 
hbaseprotoc rubocop |
   | uname | Linux 95f99106f28f 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-29081 / 59ca0106677b9c8f27e70e2377cd874a1d87a557 |
   | Default Java | Eclipse Adoptium-17.0.11+9 |
   | spotless | 
https://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-7149/19/artifact/yetus-general-check/output/patch-spotless.txt
 |
   | Max. process+thread count | 86 (vs. ulimit of 3) |
   | modules | C: hbase-protocol-shaded hbase-client hbase-server hbase-thrift 
hbase-shell hbase-examples U: . |
   | Console output | 
https://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-7149/19/console
 |
   | versions | git=2.34.1 maven=3.9.8 spotbugs=4.7.3 rubocop=1.37.1 |
   | 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: 

Re: [PR] HBASE-29328: Implement new HBase command: refresh_hfiles [hbase]

2025-09-11 Thread via GitHub


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

   :confetti_ball: **+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-29081 Compile Tests _ |
   | +0 :ok: |  mvndep  |   0m 24s |  |  Maven dependency ordering for branch  |
   | +1 :green_heart: |  mvninstall  |   3m 22s |  |  HBASE-29081 passed  |
   | +1 :green_heart: |  compile  |   2m 54s |  |  HBASE-29081 passed  |
   | +1 :green_heart: |  javadoc  |   1m 50s |  |  HBASE-29081 passed  |
   | +1 :green_heart: |  shadedjars  |   6m 11s |  |  branch has no errors when 
building our shaded downstream artifacts.  |
    _ Patch Compile Tests _ |
   | +0 :ok: |  mvndep  |   0m 13s |  |  Maven dependency ordering for patch  |
   | +1 :green_heart: |  mvninstall  |   3m  8s |  |  the patch passed  |
   | +1 :green_heart: |  compile  |   2m 55s |  |  the patch passed  |
   | +1 :green_heart: |  javac  |   2m 55s |  |  the patch passed  |
   | +1 :green_heart: |  javadoc  |   1m 50s |  |  the patch passed  |
   | +1 :green_heart: |  shadedjars  |   6m 11s |  |  patch has no errors when 
building our shaded downstream artifacts.  |
    _ Other Tests _ |
   | +1 :green_heart: |  unit  |   0m 34s |  |  hbase-protocol-shaded in the 
patch passed.  |
   | +1 :green_heart: |  unit  |   1m 31s |  |  hbase-client in the patch 
passed.  |
   | +1 :green_heart: |  unit  | 236m 20s |  |  hbase-server in the patch 
passed.  |
   | +1 :green_heart: |  unit  |   7m 14s |  |  hbase-thrift in the patch 
passed.  |
   | +1 :green_heart: |  unit  |   6m 55s |  |  hbase-shell in the patch 
passed.  |
   | +1 :green_heart: |  unit  |   1m 52s |  |  hbase-examples in the patch 
passed.  |
   |  |   | 290m 16s |  |  |
   
   
   | Subsystem | Report/Notes |
   |--:|:-|
   | Docker | ClientAPI=1.43 ServerAPI=1.43 base: 
https://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-7149/18/artifact/yetus-jdk17-hadoop3-check/output/Dockerfile
 |
   | GITHUB PR | https://github.com/apache/hbase/pull/7149 |
   | JIRA Issue | HBASE-29328 |
   | Optional Tests | javac javadoc unit compile shadedjars |
   | uname | Linux 1e98f840bb1c 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-29081 / 59ca0106677b9c8f27e70e2377cd874a1d87a557 |
   | Default Java | Eclipse Adoptium-17.0.11+9 |
   |  Test Results | 
https://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-7149/18/testReport/
 |
   | Max. process+thread count | 4642 (vs. ulimit of 3) |
   | modules | C: hbase-protocol-shaded hbase-client hbase-server hbase-thrift 
hbase-shell hbase-examples U: . |
   | Console output | 
https://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-7149/18/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-29328: Implement new HBase command: refresh_hfiles [hbase]

2025-09-10 Thread via GitHub


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

   :broken_heart: **-1 overall**
   
   
   
   
   
   
   | Vote | Subsystem | Runtime |  Logfile | Comment |
   |::|--:|:|::|:---:|
   | +0 :ok: |  reexec  |   0m 36s |  |  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: |  buf  |   0m  0s |  |  buf was not available.  |
   | +0 :ok: |  buf  |   0m  0s |  |  buf 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-29081 Compile Tests _ |
   | +0 :ok: |  mvndep  |   0m 36s |  |  Maven dependency ordering for branch  |
   | +1 :green_heart: |  mvninstall  |   3m 32s |  |  HBASE-29081 passed  |
   | +1 :green_heart: |  compile  |   6m 11s |  |  HBASE-29081 passed  |
   | +1 :green_heart: |  checkstyle  |   1m 50s |  |  HBASE-29081 passed  |
   | +1 :green_heart: |  spotbugs  |   6m 19s |  |  HBASE-29081 passed  |
   | +1 :green_heart: |  spotless  |   0m 48s |  |  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  6s |  |  the patch passed  |
   | +1 :green_heart: |  compile  |   6m  9s |  |  the patch passed  |
   | +1 :green_heart: |  cc  |   6m  9s |  |  the patch passed  |
   | +1 :green_heart: |  javac  |   6m  9s |  |  the patch passed  |
   | +1 :green_heart: |  blanks  |   0m  0s |  |  The patch has no blanks 
issues.  |
   | -0 :warning: |  checkstyle  |   0m 13s | 
[/buildtool-patch-checkstyle-hbase-server.txt](https://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-7149/17/artifact/yetus-general-check/output/buildtool-patch-checkstyle-hbase-server.txt)
 |  The patch fails to run checkstyle in hbase-server  |
   | -0 :warning: |  rubocop  |   0m 19s | 
[/results-rubocop.txt](https://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-7149/17/artifact/yetus-general-check/output/results-rubocop.txt)
 |  The patch generated 15 new + 445 unchanged - 0 fixed = 460 total (was 445)  
|
   | +1 :green_heart: |  spotbugs  |   6m 52s |  |  the patch passed  |
   | +1 :green_heart: |  hadoopcheck  |  12m 16s |  |  Patch does not cause any 
errors with Hadoop 3.3.6 3.4.0.  |
   | +1 :green_heart: |  hbaseprotoc  |   2m 28s |  |  the patch passed  |
   | -1 :x: |  spotless  |   0m 20s |  |  patch has 21 errors when running 
spotless:check, run spotless:apply to fix.  |
    _ Other Tests _ |
   | +1 :green_heart: |  asflicense  |   0m 51s |  |  The patch does not 
generate ASF License warnings.  |
   |  |   |  62m 30s |  |  |
   
   
   | Subsystem | Report/Notes |
   |--:|:-|
   | Docker | ClientAPI=1.43 ServerAPI=1.43 base: 
https://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-7149/17/artifact/yetus-general-check/output/Dockerfile
 |
   | GITHUB PR | https://github.com/apache/hbase/pull/7149 |
   | JIRA Issue | HBASE-29328 |
   | Optional Tests | dupname asflicense javac spotbugs checkstyle codespell 
detsecrets compile hadoopcheck hbaseanti spotless cc buflint bufcompat 
hbaseprotoc rubocop |
   | uname | Linux 7d6fcee022ee 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-29081 / 992751dcc5f099059039e62105696e40d2c44db6 |
   | Default Java | Eclipse Adoptium-17.0.11+9 |
   | spotless | 
https://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-7149/17/artifact/yetus-general-check/output/patch-spotless.txt
 |
   | Max. process+thread count | 86 (vs. ulimit of 3) |
   | modules | C: hbase-protocol-shaded hbase-client hbase-server hbase-thrift 
hbase-shell hbase-examples U: . |
   | Console output | 
https://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-7149/17/console
 |
   | versions | git=2.34.1 maven=3.9.8 spotbugs=4.7.3 rubocop=1.37.1 |
   | 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-29328: Implement new HBase command: refresh_hfiles [hbase]

2025-09-10 Thread via GitHub


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

   :confetti_ball: **+1 overall**
   
   
   
   
   
   
   | Vote | Subsystem | Runtime |  Logfile | Comment |
   |::|--:|:|::|:---:|
   | +0 :ok: |  reexec  |   0m 31s |  |  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-29081 Compile Tests _ |
   | +0 :ok: |  mvndep  |   0m 12s |  |  Maven dependency ordering for branch  |
   | +1 :green_heart: |  mvninstall  |   3m 20s |  |  HBASE-29081 passed  |
   | +1 :green_heart: |  compile  |   2m 57s |  |  HBASE-29081 passed  |
   | +1 :green_heart: |  javadoc  |   1m 52s |  |  HBASE-29081 passed  |
   | +1 :green_heart: |  shadedjars  |   6m 18s |  |  branch has no errors when 
building our shaded downstream artifacts.  |
    _ Patch Compile Tests _ |
   | +0 :ok: |  mvndep  |   0m 14s |  |  Maven dependency ordering for patch  |
   | +1 :green_heart: |  mvninstall  |   3m 10s |  |  the patch passed  |
   | +1 :green_heart: |  compile  |   2m 56s |  |  the patch passed  |
   | +1 :green_heart: |  javac  |   2m 56s |  |  the patch passed  |
   | +1 :green_heart: |  javadoc  |   1m 48s |  |  the patch passed  |
   | +1 :green_heart: |  shadedjars  |   6m 13s |  |  patch has no errors when 
building our shaded downstream artifacts.  |
    _ Other Tests _ |
   | +1 :green_heart: |  unit  |   0m 33s |  |  hbase-protocol-shaded in the 
patch passed.  |
   | +1 :green_heart: |  unit  |   1m 32s |  |  hbase-client in the patch 
passed.  |
   | +1 :green_heart: |  unit  | 242m 58s |  |  hbase-server in the patch 
passed.  |
   | +1 :green_heart: |  unit  |   7m 32s |  |  hbase-thrift in the patch 
passed.  |
   | +1 :green_heart: |  unit  |   6m 54s |  |  hbase-shell in the patch 
passed.  |
   | +1 :green_heart: |  unit  |   1m 53s |  |  hbase-examples in the patch 
passed.  |
   |  |   | 297m 13s |  |  |
   
   
   | Subsystem | Report/Notes |
   |--:|:-|
   | Docker | ClientAPI=1.43 ServerAPI=1.43 base: 
https://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-7149/17/artifact/yetus-jdk17-hadoop3-check/output/Dockerfile
 |
   | GITHUB PR | https://github.com/apache/hbase/pull/7149 |
   | JIRA Issue | HBASE-29328 |
   | Optional Tests | javac javadoc unit compile shadedjars |
   | uname | Linux d66b12c982b4 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-29081 / 992751dcc5f099059039e62105696e40d2c44db6 |
   | Default Java | Eclipse Adoptium-17.0.11+9 |
   |  Test Results | 
https://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-7149/17/testReport/
 |
   | Max. process+thread count | 3525 (vs. ulimit of 3) |
   | modules | C: hbase-protocol-shaded hbase-client hbase-server hbase-thrift 
hbase-shell hbase-examples U: . |
   | Console output | 
https://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-7149/17/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-29328: Implement new HBase command: refresh_hfiles [hbase]

2025-09-10 Thread via GitHub


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

   :broken_heart: **-1 overall**
   
   
   
   
   
   
   | Vote | Subsystem | Runtime |  Logfile | Comment |
   |::|--:|:|::|:---:|
   | +0 :ok: |  reexec  |   0m 42s |  |  Docker mode activated.  |
   | -0 :warning: |  yetus  |   0m  4s |  |  Unprocessed flag(s): 
--brief-report-file --spotbugs-strict-precheck --author-ignore-list 
--blanks-eol-ignore-file --blanks-tabs-ignore-file --quick-hadoopcheck  |
    _ Prechecks _ |
    _ HBASE-29081 Compile Tests _ |
   | +0 :ok: |  mvndep  |   0m 12s |  |  Maven dependency ordering for branch  |
   | +1 :green_heart: |  mvninstall  |   4m 10s |  |  HBASE-29081 passed  |
   | +1 :green_heart: |  compile  |   3m 50s |  |  HBASE-29081 passed  |
   | +1 :green_heart: |  javadoc  |   2m 33s |  |  HBASE-29081 passed  |
   | +1 :green_heart: |  shadedjars  |   7m 21s |  |  branch has no errors when 
building our shaded downstream artifacts.  |
    _ Patch Compile Tests _ |
   | +0 :ok: |  mvndep  |   0m 15s |  |  Maven dependency ordering for patch  |
   | +1 :green_heart: |  mvninstall  |   4m  5s |  |  the patch passed  |
   | +1 :green_heart: |  compile  |   3m 39s |  |  the patch passed  |
   | +1 :green_heart: |  javac  |   3m 39s |  |  the patch passed  |
   | +1 :green_heart: |  javadoc  |   2m 27s |  |  the patch passed  |
   | +1 :green_heart: |  shadedjars  |   7m 28s |  |  patch has no errors when 
building our shaded downstream artifacts.  |
    _ Other Tests _ |
   | +1 :green_heart: |  unit  |   0m 44s |  |  hbase-protocol-shaded in the 
patch passed.  |
   | +1 :green_heart: |  unit  |   2m  8s |  |  hbase-client in the patch 
passed.  |
   | -1 :x: |  unit  |  17m 33s | 
[/patch-unit-hbase-server.txt](https://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-7149/16/artifact/yetus-jdk17-hadoop3-check/output/patch-unit-hbase-server.txt)
 |  hbase-server in the patch failed.  |
   | +1 :green_heart: |  unit  |   6m 45s |  |  hbase-thrift in the patch 
passed.  |
   | +1 :green_heart: |  unit  |   8m 14s |  |  hbase-shell in the patch 
passed.  |
   | +1 :green_heart: |  unit  |   2m 39s |  |  hbase-examples in the patch 
passed.  |
   |  |   |  77m 44s |  |  |
   
   
   | Subsystem | Report/Notes |
   |--:|:-|
   | Docker | ClientAPI=1.43 ServerAPI=1.43 base: 
https://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-7149/16/artifact/yetus-jdk17-hadoop3-check/output/Dockerfile
 |
   | GITHUB PR | https://github.com/apache/hbase/pull/7149 |
   | JIRA Issue | HBASE-29328 |
   | Optional Tests | javac javadoc unit compile shadedjars |
   | uname | Linux e9f3979a5e58 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-29081 / 7a786100e5acf0435ba1bc5eebd0df71d41d68fe |
   | Default Java | Eclipse Adoptium-17.0.11+9 |
   |  Test Results | 
https://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-7149/16/testReport/
 |
   | Max. process+thread count | 2032 (vs. ulimit of 3) |
   | modules | C: hbase-protocol-shaded hbase-client hbase-server hbase-thrift 
hbase-shell hbase-examples U: . |
   | Console output | 
https://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-7149/16/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-29328: Implement new HBase command: refresh_hfiles [hbase]

2025-09-10 Thread via GitHub


sharmaar12 commented on code in PR #7149:
URL: https://github.com/apache/hbase/pull/7149#discussion_r2335759965


##
hbase-server/src/main/java/org/apache/hadoop/hbase/master/HMaster.java:
##
@@ -4543,4 +4544,61 @@ protected String getDescription() {
 }
   });
   }
+
+  public Long refreshHfiles(final TableName tableName, final long nonceGroup, 
final long nonce)
+throws IOException {
+// TODO Check if table exists otherwise send exception.
+// return 121L;
+return MasterProcedureUtil
+  .submitProcedure(new MasterProcedureUtil.NonceProcedureRunnable(this, 
nonceGroup, nonce) {
+@Override
+protected void run() throws IOException {
+  LOG.info("Submitting RefreshHfilesTableProcedure for a table");
+  submitProcedure(
+new 
RefreshHFilesTableProcedure(procedureExecutor.getEnvironment(), tableName));
+}
+
+@Override
+protected String getDescription() {
+  return "RefreshHfilesProcedure for a table";
+}
+  });
+  }
+
+  public Long refreshHfiles(final String namespace, final long nonceGroup, 
final long nonce)
+throws IOException {
+// TODO Check if namespace exists otherwise send exception.
+// return 122L;
+return MasterProcedureUtil
+  .submitProcedure(new MasterProcedureUtil.NonceProcedureRunnable(this, 
nonceGroup, nonce) {
+@Override
+protected void run() throws IOException {
+  LOG.info("Submitting RefreshHfilesProcedure for namespace");
+  submitProcedure(
+new 
RefreshHFilesTableProcedure(procedureExecutor.getEnvironment(), namespace));
+}
+
+@Override
+protected String getDescription() {
+  return "RefreshHfilesProcedure for namespace";
+}
+  });
+  }
+
+  public Long refreshHfiles(final long nonceGroup, final long nonce) throws 
IOException {
+// return 123L;
+return MasterProcedureUtil
+  .submitProcedure(new MasterProcedureUtil.NonceProcedureRunnable(this, 
nonceGroup, nonce) {
+@Override
+protected void run() throws IOException {
+  LOG.info("Submitting RefreshHfilesProcedure for all tables");
+  submitProcedure(new 
RefreshHFilesTableProcedure(procedureExecutor.getEnvironment()));
+}
+
+@Override
+protected String getDescription() {
+  return "RefreshHfilesProcedure for all tables";
+}
+  });

Review Comment:
   Done.



-- 
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-29328: Implement new HBase command: refresh_hfiles [hbase]

2025-09-09 Thread via GitHub


sharmaar12 commented on code in PR #7149:
URL: https://github.com/apache/hbase/pull/7149#discussion_r2332234546


##
hbase-server/src/main/java/org/apache/hadoop/hbase/master/procedure/RefreshHFilesRegionProcedure.java:
##
@@ -0,0 +1,198 @@
+/*
+ * 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.master.procedure;
+
+import java.io.IOException;
+import java.util.Optional;
+import org.apache.hadoop.hbase.ServerName;
+import org.apache.hadoop.hbase.TableName;
+import org.apache.hadoop.hbase.client.RegionInfo;
+import org.apache.hadoop.hbase.master.RegionState;
+import org.apache.hadoop.hbase.master.assignment.RegionStateNode;
+import org.apache.hadoop.hbase.master.assignment.RegionStates;
+import org.apache.hadoop.hbase.procedure2.FailedRemoteDispatchException;
+import org.apache.hadoop.hbase.procedure2.Procedure;
+import org.apache.hadoop.hbase.procedure2.ProcedureEvent;
+import org.apache.hadoop.hbase.procedure2.ProcedureStateSerializer;
+import org.apache.hadoop.hbase.procedure2.ProcedureSuspendedException;
+import org.apache.hadoop.hbase.procedure2.ProcedureUtil;
+import org.apache.hadoop.hbase.procedure2.ProcedureYieldException;
+import org.apache.hadoop.hbase.procedure2.RemoteProcedureDispatcher;
+import org.apache.hadoop.hbase.procedure2.RemoteProcedureException;
+import org.apache.hadoop.hbase.regionserver.RefreshHFilesCallable;
+import org.apache.hadoop.hbase.util.RetryCounter;
+import org.apache.yetus.audience.InterfaceAudience;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+import org.apache.hadoop.hbase.shaded.protobuf.ProtobufUtil;
+import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProcedureProtos;
+import org.apache.hadoop.hbase.shaded.protobuf.generated.ProcedureProtos;
+
[email protected]
+public class RefreshHFilesRegionProcedure extends Procedure
+  implements TableProcedureInterface,
+  RemoteProcedureDispatcher.RemoteProcedure {
+  private static final Logger LOG = 
LoggerFactory.getLogger(RefreshHFilesRegionProcedure.class);
+  private RegionInfo region;
+  private ProcedureEvent event;
+  private boolean dispatched;
+  private boolean succ;
+  private RetryCounter retryCounter;
+
+  public RefreshHFilesRegionProcedure() {
+  }
+
+  public RefreshHFilesRegionProcedure(RegionInfo region) {
+this.region = region;
+  }
+
+  @Override
+  protected void deserializeStateData(ProcedureStateSerializer serializer) 
throws IOException {
+MasterProcedureProtos.RefreshHFilesRegionProcedureStateData data =
+  
serializer.deserialize(MasterProcedureProtos.RefreshHFilesRegionProcedureStateData.class);
+this.region = ProtobufUtil.toRegionInfo(data.getRegion());
+  }
+
+  @Override
+  protected void serializeStateData(ProcedureStateSerializer serializer) 
throws IOException {
+MasterProcedureProtos.RefreshHFilesRegionProcedureStateData.Builder 
builder =
+  MasterProcedureProtos.RefreshHFilesRegionProcedureStateData.newBuilder();
+builder.setRegion(ProtobufUtil.toRegionInfo(region));
+serializer.serialize(builder.build());
+  }
+
+  @Override
+  protected boolean abort(MasterProcedureEnv env) {
+return false;
+  }
+
+  @Override
+  protected void rollback(MasterProcedureEnv env) throws IOException, 
InterruptedException {
+throw new UnsupportedOperationException();
+  }
+
+  private void setTimeoutForSuspend(MasterProcedureEnv env, String reason) {
+if (retryCounter == null) {
+  retryCounter = 
ProcedureUtil.createRetryCounter(env.getMasterConfiguration());
+}
+long backoff = retryCounter.getBackoffTimeAndIncrementAttempts();
+LOG.warn("{} can not run currently because {}, wait {} ms to retry", this, 
reason, backoff);
+setTimeout(Math.toIntExact(backoff));
+setState(ProcedureProtos.ProcedureState.WAITING_TIMEOUT);
+skipPersistence();
+  }
+
+  @Override
+  protected Procedure[] execute(MasterProcedureEnv env)
+throws ProcedureYieldException, ProcedureSuspendedException, 
InterruptedException {
+if (dispatched) {
+  if (succ) {
+return null;
+  }
+  dispatched = false;
+}
+
+RegionStates regionStates = env.getAssignmentManager().getRegionStates();
+

Re: [PR] HBASE-29328: Implement new HBase command: refresh_hfiles [hbase]

2025-09-09 Thread via GitHub


sharmaar12 commented on code in PR #7149:
URL: https://github.com/apache/hbase/pull/7149#discussion_r2333504896


##
hbase-server/src/main/java/org/apache/hadoop/hbase/master/procedure/RefreshHFilesRegionProcedure.java:
##
@@ -0,0 +1,132 @@
+/*
+ * 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.master.procedure;
+
+import java.io.IOException;
+import java.util.Optional;
+import org.apache.hadoop.hbase.ServerName;
+import org.apache.hadoop.hbase.TableName;
+import org.apache.hadoop.hbase.client.RegionInfo;
+import org.apache.hadoop.hbase.master.assignment.RegionStateNode;
+import org.apache.hadoop.hbase.master.assignment.RegionStates;
+import org.apache.hadoop.hbase.procedure2.FailedRemoteDispatchException;
+import org.apache.hadoop.hbase.procedure2.Procedure;
+import org.apache.hadoop.hbase.procedure2.ProcedureStateSerializer;
+import org.apache.hadoop.hbase.procedure2.ProcedureSuspendedException;
+import org.apache.hadoop.hbase.procedure2.ProcedureYieldException;
+import org.apache.hadoop.hbase.procedure2.RemoteProcedureDispatcher;
+import org.apache.hadoop.hbase.procedure2.RemoteProcedureException;
+import org.apache.hadoop.hbase.regionserver.RefreshHFilesCallable;
+import org.apache.yetus.audience.InterfaceAudience;
+
+import org.apache.hadoop.hbase.shaded.protobuf.ProtobufUtil;
+import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProcedureProtos;
+
[email protected]
+public class RefreshHFilesRegionProcedure extends Procedure
+  implements TableProcedureInterface,
+  RemoteProcedureDispatcher.RemoteProcedure {
+  private RegionInfo region;
+
+  public RefreshHFilesRegionProcedure() {
+  }
+
+  public RefreshHFilesRegionProcedure(RegionInfo region) {
+this.region = region;
+  }
+
+  @Override
+  protected void deserializeStateData(ProcedureStateSerializer serializer) 
throws IOException {
+MasterProcedureProtos.RefreshHFilesRegionProcedureStateData data =
+  
serializer.deserialize(MasterProcedureProtos.RefreshHFilesRegionProcedureStateData.class);
+this.region = ProtobufUtil.toRegionInfo(data.getRegion());
+// TODO Get the Data from region server
+  }
+
+  @Override
+  protected void serializeStateData(ProcedureStateSerializer serializer) 
throws IOException {
+MasterProcedureProtos.RefreshHFilesRegionProcedureStateData.Builder 
builder =
+  MasterProcedureProtos.RefreshHFilesRegionProcedureStateData.newBuilder();
+builder.setRegion(ProtobufUtil.toRegionInfo(region));
+// TODO add data that you want to pass to region server
+serializer.serialize(builder.build());
+  }
+
+  @Override
+  protected boolean abort(MasterProcedureEnv env) {
+return false;
+  }
+
+  @Override
+  protected void rollback(MasterProcedureEnv env) throws IOException, 
InterruptedException {
+throw new UnsupportedOperationException();
+  }
+
+  @Override
+  protected Procedure[] execute(MasterProcedureEnv env)
+throws ProcedureYieldException, ProcedureSuspendedException, 
InterruptedException {
+RegionStates regionStates = env.getAssignmentManager().getRegionStates();
+RegionStateNode regionNode = regionStates.getRegionStateNode(region);

Review Comment:
   We will be documenting following:
   
   The Switch Over from active to read should strictly follow:
   
   - Make Active cluster Read-only > Flush on Active > Refresh_Meta on read 
replica > refresh_hfiles on read replica
   
   - There may be inconsistencies between active and read-replica cluster until 
the switch over completely happens
   
   As per the discussion over the call, we may need to see the feasibility of 
disabling the catalog janitor or making it aware of read-replica cluster is 
there, to avoid removal of any Hfiles. I will do bit of investigation and lets 
discuss this with wider audience in the next sync up.



-- 
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-29328: Implement new HBase command: refresh_hfiles [hbase]

2025-09-09 Thread via GitHub


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

   :broken_heart: **-1 overall**
   
   
   
   
   
   
   | Vote | Subsystem | Runtime |  Logfile | Comment |
   |::|--:|:|::|:---:|
   | +0 :ok: |  reexec  |   0m 36s |  |  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: |  buf  |   0m  0s |  |  buf was not available.  |
   | +0 :ok: |  buf  |   0m  0s |  |  buf 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-29081 Compile Tests _ |
   | +0 :ok: |  mvndep  |   0m 10s |  |  Maven dependency ordering for branch  |
   | +1 :green_heart: |  mvninstall  |   3m 10s |  |  HBASE-29081 passed  |
   | +1 :green_heart: |  compile  |   6m 16s |  |  HBASE-29081 passed  |
   | +1 :green_heart: |  checkstyle  |   1m 52s |  |  HBASE-29081 passed  |
   | +1 :green_heart: |  spotbugs  |   6m 21s |  |  HBASE-29081 passed  |
   | +1 :green_heart: |  spotless  |   0m 49s |  |  branch has no errors when 
running spotless:check.  |
    _ Patch Compile Tests _ |
   | +0 :ok: |  mvndep  |   0m 12s |  |  Maven dependency ordering for patch  |
   | +1 :green_heart: |  mvninstall  |   2m 58s |  |  the patch passed  |
   | +1 :green_heart: |  compile  |   6m  9s |  |  the patch passed  |
   | +1 :green_heart: |  cc  |   6m  9s |  |  the patch passed  |
   | -0 :warning: |  javac  |   3m 17s | 
[/results-compile-javac-hbase-server.txt](https://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-7149/16/artifact/yetus-general-check/output/results-compile-javac-hbase-server.txt)
 |  hbase-server generated 3 new + 190 unchanged - 3 fixed = 193 total (was 
193)  |
   | +1 :green_heart: |  blanks  |   0m  0s |  |  The patch has no blanks 
issues.  |
   | -0 :warning: |  checkstyle  |   0m 15s | 
[/buildtool-patch-checkstyle-hbase-server.txt](https://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-7149/16/artifact/yetus-general-check/output/buildtool-patch-checkstyle-hbase-server.txt)
 |  The patch fails to run checkstyle in hbase-server  |
   | -0 :warning: |  rubocop  |   0m 18s | 
[/results-rubocop.txt](https://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-7149/16/artifact/yetus-general-check/output/results-rubocop.txt)
 |  The patch generated 15 new + 445 unchanged - 0 fixed = 460 total (was 445)  
|
   | +1 :green_heart: |  spotbugs  |   6m 58s |  |  the patch passed  |
   | +1 :green_heart: |  hadoopcheck  |  11m 47s |  |  Patch does not cause any 
errors with Hadoop 3.3.6 3.4.0.  |
   | +1 :green_heart: |  hbaseprotoc  |   2m 30s |  |  the patch passed  |
   | -1 :x: |  spotless  |   0m 21s |  |  patch has 21 errors when running 
spotless:check, run spotless:apply to fix.  |
    _ Other Tests _ |
   | +1 :green_heart: |  asflicense  |   0m 55s |  |  The patch does not 
generate ASF License warnings.  |
   |  |   |  61m 14s |  |  |
   
   
   | Subsystem | Report/Notes |
   |--:|:-|
   | Docker | ClientAPI=1.43 ServerAPI=1.43 base: 
https://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-7149/16/artifact/yetus-general-check/output/Dockerfile
 |
   | GITHUB PR | https://github.com/apache/hbase/pull/7149 |
   | JIRA Issue | HBASE-29328 |
   | Optional Tests | dupname asflicense javac spotbugs checkstyle codespell 
detsecrets compile hadoopcheck hbaseanti spotless cc buflint bufcompat 
hbaseprotoc rubocop |
   | uname | Linux f9f2ceab1f1d 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-29081 / 7a786100e5acf0435ba1bc5eebd0df71d41d68fe |
   | Default Java | Eclipse Adoptium-17.0.11+9 |
   | spotless | 
https://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-7149/16/artifact/yetus-general-check/output/patch-spotless.txt
 |
   | Max. process+thread count | 86 (vs. ulimit of 3) |
   | modules | C: hbase-protocol-shaded hbase-client hbase-server hbase-thrift 
hbase-shell hbase-examples U: . |
   | Console output | 
https://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-7149/16/console
 |
   | versions | git=2.34.1 maven=3.9.8 spotbugs=4.7.3 rubocop=1.37.1 |
   | 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: 

Re: [PR] HBASE-29328: Implement new HBase command: refresh_hfiles [hbase]

2025-09-09 Thread via GitHub


sharmaar12 commented on PR #7149:
URL: https://github.com/apache/hbase/pull/7149#issuecomment-3270669250

   > Let's try to investigate the cases with different store file tracker 
implementations.
   > 
   > **1. DefaultStoreFileTracker**
   > 
   > ```java
   > /**
   >  * The default implementation for store file tracker, where we do not 
persist the store file list,
   >  * and use listing when loading store files.
   >  */
   > @InterfaceAudience.Private
   > class DefaultStoreFileTracker extends StoreFileTrackerBase {
   > ```
   > 
   > So, in this case the refresh command should always get a list of all 
HFiles in the CF directory and should be able to detect new HFiles 
automatically. Is the correct?
   
   Yes. In this case we will be able to detect and load the newly added files.
   
   > 
   > **2. File based tracker**
   > 
   > ```java
   > /**
   >  * A file based store file tracker.
   >  * 
   >  * For this tracking way, the store file list will be persistent into a 
file, so we can write the
   >  * new store files directly to the final data directory, as we will not 
load the broken files. This
   >  * will greatly reduce the time for flush and compaction on some object 
storages as a rename is
   >  * actual a copy on them. And it also avoid listing when loading store 
file list, which could also
   >  * speed up the loading of store files as listing is also not a fast 
operation on most object
   >  * storages.
   >  */
   > @InterfaceAudience.Private
   > class FileBasedStoreFileTracker extends StoreFileTrackerBase {
   > ```
   > 
   > I think this is the case that you're talking about. In this case SFT might 
be able or might not be able to detect new HFiles depending on whether the SFT 
file has been updated or not.
   
   In this case, the copy has to be done via HBase only so the tracking file 
(IIRC `.filelist` is the file we used for tracking) gets updated properly.
   
   > So, basically if I just copy a new file to the CF directory, it won't be 
detected, because of the reasons you mentioned.
   
   In reality, with FileBasedTracker we will not be able to detect this because 
simply copying (say in S3) will not update our tracking file (`.filelist`). The 
testing issue which we faces is related to opening file for read and not 
detecting/loading the file.  
(https://github.com/apache/hbase/pull/7149#issuecomment-3269427414)
   
   > But if the new HFile was properly added by another cluster which is using 
the same SFT implementation, the file must have been updated properly, so our 
cluster will pick it up.
   
   Yes its correct. In case of, DefaultStoreFileTracker (in case of HDFS), we 
rely on listing from directory directly so no issue if manual copy happens or 
not.
   In case of, FileBasedTracker (such as S3), we will be able to detect/load 
the newly added HFiles if its added by Active cluster as that will update 
`.filelist`, also as its shared between read-replica and active cluster. Read 
replica will be able to load it. The caveat is if someone manually copy to S3 
without active cluster aware of it then neither Active or readonly be able to 
load it.
   
   > If all the above are true, do we need to add any additional logic to the 
command?
   
   I don't think we need to add additional logic as if Active cluster 
create/modify Hfiles then it will get updated in both active as well as read 
replica cluster.
   Only the case where user deliberately changes internal structure (copying 
files directly to S3 without using bulkload) then its expected to have 
inconsistent behavior.
   


-- 
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-29328: Implement new HBase command: refresh_hfiles [hbase]

2025-09-09 Thread via GitHub


sharmaar12 commented on PR #7149:
URL: https://github.com/apache/hbase/pull/7149#issuecomment-3270604017

   > I have some suggestions, but LGTM overall.
   > 
   > I have one thought about the unit tests. I see the `refresh_hfiles` is 
being performed, but the tests don't switch the cluster in and out of read-only 
mode when doing the refresh. Should they be doing that or is that more suitable 
for an integration test?
   > 
   > PR #7058 has a test case similar to what I'm describing, but it is with 
`refresh_meta`. Here is the test case I am referring to: 
https://github.com/apache/hbase/pull/7058/files#diff-17ebd8f29298a3dcce8564212c6712346dc62fd02dac5239ca3f83302eb13439
   
   I have added test variations which just checks for refresh procedure calls 
executes successfully when readonly is enabled. The case of readonly disabled 
is covered in other variation so did not repeat it. This test verify 
refresh_hfiles should succeed on read replica cluster.
   
   If we have to check workflow where the data gets manipulated and data 
consistency gets checked at the end of refresh should be done in an integration 
test as it involve testing read-only property, dynamic modification of property 
value and refresh_hfiles together hence, in my opinion better candidate for 
integration testing.
   
   cc: @wchevreuil @anmolnar


-- 
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-29328: Implement new HBase command: refresh_hfiles [hbase]

2025-09-09 Thread via GitHub


sharmaar12 commented on code in PR #7149:
URL: https://github.com/apache/hbase/pull/7149#discussion_r2333163308


##
hbase-server/src/test/java/org/apache/hadoop/hbase/master/procedure/TestRefreshHFilesProcedure.java:
##
@@ -0,0 +1,193 @@
+/*
+ * 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.master.procedure;
+
+import static org.apache.hadoop.hbase.HConstants.HBASE_CLIENT_RETRIES_NUMBER;
+
+import java.io.IOException;
+import java.util.Arrays;
+import org.apache.hadoop.conf.Configuration;
+import org.apache.hadoop.hbase.HBaseClassTestRule;
+import org.apache.hadoop.hbase.HBaseTestingUtil;
+import org.apache.hadoop.hbase.HConstants;
+import org.apache.hadoop.hbase.NamespaceDescriptor;
+import org.apache.hadoop.hbase.TableName;
+import org.apache.hadoop.hbase.client.Admin;
+import org.apache.hadoop.hbase.procedure2.ProcedureExecutor;
+import org.apache.hadoop.hbase.procedure2.ProcedureTestingUtility;
+import org.apache.hadoop.hbase.testclassification.MasterTests;
+import org.apache.hadoop.hbase.testclassification.MediumTests;
+import org.apache.hadoop.hbase.util.Bytes;
+import org.junit.After;
+import org.junit.Before;
+import org.junit.ClassRule;
+import org.junit.Test;
+import org.junit.experimental.categories.Category;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+@Category({ MasterTests.class, MediumTests.class })
+public class TestRefreshHFilesProcedure {
+
+  @ClassRule
+  public static final HBaseClassTestRule CLASS_RULE =
+HBaseClassTestRule.forClass(TestRefreshHFilesProcedure.class);
+
+  private static final Logger LOG = 
LoggerFactory.getLogger(TestRefreshHFilesProcedure.class);
+
+  private static final HBaseTestingUtil TEST_UTIL = new HBaseTestingUtil();
+  private Admin admin;
+  private ProcedureExecutor procExecutor;
+  private static Configuration conf;
+  private static final TableName TEST_TABLE = 
TableName.valueOf("testRefreshHFilesTable");
+  private static final String TEST_NAMESPACE = "testRefreshHFilesNamespace";
+  private static final String TEST_TABLE_IN_NAMESPACE = TEST_NAMESPACE + 
":testTableInNamespace";
+  private static final byte[] TEST_FAMILY = 
Bytes.toBytes("testRefreshHFilesCF1");
+
+  @Before
+  public void setup() throws Exception {
+conf = TEST_UTIL.getConfiguration();
+// Shorten the run time of failed unit tests by limiting retries and the 
session timeout
+// threshold
+conf.setInt(HBASE_CLIENT_RETRIES_NUMBER, 1);
+conf.setInt(HConstants.ZK_SESSION_TIMEOUT, 1000);
+
+try {
+  // Start the test cluster
+  TEST_UTIL.startMiniCluster(1);
+  admin = TEST_UTIL.getAdmin();
+  procExecutor = 
TEST_UTIL.getHBaseCluster().getMaster().getMasterProcedureExecutor();
+} catch (Exception e) {
+  TEST_UTIL.shutdownMiniCluster();
+  throw new RuntimeException(e);
+}
+  }
+
+  @After
+  public void tearDown() throws Exception {
+if (admin != null) {
+  admin.close();
+}
+TEST_UTIL.shutdownMiniCluster();
+  }
+
+  private void createNamespace(String namespace) throws RuntimeException {

Review Comment:
   Done. Thanks for the suggestion.



-- 
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-29328: Implement new HBase command: refresh_hfiles [hbase]

2025-09-09 Thread via GitHub


sharmaar12 commented on code in PR #7149:
URL: https://github.com/apache/hbase/pull/7149#discussion_r2332626935


##
hbase-server/src/test/java/org/apache/hadoop/hbase/client/TestRefreshHFilesFromClient.java:
##
@@ -0,0 +1,199 @@
+/*
+ * 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.client;
+
+import static 
org.apache.hadoop.hbase.client.AsyncConnectionConfiguration.START_LOG_ERRORS_AFTER_COUNT_KEY;
+import static org.junit.Assert.assertTrue;
+
+import java.util.Arrays;
+import org.apache.hadoop.conf.Configuration;
+import org.apache.hadoop.hbase.HBaseClassTestRule;
+import org.apache.hadoop.hbase.HBaseTestingUtil;
+import org.apache.hadoop.hbase.HConstants;
+import org.apache.hadoop.hbase.NamespaceDescriptor;
+import org.apache.hadoop.hbase.NamespaceNotFoundException;
+import org.apache.hadoop.hbase.TableName;
+import org.apache.hadoop.hbase.TableNotFoundException;
+import org.apache.hadoop.hbase.testclassification.ClientTests;
+import org.apache.hadoop.hbase.testclassification.MediumTests;
+import org.apache.hadoop.hbase.util.Bytes;
+import org.junit.After;
+import org.junit.Assert;
+import org.junit.Before;
+import org.junit.ClassRule;
+import org.junit.Test;
+import org.junit.experimental.categories.Category;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+import org.apache.hbase.thirdparty.com.google.common.io.Closeables;
+
+@Category({ MediumTests.class, ClientTests.class })
+public class TestRefreshHFilesFromClient {
+  @ClassRule
+  public static final HBaseClassTestRule CLASS_RULE =
+HBaseClassTestRule.forClass(TestRefreshHFilesFromClient.class);
+
+  private static final Logger LOG = 
LoggerFactory.getLogger(TestRefreshHFilesFromClient.class);
+  private final static HBaseTestingUtil TEST_UTIL = new HBaseTestingUtil();
+  private static AsyncConnection asyncConn;
+  private static Admin admin;
+  private static Configuration conf;
+  private static final TableName TEST_TABLE = 
TableName.valueOf("testRefreshHFilesTable");
+  private static final TableName TEST_INVALID_TABLE =
+TableName.valueOf("testRefreshHFilesInvalidTable");
+  private static final String TEST_NAMESPACE = "testRefreshHFilesNamespace";
+  private static final String TEST_INVALID_NAMESPACE = 
"testRefreshHFilesInvalidNamespace";
+  private static final String TEST_TABLE_IN_NAMESPACE = TEST_NAMESPACE + 
":testTableInNamespace";
+  private static final byte[] TEST_FAMILY = 
Bytes.toBytes("testRefreshHFilesCF1");
+
+  @Before
+  public void setUp() throws Exception {
+conf = TEST_UTIL.getConfiguration();
+conf.setInt(HConstants.HBASE_RPC_TIMEOUT_KEY, 6);
+conf.setInt(HConstants.HBASE_CLIENT_OPERATION_TIMEOUT, 12);
+conf.setInt(HConstants.HBASE_CLIENT_RETRIES_NUMBER, 1);
+conf.setInt(START_LOG_ERRORS_AFTER_COUNT_KEY, 0);
+conf.setInt(HConstants.ZK_SESSION_TIMEOUT, 1000);
+
+// Start the test cluster
+TEST_UTIL.startMiniCluster(1);
+asyncConn = 
ConnectionFactory.createAsyncConnection(TEST_UTIL.getConfiguration()).get();
+admin = TEST_UTIL.getAdmin();
+  }
+
+  @After
+  public void tearDown() throws Exception {
+Closeables.close(asyncConn, true);
+TEST_UTIL.shutdownMiniCluster();
+  }
+
+  private void createNamespace(String namespace) throws RuntimeException {
+try {
+  final NamespaceDescriptor nsd = 
NamespaceDescriptor.create(namespace).build();
+  // Create the namespace if it doesn’t exist
+  if (
+Arrays.stream(admin.listNamespaceDescriptors())
+  .noneMatch(ns -> ns.getName().equals(namespace))
+  ) {
+admin.createNamespace(nsd);
+  }
+} catch (Exception e) {
+  throw new RuntimeException(e);
+}
+  }
+
+  private void deleteNamespace(String namespace) {
+try {
+  // List table in namespace
+  TableName[] tables = admin.listTableNamesByNamespace(namespace);
+  for (TableName t : tables) {
+TEST_UTIL.deleteTableIfAny(t);
+  }
+  // Now delete the namespace
+  admin.deleteNamespace(namespace);
+} catch (Exception e) {
+  LOG.debug(
+"Unable to delete namespace " + namespace + " post test execution. 
This isn't a failure");
+}
+  }

Re: [PR] HBASE-29328: Implement new HBase command: refresh_hfiles [hbase]

2025-09-09 Thread via GitHub


sharmaar12 commented on code in PR #7149:
URL: https://github.com/apache/hbase/pull/7149#discussion_r2332615972


##
hbase-server/src/test/java/org/apache/hadoop/hbase/client/TestRefreshHFilesFromClient.java:
##
@@ -0,0 +1,199 @@
+/*
+ * 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.client;
+
+import static 
org.apache.hadoop.hbase.client.AsyncConnectionConfiguration.START_LOG_ERRORS_AFTER_COUNT_KEY;
+import static org.junit.Assert.assertTrue;
+
+import java.util.Arrays;
+import org.apache.hadoop.conf.Configuration;
+import org.apache.hadoop.hbase.HBaseClassTestRule;
+import org.apache.hadoop.hbase.HBaseTestingUtil;
+import org.apache.hadoop.hbase.HConstants;
+import org.apache.hadoop.hbase.NamespaceDescriptor;
+import org.apache.hadoop.hbase.NamespaceNotFoundException;
+import org.apache.hadoop.hbase.TableName;
+import org.apache.hadoop.hbase.TableNotFoundException;
+import org.apache.hadoop.hbase.testclassification.ClientTests;
+import org.apache.hadoop.hbase.testclassification.MediumTests;
+import org.apache.hadoop.hbase.util.Bytes;
+import org.junit.After;
+import org.junit.Assert;
+import org.junit.Before;
+import org.junit.ClassRule;
+import org.junit.Test;
+import org.junit.experimental.categories.Category;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+import org.apache.hbase.thirdparty.com.google.common.io.Closeables;
+
+@Category({ MediumTests.class, ClientTests.class })
+public class TestRefreshHFilesFromClient {
+  @ClassRule
+  public static final HBaseClassTestRule CLASS_RULE =
+HBaseClassTestRule.forClass(TestRefreshHFilesFromClient.class);
+
+  private static final Logger LOG = 
LoggerFactory.getLogger(TestRefreshHFilesFromClient.class);
+  private final static HBaseTestingUtil TEST_UTIL = new HBaseTestingUtil();
+  private static AsyncConnection asyncConn;
+  private static Admin admin;
+  private static Configuration conf;
+  private static final TableName TEST_TABLE = 
TableName.valueOf("testRefreshHFilesTable");
+  private static final TableName TEST_INVALID_TABLE =
+TableName.valueOf("testRefreshHFilesInvalidTable");
+  private static final String TEST_NAMESPACE = "testRefreshHFilesNamespace";
+  private static final String TEST_INVALID_NAMESPACE = 
"testRefreshHFilesInvalidNamespace";
+  private static final String TEST_TABLE_IN_NAMESPACE = TEST_NAMESPACE + 
":testTableInNamespace";
+  private static final byte[] TEST_FAMILY = 
Bytes.toBytes("testRefreshHFilesCF1");
+
+  @Before
+  public void setUp() throws Exception {
+conf = TEST_UTIL.getConfiguration();
+conf.setInt(HConstants.HBASE_RPC_TIMEOUT_KEY, 6);
+conf.setInt(HConstants.HBASE_CLIENT_OPERATION_TIMEOUT, 12);
+conf.setInt(HConstants.HBASE_CLIENT_RETRIES_NUMBER, 1);
+conf.setInt(START_LOG_ERRORS_AFTER_COUNT_KEY, 0);
+conf.setInt(HConstants.ZK_SESSION_TIMEOUT, 1000);
+
+// Start the test cluster
+TEST_UTIL.startMiniCluster(1);
+asyncConn = 
ConnectionFactory.createAsyncConnection(TEST_UTIL.getConfiguration()).get();
+admin = TEST_UTIL.getAdmin();
+  }
+
+  @After
+  public void tearDown() throws Exception {
+Closeables.close(asyncConn, true);
+TEST_UTIL.shutdownMiniCluster();
+  }
+
+  private void createNamespace(String namespace) throws RuntimeException {
+try {
+  final NamespaceDescriptor nsd = 
NamespaceDescriptor.create(namespace).build();
+  // Create the namespace if it doesn’t exist
+  if (
+Arrays.stream(admin.listNamespaceDescriptors())
+  .noneMatch(ns -> ns.getName().equals(namespace))
+  ) {
+admin.createNamespace(nsd);
+  }
+} catch (Exception e) {
+  throw new RuntimeException(e);
+}
+  }
+
+  private void deleteNamespace(String namespace) {
+try {
+  // List table in namespace
+  TableName[] tables = admin.listTableNamesByNamespace(namespace);
+  for (TableName t : tables) {
+TEST_UTIL.deleteTableIfAny(t);
+  }
+  // Now delete the namespace
+  admin.deleteNamespace(namespace);
+} catch (Exception e) {
+  LOG.debug(
+"Unable to delete namespace " + namespace + " post test execution. 
This isn't a failure");
+}
+  }

Re: [PR] HBASE-29328: Implement new HBase command: refresh_hfiles [hbase]

2025-09-09 Thread via GitHub


sharmaar12 commented on code in PR #7149:
URL: https://github.com/apache/hbase/pull/7149#discussion_r2332615972


##
hbase-server/src/test/java/org/apache/hadoop/hbase/client/TestRefreshHFilesFromClient.java:
##
@@ -0,0 +1,199 @@
+/*
+ * 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.client;
+
+import static 
org.apache.hadoop.hbase.client.AsyncConnectionConfiguration.START_LOG_ERRORS_AFTER_COUNT_KEY;
+import static org.junit.Assert.assertTrue;
+
+import java.util.Arrays;
+import org.apache.hadoop.conf.Configuration;
+import org.apache.hadoop.hbase.HBaseClassTestRule;
+import org.apache.hadoop.hbase.HBaseTestingUtil;
+import org.apache.hadoop.hbase.HConstants;
+import org.apache.hadoop.hbase.NamespaceDescriptor;
+import org.apache.hadoop.hbase.NamespaceNotFoundException;
+import org.apache.hadoop.hbase.TableName;
+import org.apache.hadoop.hbase.TableNotFoundException;
+import org.apache.hadoop.hbase.testclassification.ClientTests;
+import org.apache.hadoop.hbase.testclassification.MediumTests;
+import org.apache.hadoop.hbase.util.Bytes;
+import org.junit.After;
+import org.junit.Assert;
+import org.junit.Before;
+import org.junit.ClassRule;
+import org.junit.Test;
+import org.junit.experimental.categories.Category;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+import org.apache.hbase.thirdparty.com.google.common.io.Closeables;
+
+@Category({ MediumTests.class, ClientTests.class })
+public class TestRefreshHFilesFromClient {
+  @ClassRule
+  public static final HBaseClassTestRule CLASS_RULE =
+HBaseClassTestRule.forClass(TestRefreshHFilesFromClient.class);
+
+  private static final Logger LOG = 
LoggerFactory.getLogger(TestRefreshHFilesFromClient.class);
+  private final static HBaseTestingUtil TEST_UTIL = new HBaseTestingUtil();
+  private static AsyncConnection asyncConn;
+  private static Admin admin;
+  private static Configuration conf;
+  private static final TableName TEST_TABLE = 
TableName.valueOf("testRefreshHFilesTable");
+  private static final TableName TEST_INVALID_TABLE =
+TableName.valueOf("testRefreshHFilesInvalidTable");
+  private static final String TEST_NAMESPACE = "testRefreshHFilesNamespace";
+  private static final String TEST_INVALID_NAMESPACE = 
"testRefreshHFilesInvalidNamespace";
+  private static final String TEST_TABLE_IN_NAMESPACE = TEST_NAMESPACE + 
":testTableInNamespace";
+  private static final byte[] TEST_FAMILY = 
Bytes.toBytes("testRefreshHFilesCF1");
+
+  @Before
+  public void setUp() throws Exception {
+conf = TEST_UTIL.getConfiguration();
+conf.setInt(HConstants.HBASE_RPC_TIMEOUT_KEY, 6);
+conf.setInt(HConstants.HBASE_CLIENT_OPERATION_TIMEOUT, 12);
+conf.setInt(HConstants.HBASE_CLIENT_RETRIES_NUMBER, 1);
+conf.setInt(START_LOG_ERRORS_AFTER_COUNT_KEY, 0);
+conf.setInt(HConstants.ZK_SESSION_TIMEOUT, 1000);
+
+// Start the test cluster
+TEST_UTIL.startMiniCluster(1);
+asyncConn = 
ConnectionFactory.createAsyncConnection(TEST_UTIL.getConfiguration()).get();
+admin = TEST_UTIL.getAdmin();
+  }
+
+  @After
+  public void tearDown() throws Exception {
+Closeables.close(asyncConn, true);
+TEST_UTIL.shutdownMiniCluster();
+  }
+
+  private void createNamespace(String namespace) throws RuntimeException {
+try {
+  final NamespaceDescriptor nsd = 
NamespaceDescriptor.create(namespace).build();
+  // Create the namespace if it doesn’t exist
+  if (
+Arrays.stream(admin.listNamespaceDescriptors())
+  .noneMatch(ns -> ns.getName().equals(namespace))
+  ) {
+admin.createNamespace(nsd);
+  }
+} catch (Exception e) {
+  throw new RuntimeException(e);
+}
+  }
+
+  private void deleteNamespace(String namespace) {
+try {
+  // List table in namespace
+  TableName[] tables = admin.listTableNamesByNamespace(namespace);
+  for (TableName t : tables) {
+TEST_UTIL.deleteTableIfAny(t);
+  }
+  // Now delete the namespace
+  admin.deleteNamespace(namespace);
+} catch (Exception e) {
+  LOG.debug(
+"Unable to delete namespace " + namespace + " post test execution. 
This isn't a failure");
+}
+  }

Re: [PR] HBASE-29328: Implement new HBase command: refresh_hfiles [hbase]

2025-09-09 Thread via GitHub


sharmaar12 commented on code in PR #7149:
URL: https://github.com/apache/hbase/pull/7149#discussion_r2332610913


##
hbase-server/src/test/java/org/apache/hadoop/hbase/client/TestRefreshHFilesFromClient.java:
##
@@ -0,0 +1,199 @@
+/*
+ * 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.client;
+
+import static 
org.apache.hadoop.hbase.client.AsyncConnectionConfiguration.START_LOG_ERRORS_AFTER_COUNT_KEY;
+import static org.junit.Assert.assertTrue;
+
+import java.util.Arrays;
+import org.apache.hadoop.conf.Configuration;
+import org.apache.hadoop.hbase.HBaseClassTestRule;
+import org.apache.hadoop.hbase.HBaseTestingUtil;
+import org.apache.hadoop.hbase.HConstants;
+import org.apache.hadoop.hbase.NamespaceDescriptor;
+import org.apache.hadoop.hbase.NamespaceNotFoundException;
+import org.apache.hadoop.hbase.TableName;
+import org.apache.hadoop.hbase.TableNotFoundException;
+import org.apache.hadoop.hbase.testclassification.ClientTests;
+import org.apache.hadoop.hbase.testclassification.MediumTests;
+import org.apache.hadoop.hbase.util.Bytes;
+import org.junit.After;
+import org.junit.Assert;
+import org.junit.Before;
+import org.junit.ClassRule;
+import org.junit.Test;
+import org.junit.experimental.categories.Category;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+import org.apache.hbase.thirdparty.com.google.common.io.Closeables;
+
+@Category({ MediumTests.class, ClientTests.class })
+public class TestRefreshHFilesFromClient {
+  @ClassRule
+  public static final HBaseClassTestRule CLASS_RULE =
+HBaseClassTestRule.forClass(TestRefreshHFilesFromClient.class);
+
+  private static final Logger LOG = 
LoggerFactory.getLogger(TestRefreshHFilesFromClient.class);
+  private final static HBaseTestingUtil TEST_UTIL = new HBaseTestingUtil();
+  private static AsyncConnection asyncConn;
+  private static Admin admin;
+  private static Configuration conf;
+  private static final TableName TEST_TABLE = 
TableName.valueOf("testRefreshHFilesTable");
+  private static final TableName TEST_INVALID_TABLE =

Review Comment:
   Done.



-- 
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-29328: Implement new HBase command: refresh_hfiles [hbase]

2025-09-09 Thread via GitHub


sharmaar12 commented on code in PR #7149:
URL: https://github.com/apache/hbase/pull/7149#discussion_r2332604277


##
hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/RefreshHFilesCallable.java:
##
@@ -0,0 +1,62 @@
+/*
+ * 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.regionserver;
+
+import java.io.IOException;
+import org.apache.hadoop.hbase.client.RegionInfo;
+import org.apache.hadoop.hbase.executor.EventType;
+import org.apache.hadoop.hbase.procedure2.BaseRSProcedureCallable;
+import org.apache.yetus.audience.InterfaceAudience;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+import org.apache.hadoop.hbase.shaded.protobuf.ProtobufUtil;
+import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProcedureProtos;
+

Review Comment:
   Done.



-- 
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-29328: Implement new HBase command: refresh_hfiles [hbase]

2025-09-09 Thread via GitHub


sharmaar12 commented on code in PR #7149:
URL: https://github.com/apache/hbase/pull/7149#discussion_r2332560750


##
hbase-server/src/main/java/org/apache/hadoop/hbase/master/procedure/RefreshHFilesRegionProcedure.java:
##
@@ -0,0 +1,198 @@
+/*
+ * 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.master.procedure;
+
+import java.io.IOException;
+import java.util.Optional;
+import org.apache.hadoop.hbase.ServerName;
+import org.apache.hadoop.hbase.TableName;
+import org.apache.hadoop.hbase.client.RegionInfo;
+import org.apache.hadoop.hbase.master.RegionState;
+import org.apache.hadoop.hbase.master.assignment.RegionStateNode;
+import org.apache.hadoop.hbase.master.assignment.RegionStates;
+import org.apache.hadoop.hbase.procedure2.FailedRemoteDispatchException;
+import org.apache.hadoop.hbase.procedure2.Procedure;
+import org.apache.hadoop.hbase.procedure2.ProcedureEvent;
+import org.apache.hadoop.hbase.procedure2.ProcedureStateSerializer;
+import org.apache.hadoop.hbase.procedure2.ProcedureSuspendedException;
+import org.apache.hadoop.hbase.procedure2.ProcedureUtil;
+import org.apache.hadoop.hbase.procedure2.ProcedureYieldException;
+import org.apache.hadoop.hbase.procedure2.RemoteProcedureDispatcher;
+import org.apache.hadoop.hbase.procedure2.RemoteProcedureException;
+import org.apache.hadoop.hbase.regionserver.RefreshHFilesCallable;
+import org.apache.hadoop.hbase.util.RetryCounter;
+import org.apache.yetus.audience.InterfaceAudience;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+import org.apache.hadoop.hbase.shaded.protobuf.ProtobufUtil;
+import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProcedureProtos;
+import org.apache.hadoop.hbase.shaded.protobuf.generated.ProcedureProtos;
+
[email protected]
+public class RefreshHFilesRegionProcedure extends Procedure
+  implements TableProcedureInterface,
+  RemoteProcedureDispatcher.RemoteProcedure {
+  private static final Logger LOG = 
LoggerFactory.getLogger(RefreshHFilesRegionProcedure.class);
+  private RegionInfo region;
+  private ProcedureEvent event;
+  private boolean dispatched;
+  private boolean succ;
+  private RetryCounter retryCounter;
+
+  public RefreshHFilesRegionProcedure() {
+  }
+
+  public RefreshHFilesRegionProcedure(RegionInfo region) {
+this.region = region;
+  }
+
+  @Override
+  protected void deserializeStateData(ProcedureStateSerializer serializer) 
throws IOException {
+MasterProcedureProtos.RefreshHFilesRegionProcedureStateData data =
+  
serializer.deserialize(MasterProcedureProtos.RefreshHFilesRegionProcedureStateData.class);
+this.region = ProtobufUtil.toRegionInfo(data.getRegion());
+  }
+
+  @Override
+  protected void serializeStateData(ProcedureStateSerializer serializer) 
throws IOException {
+MasterProcedureProtos.RefreshHFilesRegionProcedureStateData.Builder 
builder =
+  MasterProcedureProtos.RefreshHFilesRegionProcedureStateData.newBuilder();
+builder.setRegion(ProtobufUtil.toRegionInfo(region));
+serializer.serialize(builder.build());
+  }
+
+  @Override
+  protected boolean abort(MasterProcedureEnv env) {
+return false;
+  }
+
+  @Override
+  protected void rollback(MasterProcedureEnv env) throws IOException, 
InterruptedException {
+throw new UnsupportedOperationException();
+  }
+
+  private void setTimeoutForSuspend(MasterProcedureEnv env, String reason) {
+if (retryCounter == null) {
+  retryCounter = 
ProcedureUtil.createRetryCounter(env.getMasterConfiguration());
+}
+long backoff = retryCounter.getBackoffTimeAndIncrementAttempts();
+LOG.warn("{} can not run currently because {}, wait {} ms to retry", this, 
reason, backoff);
+setTimeout(Math.toIntExact(backoff));
+setState(ProcedureProtos.ProcedureState.WAITING_TIMEOUT);
+skipPersistence();
+  }
+
+  @Override
+  protected Procedure[] execute(MasterProcedureEnv env)
+throws ProcedureYieldException, ProcedureSuspendedException, 
InterruptedException {
+if (dispatched) {
+  if (succ) {
+return null;
+  }
+  dispatched = false;
+}
+
+RegionStates regionStates = env.getAssignmentManager().getRegionStates();
+

Re: [PR] HBASE-29328: Implement new HBase command: refresh_hfiles [hbase]

2025-09-09 Thread via GitHub


sharmaar12 commented on code in PR #7149:
URL: https://github.com/apache/hbase/pull/7149#discussion_r2332533919


##
hbase-server/src/main/java/org/apache/hadoop/hbase/master/procedure/RefreshHFilesRegionProcedure.java:
##
@@ -0,0 +1,198 @@
+/*
+ * 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.master.procedure;
+
+import java.io.IOException;
+import java.util.Optional;
+import org.apache.hadoop.hbase.ServerName;
+import org.apache.hadoop.hbase.TableName;
+import org.apache.hadoop.hbase.client.RegionInfo;
+import org.apache.hadoop.hbase.master.RegionState;
+import org.apache.hadoop.hbase.master.assignment.RegionStateNode;
+import org.apache.hadoop.hbase.master.assignment.RegionStates;
+import org.apache.hadoop.hbase.procedure2.FailedRemoteDispatchException;
+import org.apache.hadoop.hbase.procedure2.Procedure;
+import org.apache.hadoop.hbase.procedure2.ProcedureEvent;
+import org.apache.hadoop.hbase.procedure2.ProcedureStateSerializer;
+import org.apache.hadoop.hbase.procedure2.ProcedureSuspendedException;
+import org.apache.hadoop.hbase.procedure2.ProcedureUtil;
+import org.apache.hadoop.hbase.procedure2.ProcedureYieldException;
+import org.apache.hadoop.hbase.procedure2.RemoteProcedureDispatcher;
+import org.apache.hadoop.hbase.procedure2.RemoteProcedureException;
+import org.apache.hadoop.hbase.regionserver.RefreshHFilesCallable;
+import org.apache.hadoop.hbase.util.RetryCounter;
+import org.apache.yetus.audience.InterfaceAudience;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+import org.apache.hadoop.hbase.shaded.protobuf.ProtobufUtil;
+import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProcedureProtos;
+import org.apache.hadoop.hbase.shaded.protobuf.generated.ProcedureProtos;
+
[email protected]
+public class RefreshHFilesRegionProcedure extends Procedure
+  implements TableProcedureInterface,
+  RemoteProcedureDispatcher.RemoteProcedure {
+  private static final Logger LOG = 
LoggerFactory.getLogger(RefreshHFilesRegionProcedure.class);
+  private RegionInfo region;
+  private ProcedureEvent event;
+  private boolean dispatched;
+  private boolean succ;
+  private RetryCounter retryCounter;
+
+  public RefreshHFilesRegionProcedure() {
+  }
+
+  public RefreshHFilesRegionProcedure(RegionInfo region) {
+this.region = region;
+  }
+
+  @Override
+  protected void deserializeStateData(ProcedureStateSerializer serializer) 
throws IOException {
+MasterProcedureProtos.RefreshHFilesRegionProcedureStateData data =
+  
serializer.deserialize(MasterProcedureProtos.RefreshHFilesRegionProcedureStateData.class);
+this.region = ProtobufUtil.toRegionInfo(data.getRegion());
+  }
+
+  @Override
+  protected void serializeStateData(ProcedureStateSerializer serializer) 
throws IOException {
+MasterProcedureProtos.RefreshHFilesRegionProcedureStateData.Builder 
builder =
+  MasterProcedureProtos.RefreshHFilesRegionProcedureStateData.newBuilder();
+builder.setRegion(ProtobufUtil.toRegionInfo(region));
+serializer.serialize(builder.build());
+  }
+
+  @Override
+  protected boolean abort(MasterProcedureEnv env) {
+return false;
+  }
+
+  @Override
+  protected void rollback(MasterProcedureEnv env) throws IOException, 
InterruptedException {
+throw new UnsupportedOperationException();
+  }
+
+  private void setTimeoutForSuspend(MasterProcedureEnv env, String reason) {
+if (retryCounter == null) {
+  retryCounter = 
ProcedureUtil.createRetryCounter(env.getMasterConfiguration());
+}
+long backoff = retryCounter.getBackoffTimeAndIncrementAttempts();
+LOG.warn("{} can not run currently because {}, wait {} ms to retry", this, 
reason, backoff);
+setTimeout(Math.toIntExact(backoff));
+setState(ProcedureProtos.ProcedureState.WAITING_TIMEOUT);
+skipPersistence();
+  }
+
+  @Override
+  protected Procedure[] execute(MasterProcedureEnv env)
+throws ProcedureYieldException, ProcedureSuspendedException, 
InterruptedException {
+if (dispatched) {
+  if (succ) {
+return null;
+  }
+  dispatched = false;
+}
+
+RegionStates regionStates = env.getAssignmentManager().getRegionStates();
+

Re: [PR] HBASE-29328: Implement new HBase command: refresh_hfiles [hbase]

2025-09-09 Thread via GitHub


sharmaar12 commented on code in PR #7149:
URL: https://github.com/apache/hbase/pull/7149#discussion_r2332530509


##
hbase-server/src/main/java/org/apache/hadoop/hbase/master/procedure/RefreshHFilesRegionProcedure.java:
##
@@ -0,0 +1,198 @@
+/*
+ * 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.master.procedure;
+
+import java.io.IOException;
+import java.util.Optional;
+import org.apache.hadoop.hbase.ServerName;
+import org.apache.hadoop.hbase.TableName;
+import org.apache.hadoop.hbase.client.RegionInfo;
+import org.apache.hadoop.hbase.master.RegionState;
+import org.apache.hadoop.hbase.master.assignment.RegionStateNode;
+import org.apache.hadoop.hbase.master.assignment.RegionStates;
+import org.apache.hadoop.hbase.procedure2.FailedRemoteDispatchException;
+import org.apache.hadoop.hbase.procedure2.Procedure;
+import org.apache.hadoop.hbase.procedure2.ProcedureEvent;
+import org.apache.hadoop.hbase.procedure2.ProcedureStateSerializer;
+import org.apache.hadoop.hbase.procedure2.ProcedureSuspendedException;
+import org.apache.hadoop.hbase.procedure2.ProcedureUtil;
+import org.apache.hadoop.hbase.procedure2.ProcedureYieldException;
+import org.apache.hadoop.hbase.procedure2.RemoteProcedureDispatcher;
+import org.apache.hadoop.hbase.procedure2.RemoteProcedureException;
+import org.apache.hadoop.hbase.regionserver.RefreshHFilesCallable;
+import org.apache.hadoop.hbase.util.RetryCounter;
+import org.apache.yetus.audience.InterfaceAudience;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+import org.apache.hadoop.hbase.shaded.protobuf.ProtobufUtil;
+import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProcedureProtos;
+import org.apache.hadoop.hbase.shaded.protobuf.generated.ProcedureProtos;
+
[email protected]
+public class RefreshHFilesRegionProcedure extends Procedure
+  implements TableProcedureInterface,
+  RemoteProcedureDispatcher.RemoteProcedure {
+  private static final Logger LOG = 
LoggerFactory.getLogger(RefreshHFilesRegionProcedure.class);
+  private RegionInfo region;
+  private ProcedureEvent event;
+  private boolean dispatched;
+  private boolean succ;
+  private RetryCounter retryCounter;
+
+  public RefreshHFilesRegionProcedure() {
+  }
+
+  public RefreshHFilesRegionProcedure(RegionInfo region) {
+this.region = region;
+  }
+
+  @Override
+  protected void deserializeStateData(ProcedureStateSerializer serializer) 
throws IOException {
+MasterProcedureProtos.RefreshHFilesRegionProcedureStateData data =
+  
serializer.deserialize(MasterProcedureProtos.RefreshHFilesRegionProcedureStateData.class);
+this.region = ProtobufUtil.toRegionInfo(data.getRegion());
+  }
+
+  @Override
+  protected void serializeStateData(ProcedureStateSerializer serializer) 
throws IOException {
+MasterProcedureProtos.RefreshHFilesRegionProcedureStateData.Builder 
builder =
+  MasterProcedureProtos.RefreshHFilesRegionProcedureStateData.newBuilder();
+builder.setRegion(ProtobufUtil.toRegionInfo(region));
+serializer.serialize(builder.build());
+  }
+
+  @Override
+  protected boolean abort(MasterProcedureEnv env) {
+return false;
+  }
+
+  @Override
+  protected void rollback(MasterProcedureEnv env) throws IOException, 
InterruptedException {
+throw new UnsupportedOperationException();
+  }
+
+  private void setTimeoutForSuspend(MasterProcedureEnv env, String reason) {
+if (retryCounter == null) {
+  retryCounter = 
ProcedureUtil.createRetryCounter(env.getMasterConfiguration());
+}
+long backoff = retryCounter.getBackoffTimeAndIncrementAttempts();
+LOG.warn("{} can not run currently because {}, wait {} ms to retry", this, 
reason, backoff);
+setTimeout(Math.toIntExact(backoff));
+setState(ProcedureProtos.ProcedureState.WAITING_TIMEOUT);
+skipPersistence();
+  }
+
+  @Override
+  protected Procedure[] execute(MasterProcedureEnv env)
+throws ProcedureYieldException, ProcedureSuspendedException, 
InterruptedException {
+if (dispatched) {
+  if (succ) {
+return null;
+  }
+  dispatched = false;
+}
+
+RegionStates regionStates = env.getAssignmentManager().getRegionStates();
+

Re: [PR] HBASE-29328: Implement new HBase command: refresh_hfiles [hbase]

2025-09-09 Thread via GitHub


sharmaar12 commented on code in PR #7149:
URL: https://github.com/apache/hbase/pull/7149#discussion_r2332471511


##
hbase-server/src/main/java/org/apache/hadoop/hbase/master/procedure/RefreshHFilesRegionProcedure.java:
##
@@ -0,0 +1,198 @@
+/*
+ * 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.master.procedure;
+
+import java.io.IOException;
+import java.util.Optional;
+import org.apache.hadoop.hbase.ServerName;
+import org.apache.hadoop.hbase.TableName;
+import org.apache.hadoop.hbase.client.RegionInfo;
+import org.apache.hadoop.hbase.master.RegionState;
+import org.apache.hadoop.hbase.master.assignment.RegionStateNode;
+import org.apache.hadoop.hbase.master.assignment.RegionStates;
+import org.apache.hadoop.hbase.procedure2.FailedRemoteDispatchException;
+import org.apache.hadoop.hbase.procedure2.Procedure;
+import org.apache.hadoop.hbase.procedure2.ProcedureEvent;
+import org.apache.hadoop.hbase.procedure2.ProcedureStateSerializer;
+import org.apache.hadoop.hbase.procedure2.ProcedureSuspendedException;
+import org.apache.hadoop.hbase.procedure2.ProcedureUtil;
+import org.apache.hadoop.hbase.procedure2.ProcedureYieldException;
+import org.apache.hadoop.hbase.procedure2.RemoteProcedureDispatcher;
+import org.apache.hadoop.hbase.procedure2.RemoteProcedureException;
+import org.apache.hadoop.hbase.regionserver.RefreshHFilesCallable;
+import org.apache.hadoop.hbase.util.RetryCounter;
+import org.apache.yetus.audience.InterfaceAudience;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+import org.apache.hadoop.hbase.shaded.protobuf.ProtobufUtil;
+import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProcedureProtos;
+import org.apache.hadoop.hbase.shaded.protobuf.generated.ProcedureProtos;
+

Review Comment:
   Added class specific documentation with overall logic. Let me know if we 
need to add method specific documentation too.



-- 
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-29328: Implement new HBase command: refresh_hfiles [hbase]

2025-09-09 Thread via GitHub


sharmaar12 commented on PR #7149:
URL: https://github.com/apache/hbase/pull/7149#issuecomment-3269427414

   > Tested with the following steps:
   > 
   > 1. Create new table 'andor' and added a row and flushed
   > 
   > ```
   > hbase:002:0> create 'andor', 'cf1'
   > Created table andor
   > Took 0.6623 seconds
   > => Hbase::Table - andor
   > hbase:005:0> put 'andor', 'r1', 'cf1', 'bela1'
   > Took 0.0099 seconds
   > hbase:007:0> flush 'andor'
   > Took 0.3376 seconds
   > 
   > $ ls -al cf1/
   > total 16
   > drwxr-xr-x  3 andor  staff96 Sep  2 14:42 .
   > drwxr-xr-x  6 andor  staff   192 Sep  2 14:23 ..
   > -rw-r--r--  1 andor  staff  4959 Sep  2 14:23 
56eb73a0801c4c9c91164e74dfaecebe
   > ```
   > 
   > 2. Added another row and flushed again
   > 
   > ```
   > hbase:020:0> scan 'andor'
   > ROW  COLUMN+CELL
   >  r1 column=cf1:, timestamp=2025-09-02T14:23:00.052, value=bela1
   >  r2 column=cf1:, timestamp=2025-09-02T14:42:42.472, value=bela2
   > 2 row(s)
   > Took 0.0029 seconds
   > 
   > $ ls -al cf1/
   > total 32
   > drwxr-xr-x  4 andor  staff   128 Sep  2 14:43 .
   > drwxr-xr-x  6 andor  staff   192 Sep  2 14:23 ..
   > -rw-r--r--  1 andor  staff  4959 Sep  2 14:23 
56eb73a0801c4c9c91164e74dfaecebe
   > -rw-r--r--  1 andor  staff  4959 Sep  2 14:42 
ecd71932ecb44b639ede20b42bc7b397
   > ```
   > 
   > 3. Moved away the second HFile (ecd71932ecb44b639ede20b42bc7b397) and done 
**refresh_hfiles** successfully. I only see the first row in the table.
   > 
   > ```
   > hbase:024:0> scan 'andor'
   > ROW  COLUMN+CELL
   >  r1 column=cf1:, timestamp=2025-09-02T14:23:00.052, value=bela1
   > 1 row(s)
   > ```
   > 
   > 4. Moved back the second HFile (ecd71932ecb44b639ede20b42bc7b397) and done 
**refresh_hfiles** again, but I can't see the second row no matter what I do.
   > 
   > ```
   > $ ls -al cf1/
   > total 32
   > drwxr-xr-x  4 andor  staff   128 Sep  2 14:43 .
   > drwxr-xr-x  6 andor  staff   192 Sep  2 14:23 ..
   > -rw-r--r--  1 andor  staff  4959 Sep  2 14:23 
56eb73a0801c4c9c91164e74dfaecebe
   > -rw-r--r--  1 andor  staff  4959 Sep  2 14:42 
ecd71932ecb44b639ede20b42bc7b397
   > 
   > hbase:025:0> refresh_hfiles
   > Took 0.0017 seconds
   > => 21
   > hbase:026:0> scan 'andor'
   > ROW  COLUMN+CELL
   >  r1 column=cf1:, timestamp=2025-09-02T14:23:00.052, value=bela1
   > 1 row(s)
   > Took 0.0023 seconds
   > ```
   > 
   > 5. Restarting HBase solves the problem, I can see the second row again.
   
   (After discussion and help from @wchevreuil we have arrived at the following 
conclusion)
   
   **TL;DR:** The above scenarios is an invalid test expectation and will never 
arise in the real world active and read-replica scenarios. The issue is coming 
because the Hfile name conflict when removing (marking it as compacted) and 
adding the same file (compacted file) back to the store. In case of active and 
read-replica the HFile names will always be unique hence the name conflict will 
never arise.
   
   **Detailed Explanation:**
   We can break the refreshHFiles in two parts:
   **Step1:** Detecting/Loading the newly added HFiles
   **Step2:** Making the newly added HFiles available for reading
   
   **Our Test scenario is:**
   
   1. Create Table with two rows, execute flush after each insert so that we 
have two HFiles.
   2. Move one HFile to another directory
   3. RefreshHFiles
   4. Move back the same file in 2 to CF (Column Family/store) directory
   5. Again RefreshHFiles (Expected behavior is we should see the two rows that 
we have added in 1)
   
   In both 3 and 5 we detect that one file is deleted and one file is newly 
added respectively. But why the data is not available for reading post 5 is 
because behavior in 3.
   
   Let see details of what happen in 3, say there are two HFiles `hf1` and 
`hf2` and you removed `hf1`, when we execute refereshHfiles then we detect that 
`hf1` is gone so we removed it from our SFT structure but internally HBase does 
not remove it, it actually mark it as compacted file. This is done so that for 
the transaction coming before this refresh should have access to it and for 
transaction coming after this refresh should not have access. These marked 
compacted files will get clean up by background chores. Note that the in memory 
structure has marked the file (with file name `hf1`) as compacted so anything 
coming after this point will not be able to access it.
   
   In 5, **Step1** of refreshHfiles successfully determine that `hf1` has been 
added newly, but when we try to open it for reading (**Step2**), it is not 
allowed because `hf1` (same name) is marked as compacted. So refreshing Hfiles 
is not an issue but reading the file is.
   
   If we try changing the name of the file before copying back then it work 
properly.
   Hence, we can safely assume, this scenario will not arise in case of Active 
and Read replica as the HFile names will always be unique and will not have 
such conflicts.


-- 
This is an 

Re: [PR] HBASE-29328: Implement new HBase command: refresh_hfiles [hbase]

2025-09-09 Thread via GitHub


sharmaar12 commented on code in PR #7149:
URL: https://github.com/apache/hbase/pull/7149#discussion_r2332362784


##
hbase-shell/src/main/ruby/shell/commands/refresh_hfiles.rb:
##
@@ -0,0 +1,36 @@
+#
+# 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.
+#
+
+module Shell
+  module Commands
+class RefreshHfiles < Command
+  def help
+return <<-EOF
+Refresh HFiles for the table.
+For example:
+
+  hbase> refresh_hfiles 'TABLENAME'
+

Review Comment:
   Added the detailed help documentation.



-- 
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-29328: Implement new HBase command: refresh_hfiles [hbase]

2025-09-09 Thread via GitHub


sharmaar12 commented on code in PR #7149:
URL: https://github.com/apache/hbase/pull/7149#discussion_r2332247201


##
hbase-server/src/main/java/org/apache/hadoop/hbase/master/procedure/RefreshHFilesRegionProcedure.java:
##
@@ -0,0 +1,198 @@
+/*
+ * 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.master.procedure;
+
+import java.io.IOException;
+import java.util.Optional;
+import org.apache.hadoop.hbase.ServerName;
+import org.apache.hadoop.hbase.TableName;
+import org.apache.hadoop.hbase.client.RegionInfo;
+import org.apache.hadoop.hbase.master.RegionState;
+import org.apache.hadoop.hbase.master.assignment.RegionStateNode;
+import org.apache.hadoop.hbase.master.assignment.RegionStates;
+import org.apache.hadoop.hbase.procedure2.FailedRemoteDispatchException;
+import org.apache.hadoop.hbase.procedure2.Procedure;
+import org.apache.hadoop.hbase.procedure2.ProcedureEvent;
+import org.apache.hadoop.hbase.procedure2.ProcedureStateSerializer;
+import org.apache.hadoop.hbase.procedure2.ProcedureSuspendedException;
+import org.apache.hadoop.hbase.procedure2.ProcedureUtil;
+import org.apache.hadoop.hbase.procedure2.ProcedureYieldException;
+import org.apache.hadoop.hbase.procedure2.RemoteProcedureDispatcher;
+import org.apache.hadoop.hbase.procedure2.RemoteProcedureException;
+import org.apache.hadoop.hbase.regionserver.RefreshHFilesCallable;
+import org.apache.hadoop.hbase.util.RetryCounter;
+import org.apache.yetus.audience.InterfaceAudience;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+import org.apache.hadoop.hbase.shaded.protobuf.ProtobufUtil;
+import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProcedureProtos;
+import org.apache.hadoop.hbase.shaded.protobuf.generated.ProcedureProtos;
+
[email protected]
+public class RefreshHFilesRegionProcedure extends Procedure
+  implements TableProcedureInterface,
+  RemoteProcedureDispatcher.RemoteProcedure {
+  private static final Logger LOG = 
LoggerFactory.getLogger(RefreshHFilesRegionProcedure.class);
+  private RegionInfo region;
+  private ProcedureEvent event;
+  private boolean dispatched;
+  private boolean succ;
+  private RetryCounter retryCounter;
+
+  public RefreshHFilesRegionProcedure() {
+  }
+
+  public RefreshHFilesRegionProcedure(RegionInfo region) {
+this.region = region;
+  }
+
+  @Override
+  protected void deserializeStateData(ProcedureStateSerializer serializer) 
throws IOException {
+MasterProcedureProtos.RefreshHFilesRegionProcedureStateData data =
+  
serializer.deserialize(MasterProcedureProtos.RefreshHFilesRegionProcedureStateData.class);
+this.region = ProtobufUtil.toRegionInfo(data.getRegion());
+  }
+
+  @Override
+  protected void serializeStateData(ProcedureStateSerializer serializer) 
throws IOException {
+MasterProcedureProtos.RefreshHFilesRegionProcedureStateData.Builder 
builder =
+  MasterProcedureProtos.RefreshHFilesRegionProcedureStateData.newBuilder();
+builder.setRegion(ProtobufUtil.toRegionInfo(region));
+serializer.serialize(builder.build());
+  }
+
+  @Override
+  protected boolean abort(MasterProcedureEnv env) {
+return false;
+  }
+
+  @Override
+  protected void rollback(MasterProcedureEnv env) throws IOException, 
InterruptedException {
+throw new UnsupportedOperationException();
+  }
+
+  private void setTimeoutForSuspend(MasterProcedureEnv env, String reason) {
+if (retryCounter == null) {
+  retryCounter = 
ProcedureUtil.createRetryCounter(env.getMasterConfiguration());
+}
+long backoff = retryCounter.getBackoffTimeAndIncrementAttempts();
+LOG.warn("{} can not run currently because {}, wait {} ms to retry", this, 
reason, backoff);
+setTimeout(Math.toIntExact(backoff));
+setState(ProcedureProtos.ProcedureState.WAITING_TIMEOUT);
+skipPersistence();
+  }
+
+  @Override
+  protected Procedure[] execute(MasterProcedureEnv env)
+throws ProcedureYieldException, ProcedureSuspendedException, 
InterruptedException {
+if (dispatched) {
+  if (succ) {
+return null;
+  }
+  dispatched = false;
+}
+
+RegionStates regionStates = env.getAssignmentManager().getRegionStates();
+

Re: [PR] HBASE-29328: Implement new HBase command: refresh_hfiles [hbase]

2025-09-07 Thread via GitHub


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

   Let's try to investigate the cases with different store file tracker 
implementations.
   
   **1. DefaultStoreFileTracker**
   
   ```java
   /**
* The default implementation for store file tracker, where we do not 
persist the store file list,
* and use listing when loading store files.
*/
   @InterfaceAudience.Private
   class DefaultStoreFileTracker extends StoreFileTrackerBase {
   ```
   
   So, in this case the refresh command should always get a list of all HFiles 
in the CF directory and should be able to detect new HFiles automatically. Is 
the correct?
   
   **2. File based tracker**
   
   ```java
   /**
* A file based store file tracker.
* 
* For this tracking way, the store file list will be persistent into a 
file, so we can write the
* new store files directly to the final data directory, as we will not load 
the broken files. This
* will greatly reduce the time for flush and compaction on some object 
storages as a rename is
* actual a copy on them. And it also avoid listing when loading store file 
list, which could also
* speed up the loading of store files as listing is also not a fast 
operation on most object
* storages.
*/
   @InterfaceAudience.Private
   class FileBasedStoreFileTracker extends StoreFileTrackerBase {
   ```
   
   I think this is the case that you're talking about. In this case SFT might 
be able or might not be able to detect new HFiles depending on whether the SFT 
file has been updated or not. So, basically if I just copy a new file to the CF 
directory, it won't be detected, because of the reasons you mentioned. But if 
the new HFile was properly added by another cluster which is using the same SFT 
implementation, the file must have been updated properly, so our cluster will 
pick it up.
   
   If all the above are true, do we need to add any additional logic to the 
command?


-- 
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-29328: Implement new HBase command: refresh_hfiles [hbase]

2025-09-04 Thread via GitHub


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

   :broken_heart: **-1 overall**
   
   
   
   
   
   
   | Vote | Subsystem | Runtime |  Logfile | Comment |
   |::|--:|:|::|:---:|
   | +0 :ok: |  reexec  |   0m 39s |  |  Docker mode activated.  |
   | -0 :warning: |  yetus  |   0m  4s |  |  Unprocessed flag(s): 
--brief-report-file --spotbugs-strict-precheck --author-ignore-list 
--blanks-eol-ignore-file --blanks-tabs-ignore-file --quick-hadoopcheck  |
    _ Prechecks _ |
    _ HBASE-29081 Compile Tests _ |
   | +0 :ok: |  mvndep  |   0m 13s |  |  Maven dependency ordering for branch  |
   | +1 :green_heart: |  mvninstall  |   4m  2s |  |  HBASE-29081 passed  |
   | +1 :green_heart: |  compile  |   3m 48s |  |  HBASE-29081 passed  |
   | +1 :green_heart: |  javadoc  |   2m 22s |  |  HBASE-29081 passed  |
   | +1 :green_heart: |  shadedjars  |   7m 31s |  |  branch has no errors when 
building our shaded downstream artifacts.  |
    _ Patch Compile Tests _ |
   | +0 :ok: |  mvndep  |   0m 14s |  |  Maven dependency ordering for patch  |
   | +1 :green_heart: |  mvninstall  |   3m 56s |  |  the patch passed  |
   | +1 :green_heart: |  compile  |   3m 43s |  |  the patch passed  |
   | +1 :green_heart: |  javac  |   3m 43s |  |  the patch passed  |
   | +1 :green_heart: |  javadoc  |   2m 17s |  |  the patch passed  |
   | +1 :green_heart: |  shadedjars  |   7m 17s |  |  patch has no errors when 
building our shaded downstream artifacts.  |
    _ Other Tests _ |
   | +1 :green_heart: |  unit  |   0m 45s |  |  hbase-protocol-shaded in the 
patch passed.  |
   | +1 :green_heart: |  unit  |   2m 15s |  |  hbase-client in the patch 
passed.  |
   | -1 :x: |  unit  | 246m 17s | 
[/patch-unit-hbase-server.txt](https://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-7149/15/artifact/yetus-jdk17-hadoop3-check/output/patch-unit-hbase-server.txt)
 |  hbase-server in the patch failed.  |
   | +1 :green_heart: |  unit  |   6m 52s |  |  hbase-thrift in the patch 
passed.  |
   | +1 :green_heart: |  unit  |   8m 21s |  |  hbase-shell in the patch 
passed.  |
   | +1 :green_heart: |  unit  |   2m 32s |  |  hbase-examples in the patch 
passed.  |
   |  |   | 308m 53s |  |  |
   
   
   | Subsystem | Report/Notes |
   |--:|:-|
   | Docker | ClientAPI=1.43 ServerAPI=1.43 base: 
https://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-7149/15/artifact/yetus-jdk17-hadoop3-check/output/Dockerfile
 |
   | GITHUB PR | https://github.com/apache/hbase/pull/7149 |
   | JIRA Issue | HBASE-29328 |
   | Optional Tests | javac javadoc unit compile shadedjars |
   | uname | Linux bfc05e5d3d9e 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-29081 / c25cc9a070ab240a406756413d33236e98a7a630 |
   | Default Java | Eclipse Adoptium-17.0.11+9 |
   |  Test Results | 
https://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-7149/15/testReport/
 |
   | Max. process+thread count | 4761 (vs. ulimit of 3) |
   | modules | C: hbase-protocol-shaded hbase-client hbase-server hbase-thrift 
hbase-shell hbase-examples U: . |
   | Console output | 
https://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-7149/15/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-29328: Implement new HBase command: refresh_hfiles [hbase]

2025-09-04 Thread via GitHub


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


##
hbase-server/src/main/java/org/apache/hadoop/hbase/master/procedure/RefreshHFilesRegionProcedure.java:
##
@@ -0,0 +1,198 @@
+/*
+ * 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.master.procedure;
+
+import java.io.IOException;
+import java.util.Optional;
+import org.apache.hadoop.hbase.ServerName;
+import org.apache.hadoop.hbase.TableName;
+import org.apache.hadoop.hbase.client.RegionInfo;
+import org.apache.hadoop.hbase.master.RegionState;
+import org.apache.hadoop.hbase.master.assignment.RegionStateNode;
+import org.apache.hadoop.hbase.master.assignment.RegionStates;
+import org.apache.hadoop.hbase.procedure2.FailedRemoteDispatchException;
+import org.apache.hadoop.hbase.procedure2.Procedure;
+import org.apache.hadoop.hbase.procedure2.ProcedureEvent;
+import org.apache.hadoop.hbase.procedure2.ProcedureStateSerializer;
+import org.apache.hadoop.hbase.procedure2.ProcedureSuspendedException;
+import org.apache.hadoop.hbase.procedure2.ProcedureUtil;
+import org.apache.hadoop.hbase.procedure2.ProcedureYieldException;
+import org.apache.hadoop.hbase.procedure2.RemoteProcedureDispatcher;
+import org.apache.hadoop.hbase.procedure2.RemoteProcedureException;
+import org.apache.hadoop.hbase.regionserver.RefreshHFilesCallable;
+import org.apache.hadoop.hbase.util.RetryCounter;
+import org.apache.yetus.audience.InterfaceAudience;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+import org.apache.hadoop.hbase.shaded.protobuf.ProtobufUtil;
+import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProcedureProtos;
+import org.apache.hadoop.hbase.shaded.protobuf.generated.ProcedureProtos;
+
[email protected]
+public class RefreshHFilesRegionProcedure extends Procedure
+  implements TableProcedureInterface,
+  RemoteProcedureDispatcher.RemoteProcedure {
+  private static final Logger LOG = 
LoggerFactory.getLogger(RefreshHFilesRegionProcedure.class);
+  private RegionInfo region;
+  private ProcedureEvent event;
+  private boolean dispatched;
+  private boolean succ;
+  private RetryCounter retryCounter;
+
+  public RefreshHFilesRegionProcedure() {
+  }
+
+  public RefreshHFilesRegionProcedure(RegionInfo region) {
+this.region = region;
+  }
+
+  @Override
+  protected void deserializeStateData(ProcedureStateSerializer serializer) 
throws IOException {
+MasterProcedureProtos.RefreshHFilesRegionProcedureStateData data =
+  
serializer.deserialize(MasterProcedureProtos.RefreshHFilesRegionProcedureStateData.class);
+this.region = ProtobufUtil.toRegionInfo(data.getRegion());
+  }
+
+  @Override
+  protected void serializeStateData(ProcedureStateSerializer serializer) 
throws IOException {
+MasterProcedureProtos.RefreshHFilesRegionProcedureStateData.Builder 
builder =
+  MasterProcedureProtos.RefreshHFilesRegionProcedureStateData.newBuilder();
+builder.setRegion(ProtobufUtil.toRegionInfo(region));
+serializer.serialize(builder.build());
+  }
+
+  @Override
+  protected boolean abort(MasterProcedureEnv env) {
+return false;
+  }
+
+  @Override
+  protected void rollback(MasterProcedureEnv env) throws IOException, 
InterruptedException {
+throw new UnsupportedOperationException();
+  }
+
+  private void setTimeoutForSuspend(MasterProcedureEnv env, String reason) {
+if (retryCounter == null) {
+  retryCounter = 
ProcedureUtil.createRetryCounter(env.getMasterConfiguration());
+}
+long backoff = retryCounter.getBackoffTimeAndIncrementAttempts();
+LOG.warn("{} can not run currently because {}, wait {} ms to retry", this, 
reason, backoff);
+setTimeout(Math.toIntExact(backoff));
+setState(ProcedureProtos.ProcedureState.WAITING_TIMEOUT);
+skipPersistence();
+  }
+
+  @Override
+  protected Procedure[] execute(MasterProcedureEnv env)
+throws ProcedureYieldException, ProcedureSuspendedException, 
InterruptedException {
+if (dispatched) {
+  if (succ) {
+return null;
+  }
+  dispatched = false;
+}
+
+RegionStates regionStates = env.getAssignmentManager().getRegionStates();
+

Re: [PR] HBASE-29328: Implement new HBase command: refresh_hfiles [hbase]

2025-09-04 Thread via GitHub


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

   :broken_heart: **-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: |  buf  |   0m  0s |  |  buf was not available.  |
   | +0 :ok: |  buf  |   0m  0s |  |  buf 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-29081 Compile Tests _ |
   | +0 :ok: |  mvndep  |   0m 16s |  |  Maven dependency ordering for branch  |
   | +1 :green_heart: |  mvninstall  |   3m 51s |  |  HBASE-29081 passed  |
   | +1 :green_heart: |  compile  |   6m 30s |  |  HBASE-29081 passed  |
   | +1 :green_heart: |  checkstyle  |   2m 40s |  |  HBASE-29081 passed  |
   | +1 :green_heart: |  spotbugs  |   8m  9s |  |  HBASE-29081 passed  |
   | +1 :green_heart: |  spotless  |   1m  0s |  |  branch has no errors when 
running spotless:check.  |
    _ Patch Compile Tests _ |
   | +0 :ok: |  mvndep  |   0m 12s |  |  Maven dependency ordering for patch  |
   | +1 :green_heart: |  mvninstall  |   3m 38s |  |  the patch passed  |
   | +1 :green_heart: |  compile  |   8m  5s |  |  the patch passed  |
   | +1 :green_heart: |  cc  |   8m  5s |  |  the patch passed  |
   | +1 :green_heart: |  javac  |   8m  5s |  |  the patch passed  |
   | +1 :green_heart: |  blanks  |   0m  0s |  |  The patch has no blanks 
issues.  |
   | -0 :warning: |  checkstyle  |   0m 20s | 
[/buildtool-patch-checkstyle-hbase-server.txt](https://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-7149/15/artifact/yetus-general-check/output/buildtool-patch-checkstyle-hbase-server.txt)
 |  The patch fails to run checkstyle in hbase-server  |
   | -0 :warning: |  rubocop  |   0m 20s | 
[/results-rubocop.txt](https://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-7149/15/artifact/yetus-general-check/output/results-rubocop.txt)
 |  The patch generated 15 new + 445 unchanged - 0 fixed = 460 total (was 445)  
|
   | +1 :green_heart: |  spotbugs  |   8m 34s |  |  the patch passed  |
   | +1 :green_heart: |  hadoopcheck  |  18m 32s |  |  Patch does not cause any 
errors with Hadoop 3.3.6 3.4.0.  |
   | +1 :green_heart: |  hbaseprotoc  |   3m 51s |  |  the patch passed  |
   | -1 :x: |  spotless  |   0m 33s |  |  patch has 21 errors when running 
spotless:check, run spotless:apply to fix.  |
    _ Other Tests _ |
   | +1 :green_heart: |  asflicense  |   1m  4s |  |  The patch does not 
generate ASF License warnings.  |
   |  |   |  81m 25s |  |  |
   
   
   | Subsystem | Report/Notes |
   |--:|:-|
   | Docker | ClientAPI=1.43 ServerAPI=1.43 base: 
https://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-7149/15/artifact/yetus-general-check/output/Dockerfile
 |
   | GITHUB PR | https://github.com/apache/hbase/pull/7149 |
   | JIRA Issue | HBASE-29328 |
   | Optional Tests | dupname asflicense javac spotbugs checkstyle codespell 
detsecrets compile hadoopcheck hbaseanti spotless cc buflint bufcompat 
hbaseprotoc rubocop |
   | uname | Linux a866a6f5d20e 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-29081 / c25cc9a070ab240a406756413d33236e98a7a630 |
   | Default Java | Eclipse Adoptium-17.0.11+9 |
   | spotless | 
https://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-7149/15/artifact/yetus-general-check/output/patch-spotless.txt
 |
   | Max. process+thread count | 86 (vs. ulimit of 3) |
   | modules | C: hbase-protocol-shaded hbase-client hbase-server hbase-thrift 
hbase-shell hbase-examples U: . |
   | Console output | 
https://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-7149/15/console
 |
   | versions | git=2.34.1 maven=3.9.8 spotbugs=4.7.3 rubocop=1.37.1 |
   | 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-29328: Implement new HBase command: refresh_hfiles [hbase]

2025-09-03 Thread via GitHub


ragarkar commented on code in PR #7149:
URL: https://github.com/apache/hbase/pull/7149#discussion_r2319227243


##
hbase-shell/src/main/ruby/shell/commands/refresh_hfiles.rb:
##
@@ -0,0 +1,36 @@
+#
+# 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.
+#
+
+module Shell
+  module Commands
+class RefreshHfiles < Command
+  def help
+return <<-EOF
+Refresh HFiles for the table.
+For example:
+
+  hbase> refresh_hfiles 'TABLENAME'
+

Review Comment:
   Please update the help message to reflect the correct syntax.



-- 
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-29328: Implement new HBase command: refresh_hfiles [hbase]

2025-09-03 Thread via GitHub


ragarkar commented on PR #7149:
URL: https://github.com/apache/hbase/pull/7149#issuecomment-3249492510

   Please update the help message indicating the correct usage:
   
   hbase:009:0> help 'refresh_hfiles'
   Refresh HFiles for the table.
   For example:
   
 hbase> refresh_hfiles 'TABLENAME'
   
   hbase:010:0> refresh_hfiles 'andor'
   
   ERROR: undefined method `fetch' for "andor":String
   
   For usage try 'help "refresh_hfiles"'
   
   Took 0.0234 seconds
   
   The "help 'refresh_hfiles'" command does not reflect the correct syntax and 
we need to fix it.


-- 
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-29328: Implement new HBase command: refresh_hfiles [hbase]

2025-09-03 Thread via GitHub


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

   :broken_heart: **-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: |  buf  |   0m  0s |  |  buf was not available.  |
   | +0 :ok: |  buf  |   0m  0s |  |  buf 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-29081 Compile Tests _ |
   | +0 :ok: |  mvndep  |   0m 10s |  |  Maven dependency ordering for branch  |
   | +1 :green_heart: |  mvninstall  |   3m 11s |  |  HBASE-29081 passed  |
   | +1 :green_heart: |  compile  |   5m 51s |  |  HBASE-29081 passed  |
   | +1 :green_heart: |  checkstyle  |   1m 39s |  |  HBASE-29081 passed  |
   | +1 :green_heart: |  spotbugs  |   5m 52s |  |  HBASE-29081 passed  |
   | +1 :green_heart: |  spotless  |   0m 51s |  |  branch has no errors when 
running spotless:check.  |
    _ Patch Compile Tests _ |
   | +0 :ok: |  mvndep  |   0m 12s |  |  Maven dependency ordering for patch  |
   | +1 :green_heart: |  mvninstall  |   2m 59s |  |  the patch passed  |
   | +1 :green_heart: |  compile  |   5m 48s |  |  the patch passed  |
   | +1 :green_heart: |  cc  |   5m 48s |  |  the patch passed  |
   | +1 :green_heart: |  javac  |   5m 48s |  |  the patch passed  |
   | +1 :green_heart: |  blanks  |   0m  0s |  |  The patch has no blanks 
issues.  |
   | -0 :warning: |  checkstyle  |   0m 15s | 
[/buildtool-patch-checkstyle-hbase-server.txt](https://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-7149/14/artifact/yetus-general-check/output/buildtool-patch-checkstyle-hbase-server.txt)
 |  The patch fails to run checkstyle in hbase-server  |
   | -0 :warning: |  rubocop  |   0m 10s | 
[/results-rubocop.txt](https://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-7149/14/artifact/yetus-general-check/output/results-rubocop.txt)
 |  The patch generated 15 new + 445 unchanged - 0 fixed = 460 total (was 445)  
|
   | +1 :green_heart: |  spotbugs  |   6m 23s |  |  the patch passed  |
   | +1 :green_heart: |  hadoopcheck  |  11m 36s |  |  Patch does not cause any 
errors with Hadoop 3.3.6 3.4.0.  |
   | +1 :green_heart: |  hbaseprotoc  |   2m 10s |  |  the patch passed  |
   | -1 :x: |  spotless  |   0m 20s |  |  patch has 21 errors when running 
spotless:check, run spotless:apply to fix.  |
    _ Other Tests _ |
   | +1 :green_heart: |  asflicense  |   0m 46s |  |  The patch does not 
generate ASF License warnings.  |
   |  |   |  57m 59s |  |  |
   
   
   | Subsystem | Report/Notes |
   |--:|:-|
   | Docker | ClientAPI=1.43 ServerAPI=1.43 base: 
https://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-7149/14/artifact/yetus-general-check/output/Dockerfile
 |
   | GITHUB PR | https://github.com/apache/hbase/pull/7149 |
   | JIRA Issue | HBASE-29328 |
   | Optional Tests | dupname asflicense javac spotbugs checkstyle codespell 
detsecrets compile hadoopcheck hbaseanti spotless cc buflint bufcompat 
hbaseprotoc rubocop |
   | uname | Linux d8ae5e429d2b 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-29081 / 329205ad7962f15647539ec5d93f4cbbb8ed565c |
   | Default Java | Eclipse Adoptium-17.0.11+9 |
   | spotless | 
https://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-7149/14/artifact/yetus-general-check/output/patch-spotless.txt
 |
   | Max. process+thread count | 85 (vs. ulimit of 3) |
   | modules | C: hbase-protocol-shaded hbase-client hbase-server hbase-thrift 
hbase-shell U: . |
   | Console output | 
https://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-7149/14/console
 |
   | versions | git=2.34.1 maven=3.9.8 spotbugs=4.7.3 rubocop=1.37.1 |
   | 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-29328: Implement new HBase command: refresh_hfiles [hbase]

2025-09-03 Thread via GitHub


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

   Tested with the following steps:
   1. Create new table 'andor' and added a row and flushed
   
   ```
   hbase:002:0> create 'andor', 'cf1'
   Created table andor
   Took 0.6623 seconds
   => Hbase::Table - andor
   hbase:005:0> put 'andor', 'r1', 'cf1', 'bela1'
   Took 0.0099 seconds
   hbase:007:0> flush 'andor'
   Took 0.3376 seconds
   
   $ ls -al cf1/
   total 16
   drwxr-xr-x  3 andor  staff96 Sep  2 14:42 .
   drwxr-xr-x  6 andor  staff   192 Sep  2 14:23 ..
   -rw-r--r--  1 andor  staff  4959 Sep  2 14:23 
56eb73a0801c4c9c91164e74dfaecebe
   ```
   
   2. Added another row and flushed again
   
   ```
   $ ls -al cf1/
   total 32
   drwxr-xr-x  4 andor  staff   128 Sep  2 14:43 .
   drwxr-xr-x  6 andor  staff   192 Sep  2 14:23 ..
   -rw-r--r--  1 andor  staff  4959 Sep  2 14:23 
56eb73a0801c4c9c91164e74dfaecebe
   -rw-r--r--  1 andor  staff  4959 Sep  2 14:42 
ecd71932ecb44b639ede20b42bc7b397
   ``` 
   
   3. Moved away the second HFile (ecd71932ecb44b639ede20b42bc7b397) and done 
**refresh_hfiles** successfully. I only see the first row in the table.
   
   ```
   hbase:024:0> scan 'andor'
   ROW  COLUMN+CELL
r1 column=cf1:, timestamp=2025-09-02T14:23:00.052, value=bela1
   1 row(s)
   ```
   
   4. Moved back the second HFile (ecd71932ecb44b639ede20b42bc7b397) and done 
**refresh_hfiles** again, but I can't see the second row no matter what I do.
   
   ```
   $ ls -al cf1/
   total 32
   drwxr-xr-x  4 andor  staff   128 Sep  2 14:43 .
   drwxr-xr-x  6 andor  staff   192 Sep  2 14:23 ..
   -rw-r--r--  1 andor  staff  4959 Sep  2 14:23 
56eb73a0801c4c9c91164e74dfaecebe
   -rw-r--r--  1 andor  staff  4959 Sep  2 14:42 
ecd71932ecb44b639ede20b42bc7b397
   
   hbase:025:0> refresh_hfiles
   Took 0.0017 seconds
   => 21
   hbase:026:0> scan 'andor'
   ROW  COLUMN+CELL
r1 column=cf1:, timestamp=2025-09-02T14:23:00.052, value=bela1
   1 row(s)
   Took 0.0023 seconds
   ```


-- 
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-29328: Implement new HBase command: refresh_hfiles [hbase]

2025-09-02 Thread via GitHub


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

   :broken_heart: **-1 overall**
   
   
   
   
   
   
   | Vote | Subsystem | Runtime |  Logfile | Comment |
   |::|--:|:|::|:---:|
   | +0 :ok: |  reexec  |   0m 37s |  |  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-29081 Compile Tests _ |
   | +0 :ok: |  mvndep  |   0m 38s |  |  Maven dependency ordering for branch  |
   | +1 :green_heart: |  mvninstall  |   3m 41s |  |  HBASE-29081 passed  |
   | +1 :green_heart: |  compile  |   2m 36s |  |  HBASE-29081 passed  |
   | +1 :green_heart: |  javadoc  |   1m 37s |  |  HBASE-29081 passed  |
   | +1 :green_heart: |  shadedjars  |   6m 10s |  |  branch has no errors when 
building our shaded downstream artifacts.  |
    _ Patch Compile Tests _ |
   | +0 :ok: |  mvndep  |   0m 13s |  |  Maven dependency ordering for patch  |
   | +1 :green_heart: |  mvninstall  |   3m 10s |  |  the patch passed  |
   | +1 :green_heart: |  compile  |   2m 36s |  |  the patch passed  |
   | +1 :green_heart: |  javac  |   2m 36s |  |  the patch passed  |
   | +1 :green_heart: |  javadoc  |   1m 34s |  |  the patch passed  |
   | +1 :green_heart: |  shadedjars  |   6m  5s |  |  patch has no errors when 
building our shaded downstream artifacts.  |
    _ Other Tests _ |
   | +1 :green_heart: |  unit  |   0m 34s |  |  hbase-protocol-shaded in the 
patch passed.  |
   | +1 :green_heart: |  unit  |   1m 39s |  |  hbase-client in the patch 
passed.  |
   | -1 :x: |  unit  | 236m 15s | 
[/patch-unit-hbase-server.txt](https://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-7149/14/artifact/yetus-jdk17-hadoop3-check/output/patch-unit-hbase-server.txt)
 |  hbase-server in the patch failed.  |
   | +1 :green_heart: |  unit  |   7m 45s |  |  hbase-thrift in the patch 
passed.  |
   | +1 :green_heart: |  unit  |   8m 13s |  |  hbase-shell in the patch 
passed.  |
   |  |   | 289m  9s |  |  |
   
   
   | Subsystem | Report/Notes |
   |--:|:-|
   | Docker | ClientAPI=1.43 ServerAPI=1.43 base: 
https://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-7149/14/artifact/yetus-jdk17-hadoop3-check/output/Dockerfile
 |
   | GITHUB PR | https://github.com/apache/hbase/pull/7149 |
   | JIRA Issue | HBASE-29328 |
   | Optional Tests | javac javadoc unit compile shadedjars |
   | uname | Linux 4cf583fcffe3 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-29081 / 329205ad7962f15647539ec5d93f4cbbb8ed565c |
   | Default Java | Eclipse Adoptium-17.0.11+9 |
   |  Test Results | 
https://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-7149/14/testReport/
 |
   | Max. process+thread count | 4814 (vs. ulimit of 3) |
   | modules | C: hbase-protocol-shaded hbase-client hbase-server hbase-thrift 
hbase-shell U: . |
   | Console output | 
https://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-7149/14/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-29328: Implement new HBase command: refresh_hfiles [hbase]

2025-09-02 Thread via GitHub


wchevreuil commented on code in PR #7149:
URL: https://github.com/apache/hbase/pull/7149#discussion_r2316232114


##
hbase-server/src/main/java/org/apache/hadoop/hbase/master/procedure/RefreshHFilesTableProcedure.java:
##
@@ -0,0 +1,173 @@
+/*
+ * 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.master.procedure;
+
+import java.io.IOException;
+import java.util.List;
+import org.apache.hadoop.hbase.TableName;
+import org.apache.hadoop.hbase.client.TableDescriptor;
+import org.apache.hadoop.hbase.procedure2.ProcedureStateSerializer;
+import org.apache.yetus.audience.InterfaceAudience;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+import org.apache.hadoop.hbase.shaded.protobuf.ProtobufUtil;
+import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProcedureProtos;
+import 
org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProcedureProtos.RefreshHFilesTableProcedureState;
+
[email protected]
+public class RefreshHFilesTableProcedure
+  extends AbstractStateMachineTableProcedure 
{
+  private static final Logger LOG = 
LoggerFactory.getLogger(RefreshHFilesTableProcedure.class);
+
+  private TableName tableName;
+  private String namespaceName;
+
+  public RefreshHFilesTableProcedure() {
+super();
+  }
+
+  public RefreshHFilesTableProcedure(MasterProcedureEnv env) {
+super(env);
+  }
+
+  public RefreshHFilesTableProcedure(MasterProcedureEnv env, TableName 
tableName) {
+super(env);
+this.tableName = tableName;
+  }
+
+  public RefreshHFilesTableProcedure(MasterProcedureEnv env, String 
namespaceName) {
+super(env);
+this.namespaceName = namespaceName;
+  }
+
+  @Override
+  public TableOperationType getTableOperationType() {
+return TableOperationType.REFRESH_HFILES;
+  }
+
+  @Override
+  protected void serializeStateData(ProcedureStateSerializer serializer) 
throws IOException {
+super.serializeStateData(serializer);
+MasterProcedureProtos.RefreshHFilesTableProcedureStateData.Builder builder 
=
+  MasterProcedureProtos.RefreshHFilesTableProcedureStateData.newBuilder();
+if (tableName != null && namespaceName == null) {
+  builder.setTableName(ProtobufUtil.toProtoTableName(tableName));
+} else if (tableName == null && namespaceName != null) {
+  builder.setNamespaceName(namespaceName);
+}
+serializer.serialize(builder.build());
+  }
+
+  @Override
+  protected void deserializeStateData(ProcedureStateSerializer serializer) 
throws IOException {
+super.deserializeStateData(serializer);
+MasterProcedureProtos.RefreshHFilesTableProcedureStateData data =
+  
serializer.deserialize(MasterProcedureProtos.RefreshHFilesTableProcedureStateData.class);
+if (data.hasTableName() && !data.hasNamespaceName()) {
+  this.tableName = ProtobufUtil.toTableName(data.getTableName());
+} else if (!data.hasTableName() && data.hasNamespaceName()) {
+  this.namespaceName = data.getNamespaceName();
+}
+  }
+
+  @Override
+  public TableName getTableName() {
+if (tableName != null && namespaceName == null) {
+  return tableName;
+}
+return DUMMY_NAMESPACE_TABLE_NAME;
+  }
+
+  @Override
+  protected RefreshHFilesTableProcedureState getInitialState() {
+return RefreshHFilesTableProcedureState.REFRESH_HFILES_PREPARE;
+  }
+
+  @Override
+  protected int getStateId(RefreshHFilesTableProcedureState state) {
+return state.getNumber();
+  }
+
+  @Override
+  protected RefreshHFilesTableProcedureState getState(int stateId) {
+return RefreshHFilesTableProcedureState.forNumber(stateId);
+  }
+
+  @Override
+  protected void rollbackState(MasterProcedureEnv env, 
RefreshHFilesTableProcedureState state)
+throws IOException, InterruptedException {
+// Refresh HFiles is idempotent operation hence rollback is not needed
+LOG.trace("Rollback not implemented for RefreshHFilesTableProcedure state: 
{}", state);
+  }
+
+  @Override
+  protected Flow executeFromState(MasterProcedureEnv env, 
RefreshHFilesTableProcedureState state) {
+LOG.info("Executing RefreshHFilesTableProcedureState state: {}", state);
+
+try {
+  return switch (state) {
+case 

Re: [PR] HBASE-29328: Implement new HBase command: refresh_hfiles [hbase]

2025-09-02 Thread via GitHub


sharmaar12 commented on PR #7149:
URL: https://github.com/apache/hbase/pull/7149#issuecomment-3245828917

   > So if active cluster splits a region, and daughters get compacted before 
refresh_meta is called, we may have the region removed by catalog janitor 
running in active cluster. In this case, read replica cluster would get FNFE 
when trying to read the removed region. I guess that's documented?
   
   We will be documenting following:
   - The Switch Over from active to read should strictly follow: Make Active 
cluster Read-only > Flush on Active > Refresh_Meta on read replica > 
refresh_hfiles on read replica
   - There may be inconsistencies between active and read-replica cluster until 
the switch over completely happens
   
   As per the discussion over the call, we may need to see the feasibility of 
disabling the catalog janitor or making it aware of read-replica cluster is 
there, to avoid removal of any Hfiles. I will do bit of investigation and lets 
discuss this with wider audience in the next sync up.
   


-- 
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-29328: Implement new HBase command: refresh_hfiles [hbase]

2025-09-02 Thread via GitHub


sharmaar12 commented on code in PR #7149:
URL: https://github.com/apache/hbase/pull/7149#discussion_r2307682598


##
hbase-server/src/main/java/org/apache/hadoop/hbase/master/HMaster.java:
##
@@ -4543,4 +4544,61 @@ protected String getDescription() {
 }
   });
   }
+
+  public Long refreshHfiles(final TableName tableName, final long nonceGroup, 
final long nonce)
+throws IOException {
+// TODO Check if table exists otherwise send exception.
+// return 121L;

Review Comment:
   Done.



##
hbase-server/src/main/java/org/apache/hadoop/hbase/master/procedure/RefreshHFilesRegionProcedure.java:
##
@@ -0,0 +1,132 @@
+/*
+ * 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.master.procedure;
+
+import java.io.IOException;
+import java.util.Optional;
+import org.apache.hadoop.hbase.ServerName;
+import org.apache.hadoop.hbase.TableName;
+import org.apache.hadoop.hbase.client.RegionInfo;
+import org.apache.hadoop.hbase.master.assignment.RegionStateNode;
+import org.apache.hadoop.hbase.master.assignment.RegionStates;
+import org.apache.hadoop.hbase.procedure2.FailedRemoteDispatchException;
+import org.apache.hadoop.hbase.procedure2.Procedure;
+import org.apache.hadoop.hbase.procedure2.ProcedureStateSerializer;
+import org.apache.hadoop.hbase.procedure2.ProcedureSuspendedException;
+import org.apache.hadoop.hbase.procedure2.ProcedureYieldException;
+import org.apache.hadoop.hbase.procedure2.RemoteProcedureDispatcher;
+import org.apache.hadoop.hbase.procedure2.RemoteProcedureException;
+import org.apache.hadoop.hbase.regionserver.RefreshHFilesCallable;
+import org.apache.yetus.audience.InterfaceAudience;
+
+import org.apache.hadoop.hbase.shaded.protobuf.ProtobufUtil;
+import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProcedureProtos;
+
[email protected]
+public class RefreshHFilesRegionProcedure extends Procedure
+  implements TableProcedureInterface,
+  RemoteProcedureDispatcher.RemoteProcedure {
+  private RegionInfo region;
+
+  public RefreshHFilesRegionProcedure() {
+  }
+
+  public RefreshHFilesRegionProcedure(RegionInfo region) {
+this.region = region;
+  }
+
+  @Override
+  protected void deserializeStateData(ProcedureStateSerializer serializer) 
throws IOException {
+MasterProcedureProtos.RefreshHFilesRegionProcedureStateData data =
+  
serializer.deserialize(MasterProcedureProtos.RefreshHFilesRegionProcedureStateData.class);
+this.region = ProtobufUtil.toRegionInfo(data.getRegion());
+// TODO Get the Data from region server
+  }
+
+  @Override
+  protected void serializeStateData(ProcedureStateSerializer serializer) 
throws IOException {
+MasterProcedureProtos.RefreshHFilesRegionProcedureStateData.Builder 
builder =
+  MasterProcedureProtos.RefreshHFilesRegionProcedureStateData.newBuilder();
+builder.setRegion(ProtobufUtil.toRegionInfo(region));
+// TODO add data that you want to pass to region server

Review Comment:
   Done.



##
hbase-client/src/main/java/org/apache/hadoop/hbase/client/RawAsyncHBaseAdmin.java:
##
@@ -4557,4 +4559,49 @@ List> adminCall(controller, stub, 
request.build(),
   resp -> resp.getCachedFilesList()))
   .serverName(serverName).call();
   }
+
+  @Override
+  public CompletableFuture refreshHFiles(final TableName tableName) {
+// Request builder
+RefreshHFilesRequest.Builder request = RefreshHFilesRequest.newBuilder();
+request.setTableName(ProtobufUtil.toProtoTableName(tableName));

Review Comment:
   Yes. What @anmolnar said is correct if user want to refresh hfiles for a 
table under specific namespace he will use command like `refresh_hfiles  
"TABLE_NAME" => "test_ns:test"`, when no namespace is prefixed then default is 
assumed.
   



##
hbase-protocol-shaded/src/main/protobuf/server/master/MasterProcedure.proto:
##
@@ -821,3 +821,20 @@ enum CloseTableRegionsProcedureState {
 message CloseTableRegionsProcedureStateData {
   required TableName table_name = 1;
 }
+
+enum RefreshHFilesTableProcedureState {
+  REFRESH_HFILES_PREPARE = 1;
+  REFRESH_HFILES_REFRESH_REGION = 2;
+  REFRESH_HFILES_FINISH = 3;
+}
+
+message 

Re: [PR] HBASE-29328: Implement new HBase command: refresh_hfiles [hbase]

2025-08-28 Thread via GitHub


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

   :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-29081 Compile Tests _ |
   | +0 :ok: |  mvndep  |   0m 10s |  |  Maven dependency ordering for branch  |
   | +1 :green_heart: |  mvninstall  |   3m 16s |  |  HBASE-29081 passed  |
   | +1 :green_heart: |  compile  |   2m 37s |  |  HBASE-29081 passed  |
   | +1 :green_heart: |  javadoc  |   1m 37s |  |  HBASE-29081 passed  |
   | +1 :green_heart: |  shadedjars  |   6m 12s |  |  branch has no errors when 
building our shaded downstream artifacts.  |
    _ Patch Compile Tests _ |
   | +0 :ok: |  mvndep  |   0m 13s |  |  Maven dependency ordering for patch  |
   | +1 :green_heart: |  mvninstall  |   3m 10s |  |  the patch passed  |
   | +1 :green_heart: |  compile  |   2m 37s |  |  the patch passed  |
   | +1 :green_heart: |  javac  |   2m 37s |  |  the patch passed  |
   | +1 :green_heart: |  javadoc  |   1m 36s |  |  the patch passed  |
   | +1 :green_heart: |  shadedjars  |   6m  7s |  |  patch has no errors when 
building our shaded downstream artifacts.  |
    _ Other Tests _ |
   | +1 :green_heart: |  unit  |   0m 34s |  |  hbase-protocol-shaded in the 
patch passed.  |
   | +1 :green_heart: |  unit  |   1m 38s |  |  hbase-client in the patch 
passed.  |
   | -1 :x: |  unit  | 237m 14s | 
[/patch-unit-hbase-server.txt](https://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-7149/13/artifact/yetus-jdk17-hadoop3-check/output/patch-unit-hbase-server.txt)
 |  hbase-server in the patch failed.  |
   | +1 :green_heart: |  unit  |   7m 40s |  |  hbase-thrift in the patch 
passed.  |
   | +1 :green_heart: |  unit  |   8m 10s |  |  hbase-shell in the patch 
passed.  |
   |  |   | 288m 35s |  |  |
   
   
   | Subsystem | Report/Notes |
   |--:|:-|
   | Docker | ClientAPI=1.43 ServerAPI=1.43 base: 
https://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-7149/13/artifact/yetus-jdk17-hadoop3-check/output/Dockerfile
 |
   | GITHUB PR | https://github.com/apache/hbase/pull/7149 |
   | JIRA Issue | HBASE-29328 |
   | Optional Tests | javac javadoc unit compile shadedjars |
   | uname | Linux 07b7692a0aad 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-29081 / c5800671052070d01b977553ea3b7a33fa30aa24 |
   | Default Java | Eclipse Adoptium-17.0.11+9 |
   |  Test Results | 
https://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-7149/13/testReport/
 |
   | Max. process+thread count | 5907 (vs. ulimit of 3) |
   | modules | C: hbase-protocol-shaded hbase-client hbase-server hbase-thrift 
hbase-shell U: . |
   | Console output | 
https://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-7149/13/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-29328: Implement new HBase command: refresh_hfiles [hbase]

2025-08-28 Thread via GitHub


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

   :broken_heart: **-1 overall**
   
   
   
   
   
   
   | Vote | Subsystem | Runtime |  Logfile | Comment |
   |::|--:|:|::|:---:|
   | +0 :ok: |  reexec  |   0m 29s |  |  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: |  buf  |   0m  0s |  |  buf was not available.  |
   | +0 :ok: |  buf  |   0m  0s |  |  buf 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-29081 Compile Tests _ |
   | +0 :ok: |  mvndep  |   0m 11s |  |  Maven dependency ordering for branch  |
   | +1 :green_heart: |  mvninstall  |   3m  3s |  |  HBASE-29081 passed  |
   | +1 :green_heart: |  compile  |   5m 39s |  |  HBASE-29081 passed  |
   | +1 :green_heart: |  checkstyle  |   1m 36s |  |  HBASE-29081 passed  |
   | +1 :green_heart: |  spotbugs  |   5m 41s |  |  HBASE-29081 passed  |
   | +1 :green_heart: |  spotless  |   0m 46s |  |  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  6s |  |  the patch passed  |
   | +1 :green_heart: |  compile  |   5m 38s |  |  the patch passed  |
   | +1 :green_heart: |  cc  |   5m 38s |  |  the patch passed  |
   | +1 :green_heart: |  javac  |   5m 38s |  |  the patch passed  |
   | +1 :green_heart: |  blanks  |   0m  0s |  |  The patch has no blanks 
issues.  |
   | -0 :warning: |  checkstyle  |   0m 14s | 
[/buildtool-patch-checkstyle-hbase-server.txt](https://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-7149/13/artifact/yetus-general-check/output/buildtool-patch-checkstyle-hbase-server.txt)
 |  The patch fails to run checkstyle in hbase-server  |
   | -0 :warning: |  rubocop  |   0m  8s | 
[/results-rubocop.txt](https://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-7149/13/artifact/yetus-general-check/output/results-rubocop.txt)
 |  The patch generated 15 new + 445 unchanged - 0 fixed = 460 total (was 445)  
|
   | +1 :green_heart: |  spotbugs  |   6m 16s |  |  the patch passed  |
   | +1 :green_heart: |  hadoopcheck  |  11m 54s |  |  Patch does not cause any 
errors with Hadoop 3.3.6 3.4.0.  |
   | +1 :green_heart: |  hbaseprotoc  |   2m 10s |  |  the patch passed  |
   | -1 :x: |  spotless  |   0m 20s |  |  patch has 21 errors when running 
spotless:check, run spotless:apply to fix.  |
    _ Other Tests _ |
   | +1 :green_heart: |  asflicense  |   0m 42s |  |  The patch does not 
generate ASF License warnings.  |
   |  |   |  57m 29s |  |  |
   
   
   | Subsystem | Report/Notes |
   |--:|:-|
   | Docker | ClientAPI=1.43 ServerAPI=1.43 base: 
https://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-7149/13/artifact/yetus-general-check/output/Dockerfile
 |
   | GITHUB PR | https://github.com/apache/hbase/pull/7149 |
   | JIRA Issue | HBASE-29328 |
   | Optional Tests | dupname asflicense javac spotbugs checkstyle codespell 
detsecrets compile hadoopcheck hbaseanti spotless cc buflint bufcompat 
hbaseprotoc rubocop |
   | uname | Linux b8950759d378 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-29081 / c5800671052070d01b977553ea3b7a33fa30aa24 |
   | Default Java | Eclipse Adoptium-17.0.11+9 |
   | spotless | 
https://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-7149/13/artifact/yetus-general-check/output/patch-spotless.txt
 |
   | Max. process+thread count | 86 (vs. ulimit of 3) |
   | modules | C: hbase-protocol-shaded hbase-client hbase-server hbase-thrift 
hbase-shell U: . |
   | Console output | 
https://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-7149/13/console
 |
   | versions | git=2.34.1 maven=3.9.8 spotbugs=4.7.3 rubocop=1.37.1 |
   | 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-29328: Implement new HBase command: refresh_hfiles [hbase]

2025-08-28 Thread via GitHub


sharmaar12 commented on PR #7149:
URL: https://github.com/apache/hbase/pull/7149#issuecomment-3233852684

   > This mostly LGTM so far. I left some comments. Also, I see this is still a 
draft, so there are probably more changes incoming anyway.
   > 
   > One question I have is what if a table has the same name in two different 
namespaces? I see method signatures for `refreshHfiles()` that are:
   > 
   > ```
   > refreshHFiles(final TableName tableName)
   > refreshHFiles(final String namespace)
   > refreshHFiles()
   > ```
   > 
   > Will the user ever need something like the following?
   > 
   > ```
   > refreshHFiles(final String namespace, TableName tableName)
   > ```
   
   Actually we are not allowing user to pass both namespace and tableName 
together as parameter. We will send exception in case user calls 
`refresh_hfiles "NAMESPACE" => "test_ns", "TABLE_NAME" => "test"` , this is 
handled in ruby script in newer commit.


-- 
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-29328: Implement new HBase command: refresh_hfiles [hbase]

2025-08-28 Thread via GitHub


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

   :broken_heart: **-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: |  buf  |   0m  0s |  |  buf was not available.  |
   | +0 :ok: |  buf  |   0m  0s |  |  buf 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-29081 Compile Tests _ |
   | +0 :ok: |  mvndep  |   0m 40s |  |  Maven dependency ordering for branch  |
   | +1 :green_heart: |  mvninstall  |   3m 32s |  |  HBASE-29081 passed  |
   | +1 :green_heart: |  compile  |   7m 22s |  |  HBASE-29081 passed  |
   | +1 :green_heart: |  checkstyle  |   2m  2s |  |  HBASE-29081 passed  |
   | +1 :green_heart: |  spotbugs  |   6m 51s |  |  HBASE-29081 passed  |
   | +1 :green_heart: |  spotless  |   0m 59s |  |  branch has no errors when 
running spotless:check.  |
    _ Patch Compile Tests _ |
   | +0 :ok: |  mvndep  |   0m 12s |  |  Maven dependency ordering for patch  |
   | +1 :green_heart: |  mvninstall  |   3m 26s |  |  the patch passed  |
   | +1 :green_heart: |  compile  |   6m 18s |  |  the patch passed  |
   | +1 :green_heart: |  cc  |   6m 18s |  |  the patch passed  |
   | +1 :green_heart: |  javac  |   6m 18s |  |  the patch passed  |
   | +1 :green_heart: |  blanks  |   0m  0s |  |  The patch has no blanks 
issues.  |
   | -0 :warning: |  checkstyle  |   0m 19s | 
[/results-checkstyle-hbase-client.txt](https://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-7149/12/artifact/yetus-general-check/output/results-checkstyle-hbase-client.txt)
 |  hbase-client: The patch generated 3 new + 3 unchanged - 0 fixed = 6 total 
(was 3)  |
   | -0 :warning: |  checkstyle  |   0m 17s | 
[/buildtool-patch-checkstyle-hbase-server.txt](https://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-7149/12/artifact/yetus-general-check/output/buildtool-patch-checkstyle-hbase-server.txt)
 |  The patch fails to run checkstyle in hbase-server  |
   | -0 :warning: |  rubocop  |   0m 20s | 
[/results-rubocop.txt](https://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-7149/12/artifact/yetus-general-check/output/results-rubocop.txt)
 |  The patch generated 6 new + 445 unchanged - 0 fixed = 451 total (was 445)  |
   | +1 :green_heart: |  spotbugs  |   8m 55s |  |  the patch passed  |
   | +1 :green_heart: |  hadoopcheck  |  13m 13s |  |  Patch does not cause any 
errors with Hadoop 3.3.6 3.4.0.  |
   | +1 :green_heart: |  hbaseprotoc  |   2m 10s |  |  the patch passed  |
   | -1 :x: |  spotless  |   0m 19s |  |  patch has 42 errors when running 
spotless:check, run spotless:apply to fix.  |
    _ Other Tests _ |
   | +1 :green_heart: |  asflicense  |   0m 42s |  |  The patch does not 
generate ASF License warnings.  |
   |  |   |  67m 55s |  |  |
   
   
   | Subsystem | Report/Notes |
   |--:|:-|
   | Docker | ClientAPI=1.43 ServerAPI=1.43 base: 
https://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-7149/12/artifact/yetus-general-check/output/Dockerfile
 |
   | GITHUB PR | https://github.com/apache/hbase/pull/7149 |
   | JIRA Issue | HBASE-29328 |
   | Optional Tests | dupname asflicense javac spotbugs checkstyle codespell 
detsecrets compile hadoopcheck hbaseanti spotless cc buflint bufcompat 
hbaseprotoc rubocop |
   | uname | Linux 88580b3214a1 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-29081 / b541649ec08c2b77d300e386243a6068564fac5d |
   | Default Java | Eclipse Adoptium-17.0.11+9 |
   | spotless | 
https://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-7149/12/artifact/yetus-general-check/output/patch-spotless.txt
 |
   | Max. process+thread count | 85 (vs. ulimit of 3) |
   | modules | C: hbase-protocol-shaded hbase-client hbase-server hbase-thrift 
hbase-shell U: . |
   | Console output | 
https://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-7149/12/console
 |
   | versions | git=2.34.1 maven=3.9.8 spotbugs=4.7.3 rubocop=1.37.1 |
   | 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 

Re: [PR] HBASE-29328: Implement new HBase command: refresh_hfiles [hbase]

2025-08-22 Thread via GitHub


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

   @sharmaar12 Please fix spotless and unit test errors.


-- 
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-29328: Implement new HBase command: refresh_hfiles [hbase]

2025-08-21 Thread via GitHub


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

   :broken_heart: **-1 overall**
   
   
   
   
   
   
   | Vote | Subsystem | Runtime |  Logfile | Comment |
   |::|--:|:|::|:---:|
   | +0 :ok: |  reexec  |  11m  2s |  |  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-29081 Compile Tests _ |
   | +0 :ok: |  mvndep  |   0m 35s |  |  Maven dependency ordering for branch  |
   | +1 :green_heart: |  mvninstall  |   7m 14s |  |  HBASE-29081 passed  |
   | +1 :green_heart: |  compile  |   2m 49s |  |  HBASE-29081 passed  |
   | +1 :green_heart: |  javadoc  |   2m  6s |  |  HBASE-29081 passed  |
   | +1 :green_heart: |  shadedjars  |   7m 45s |  |  branch has no errors when 
building our shaded downstream artifacts.  |
    _ Patch Compile Tests _ |
   | +0 :ok: |  mvndep  |   0m 14s |  |  Maven dependency ordering for patch  |
   | +1 :green_heart: |  mvninstall  |   4m 44s |  |  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  |   2m 11s |  |  the patch passed  |
   | +1 :green_heart: |  shadedjars  |   6m 49s |  |  patch has no errors when 
building our shaded downstream artifacts.  |
    _ Other Tests _ |
   | +1 :green_heart: |  unit  |   0m 43s |  |  hbase-protocol-shaded in the 
patch passed.  |
   | +1 :green_heart: |  unit  |   1m 58s |  |  hbase-client in the patch 
passed.  |
   | -1 :x: |  unit  | 265m 45s | 
[/patch-unit-hbase-server.txt](https://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-7149/11/artifact/yetus-jdk17-hadoop3-check/output/patch-unit-hbase-server.txt)
 |  hbase-server in the patch failed.  |
   | +1 :green_heart: |  unit  |   6m 53s |  |  hbase-thrift in the patch 
passed.  |
   | +1 :green_heart: |  unit  |   7m 50s |  |  hbase-shell in the patch 
passed.  |
   |  |   | 338m 27s |  |  |
   
   
   | Subsystem | Report/Notes |
   |--:|:-|
   | Docker | ClientAPI=1.43 ServerAPI=1.43 base: 
https://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-7149/11/artifact/yetus-jdk17-hadoop3-check/output/Dockerfile
 |
   | GITHUB PR | https://github.com/apache/hbase/pull/7149 |
   | JIRA Issue | HBASE-29328 |
   | Optional Tests | javac javadoc unit compile shadedjars |
   | uname | Linux 49419b6f6242 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-29081 / 08a8b36ffba102acbb2ff2ed3a85ef3628639377 |
   | Default Java | Eclipse Adoptium-17.0.11+9 |
   |  Test Results | 
https://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-7149/11/testReport/
 |
   | Max. process+thread count | 4781 (vs. ulimit of 3) |
   | modules | C: hbase-protocol-shaded hbase-client hbase-server hbase-thrift 
hbase-shell U: . |
   | Console output | 
https://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-7149/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-29328: Implement new HBase command: refresh_hfiles [hbase]

2025-08-21 Thread via GitHub


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

   :broken_heart: **-1 overall**
   
   
   
   
   
   
   | Vote | Subsystem | Runtime |  Logfile | Comment |
   |::|--:|:|::|:---:|
   | +0 :ok: |  reexec  |   0m 39s |  |  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: |  buf  |   0m  0s |  |  buf was not available.  |
   | +0 :ok: |  buf  |   0m  0s |  |  buf 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-29081 Compile Tests _ |
   | +0 :ok: |  mvndep  |   0m 14s |  |  Maven dependency ordering for branch  |
   | +1 :green_heart: |  mvninstall  |   4m 59s |  |  HBASE-29081 passed  |
   | +1 :green_heart: |  compile  |   8m 25s |  |  HBASE-29081 passed  |
   | +1 :green_heart: |  checkstyle  |   2m  0s |  |  HBASE-29081 passed  |
   | +1 :green_heart: |  spotbugs  |   7m 18s |  |  HBASE-29081 passed  |
   | +1 :green_heart: |  spotless  |   1m  3s |  |  branch has no errors when 
running spotless:check.  |
    _ Patch Compile Tests _ |
   | +0 :ok: |  mvndep  |   0m 12s |  |  Maven dependency ordering for patch  |
   | +1 :green_heart: |  mvninstall  |   3m 36s |  |  the patch passed  |
   | +1 :green_heart: |  compile  |   5m 56s |  |  the patch passed  |
   | +1 :green_heart: |  cc  |   5m 56s |  |  the patch passed  |
   | +1 :green_heart: |  javac  |   5m 56s |  |  the patch passed  |
   | +1 :green_heart: |  blanks  |   0m  0s |  |  The patch has no blanks 
issues.  |
   | -0 :warning: |  checkstyle  |   0m 13s | 
[/buildtool-patch-checkstyle-hbase-server.txt](https://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-7149/11/artifact/yetus-general-check/output/buildtool-patch-checkstyle-hbase-server.txt)
 |  The patch fails to run checkstyle in hbase-server  |
   | -0 :warning: |  rubocop  |   0m 21s | 
[/results-rubocop.txt](https://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-7149/11/artifact/yetus-general-check/output/results-rubocop.txt)
 |  The patch generated 6 new + 445 unchanged - 0 fixed = 451 total (was 445)  |
   | +1 :green_heart: |  spotbugs  |   6m 26s |  |  the patch passed  |
   | +1 :green_heart: |  hadoopcheck  |  12m 15s |  |  Patch does not cause any 
errors with Hadoop 3.3.6 3.4.0.  |
   | +1 :green_heart: |  hbaseprotoc  |   2m  9s |  |  the patch passed  |
   | -1 :x: |  spotless  |   0m 22s |  |  patch has 21 errors when running 
spotless:check, run spotless:apply to fix.  |
    _ Other Tests _ |
   | +1 :green_heart: |  asflicense  |   0m 44s |  |  The patch does not 
generate ASF License warnings.  |
   |  |   |  66m 39s |  |  |
   
   
   | Subsystem | Report/Notes |
   |--:|:-|
   | Docker | ClientAPI=1.43 ServerAPI=1.43 base: 
https://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-7149/11/artifact/yetus-general-check/output/Dockerfile
 |
   | GITHUB PR | https://github.com/apache/hbase/pull/7149 |
   | JIRA Issue | HBASE-29328 |
   | Optional Tests | dupname asflicense javac spotbugs checkstyle codespell 
detsecrets compile hadoopcheck hbaseanti spotless cc buflint bufcompat 
hbaseprotoc rubocop |
   | uname | Linux 1f5efecbe62b 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-29081 / 08a8b36ffba102acbb2ff2ed3a85ef3628639377 |
   | Default Java | Eclipse Adoptium-17.0.11+9 |
   | spotless | 
https://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-7149/11/artifact/yetus-general-check/output/patch-spotless.txt
 |
   | Max. process+thread count | 86 (vs. ulimit of 3) |
   | modules | C: hbase-protocol-shaded hbase-client hbase-server hbase-thrift 
hbase-shell U: . |
   | Console output | 
https://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-7149/11/console
 |
   | versions | git=2.34.1 maven=3.9.8 spotbugs=4.7.3 rubocop=1.37.1 |
   | 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-29328: Implement new HBase command: refresh_hfiles [hbase]

2025-08-21 Thread via GitHub


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

   :broken_heart: **-1 overall**
   
   
   
   
   
   
   | Vote | Subsystem | Runtime |  Logfile | Comment |
   |::|--:|:|::|:---:|
   | +0 :ok: |  reexec  |   0m 45s |  |  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-29081 Compile Tests _ |
   | +0 :ok: |  mvndep  |   0m 12s |  |  Maven dependency ordering for branch  |
   | +1 :green_heart: |  mvninstall  |   4m 59s |  |  HBASE-29081 passed  |
   | +1 :green_heart: |  compile  |   4m 13s |  |  HBASE-29081 passed  |
   | +1 :green_heart: |  javadoc  |   2m 27s |  |  HBASE-29081 passed  |
   | +1 :green_heart: |  shadedjars  |   7m 14s |  |  branch has no errors when 
building our shaded downstream artifacts.  |
    _ Patch Compile Tests _ |
   | +0 :ok: |  mvndep  |   0m 18s |  |  Maven dependency ordering for patch  |
   | +1 :green_heart: |  mvninstall  |   4m 30s |  |  the patch passed  |
   | +1 :green_heart: |  compile  |   4m  2s |  |  the patch passed  |
   | +1 :green_heart: |  javac  |   4m  2s |  |  the patch passed  |
   | +1 :green_heart: |  javadoc  |   2m 42s |  |  the patch passed  |
   | +1 :green_heart: |  shadedjars  |   8m  0s |  |  patch has no errors when 
building our shaded downstream artifacts.  |
    _ Other Tests _ |
   | +1 :green_heart: |  unit  |   0m 59s |  |  hbase-protocol-shaded in the 
patch passed.  |
   | +1 :green_heart: |  unit  |   2m 33s |  |  hbase-client in the patch 
passed.  |
   | -1 :x: |  unit  | 404m 37s | 
[/patch-unit-hbase-server.txt](https://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-7149/10/artifact/yetus-jdk17-hadoop3-check/output/patch-unit-hbase-server.txt)
 |  hbase-server in the patch failed.  |
   | +1 :green_heart: |  unit  |  44m 38s |  |  hbase-thrift in the patch 
passed.  |
   | +1 :green_heart: |  unit  |  14m 57s |  |  hbase-shell in the patch 
passed.  |
   |  |   | 523m 20s |  |  |
   
   
   | Subsystem | Report/Notes |
   |--:|:-|
   | Docker | ClientAPI=1.43 ServerAPI=1.43 base: 
https://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-7149/10/artifact/yetus-jdk17-hadoop3-check/output/Dockerfile
 |
   | GITHUB PR | https://github.com/apache/hbase/pull/7149 |
   | JIRA Issue | HBASE-29328 |
   | Optional Tests | javac javadoc unit compile shadedjars |
   | uname | Linux 7611ec1996f9 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-29081 / a2c765ee4d0c0d47519db2a4fabac18761736ed6 |
   | Default Java | Eclipse Adoptium-17.0.11+9 |
   |  Test Results | 
https://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-7149/10/testReport/
 |
   | Max. process+thread count | 4485 (vs. ulimit of 3) |
   | modules | C: hbase-protocol-shaded hbase-client hbase-server hbase-thrift 
hbase-shell U: . |
   | Console output | 
https://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-7149/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-29328: Implement new HBase command: refresh_hfiles [hbase]

2025-08-21 Thread via GitHub


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

   :broken_heart: **-1 overall**
   
   
   
   
   
   
   | Vote | Subsystem | Runtime |  Logfile | Comment |
   |::|--:|:|::|:---:|
   | +0 :ok: |  reexec  |   0m 34s |  |  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: |  buf  |   0m  0s |  |  buf was not available.  |
   | +0 :ok: |  buf  |   0m  0s |  |  buf 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-29081 Compile Tests _ |
   | +0 :ok: |  mvndep  |   0m 43s |  |  Maven dependency ordering for branch  |
   | +1 :green_heart: |  mvninstall  |   5m 36s |  |  HBASE-29081 passed  |
   | +1 :green_heart: |  compile  |   9m 21s |  |  HBASE-29081 passed  |
   | +1 :green_heart: |  checkstyle  |   2m 33s |  |  HBASE-29081 passed  |
   | +1 :green_heart: |  spotbugs  |   8m 44s |  |  HBASE-29081 passed  |
   | +1 :green_heart: |  spotless  |   1m 22s |  |  branch has no errors when 
running spotless:check.  |
    _ Patch Compile Tests _ |
   | +0 :ok: |  mvndep  |   0m 14s |  |  Maven dependency ordering for patch  |
   | +1 :green_heart: |  mvninstall  |   4m 16s |  |  the patch passed  |
   | +1 :green_heart: |  compile  |   7m 13s |  |  the patch passed  |
   | +1 :green_heart: |  cc  |   7m 13s |  |  the patch passed  |
   | +1 :green_heart: |  javac  |   7m 13s |  |  the patch passed  |
   | +1 :green_heart: |  blanks  |   0m  0s |  |  The patch has no blanks 
issues.  |
   | -0 :warning: |  checkstyle  |   0m 20s | 
[/buildtool-patch-checkstyle-hbase-server.txt](https://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-7149/10/artifact/yetus-general-check/output/buildtool-patch-checkstyle-hbase-server.txt)
 |  The patch fails to run checkstyle in hbase-server  |
   | -0 :warning: |  rubocop  |   0m 23s | 
[/results-rubocop.txt](https://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-7149/10/artifact/yetus-general-check/output/results-rubocop.txt)
 |  The patch generated 6 new + 445 unchanged - 0 fixed = 451 total (was 445)  |
   | +1 :green_heart: |  spotbugs  |   9m  1s |  |  the patch passed  |
   | +1 :green_heart: |  hadoopcheck  |  16m 10s |  |  Patch does not cause any 
errors with Hadoop 3.3.6 3.4.0.  |
   | +1 :green_heart: |  hbaseprotoc  |   3m 14s |  |  the patch passed  |
   | -1 :x: |  spotless  |   0m 36s |  |  patch has 21 errors when running 
spotless:check, run spotless:apply to fix.  |
    _ Other Tests _ |
   | +1 :green_heart: |  asflicense  |   1m  0s |  |  The patch does not 
generate ASF License warnings.  |
   |  |   |  83m 52s |  |  |
   
   
   | Subsystem | Report/Notes |
   |--:|:-|
   | Docker | ClientAPI=1.43 ServerAPI=1.43 base: 
https://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-7149/10/artifact/yetus-general-check/output/Dockerfile
 |
   | GITHUB PR | https://github.com/apache/hbase/pull/7149 |
   | JIRA Issue | HBASE-29328 |
   | Optional Tests | dupname asflicense javac spotbugs checkstyle codespell 
detsecrets compile hadoopcheck hbaseanti spotless cc buflint bufcompat 
hbaseprotoc rubocop |
   | uname | Linux ba7354b42270 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-29081 / a2c765ee4d0c0d47519db2a4fabac18761736ed6 |
   | Default Java | Eclipse Adoptium-17.0.11+9 |
   | spotless | 
https://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-7149/10/artifact/yetus-general-check/output/patch-spotless.txt
 |
   | Max. process+thread count | 87 (vs. ulimit of 3) |
   | modules | C: hbase-protocol-shaded hbase-client hbase-server hbase-thrift 
hbase-shell U: . |
   | Console output | 
https://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-7149/10/console
 |
   | versions | git=2.34.1 maven=3.9.8 spotbugs=4.7.3 rubocop=1.37.1 |
   | 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-29328: Implement new HBase command: refresh_hfiles [hbase]

2025-08-21 Thread via GitHub


sharmaar12 commented on PR #7149:
URL: https://github.com/apache/hbase/pull/7149#issuecomment-3210227853

   > Please add a detailed description on the jira and in the PR explaining 
what is the goal here and why we need this.
   
   Done that in upstream ticket. 
https://issues.apache.org/jira/browse/HBASE-29328


-- 
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-29328: Implement new HBase command: refresh_hfiles [hbase]

2025-08-14 Thread via GitHub


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

   :broken_heart: **-1 overall**
   
   
   
   
   
   
   | Vote | Subsystem | Runtime |  Logfile | Comment |
   |::|--:|:|::|:---:|
   | +0 :ok: |  reexec  |   2m 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-29081 Compile Tests _ |
   | +0 :ok: |  mvndep  |   0m  9s |  |  Maven dependency ordering for branch  |
   | +1 :green_heart: |  mvninstall  |   3m 22s |  |  HBASE-29081 passed  |
   | +1 :green_heart: |  compile  |   2m 48s |  |  HBASE-29081 passed  |
   | +1 :green_heart: |  javadoc  |   1m 38s |  |  HBASE-29081 passed  |
   | +1 :green_heart: |  shadedjars  |   6m  3s |  |  branch has no errors when 
building our shaded downstream artifacts.  |
    _ Patch Compile Tests _ |
   | +0 :ok: |  mvndep  |   0m 21s |  |  Maven dependency ordering for patch  |
   | +1 :green_heart: |  mvninstall  |   3m  8s |  |  the patch passed  |
   | +1 :green_heart: |  compile  |   2m 33s |  |  the patch passed  |
   | +1 :green_heart: |  javac  |   2m 33s |  |  the patch passed  |
   | +1 :green_heart: |  javadoc  |   1m 34s |  |  the patch passed  |
   | +1 :green_heart: |  shadedjars  |   5m 59s |  |  patch has no errors when 
building our shaded downstream artifacts.  |
    _ Other Tests _ |
   | +1 :green_heart: |  unit  |   0m 33s |  |  hbase-protocol-shaded in the 
patch passed.  |
   | +1 :green_heart: |  unit  |   1m 36s |  |  hbase-client in the patch 
passed.  |
   | -1 :x: |  unit  | 237m 54s | 
[/patch-unit-hbase-server.txt](https://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-7149/8/artifact/yetus-jdk17-hadoop3-check/output/patch-unit-hbase-server.txt)
 |  hbase-server in the patch failed.  |
   | +1 :green_heart: |  unit  |   6m 47s |  |  hbase-thrift in the patch 
passed.  |
   | +1 :green_heart: |  unit  |   7m 43s |  |  hbase-shell in the patch 
passed.  |
   |  |   | 289m 25s |  |  |
   
   
   | Subsystem | Report/Notes |
   |--:|:-|
   | Docker | ClientAPI=1.43 ServerAPI=1.43 base: 
https://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-7149/8/artifact/yetus-jdk17-hadoop3-check/output/Dockerfile
 |
   | GITHUB PR | https://github.com/apache/hbase/pull/7149 |
   | JIRA Issue | HBASE-29328 |
   | Optional Tests | javac javadoc unit compile shadedjars |
   | uname | Linux 81d3b006a42d 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-29081 / 4b72e120908ee8bc1a72720d84066d4c5f661b9a |
   | Default Java | Eclipse Adoptium-17.0.11+9 |
   |  Test Results | 
https://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-7149/8/testReport/
 |
   | Max. process+thread count | 5441 (vs. ulimit of 3) |
   | modules | C: hbase-protocol-shaded hbase-client hbase-server hbase-thrift 
hbase-shell U: . |
   | Console output | 
https://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-7149/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-29328: Implement new HBase command: refresh_hfiles [hbase]

2025-08-14 Thread via GitHub


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

   :broken_heart: **-1 overall**
   
   
   
   
   
   
   | Vote | Subsystem | Runtime |  Logfile | Comment |
   |::|--:|:|::|:---:|
   | +0 :ok: |  reexec  |   0m 33s |  |  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: |  buf  |   0m  0s |  |  buf was not available.  |
   | +0 :ok: |  buf  |   0m  0s |  |  buf 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-29081 Compile Tests _ |
   | +0 :ok: |  mvndep  |   0m 11s |  |  Maven dependency ordering for branch  |
   | +1 :green_heart: |  mvninstall  |   3m  5s |  |  HBASE-29081 passed  |
   | +1 :green_heart: |  compile  |   5m 26s |  |  HBASE-29081 passed  |
   | +1 :green_heart: |  checkstyle  |   1m 36s |  |  HBASE-29081 passed  |
   | +1 :green_heart: |  spotbugs  |   5m 44s |  |  HBASE-29081 passed  |
   | +1 :green_heart: |  spotless  |   0m 44s |  |  branch has no errors when 
running spotless:check.  |
    _ Patch Compile Tests _ |
   | +0 :ok: |  mvndep  |   0m 20s |  |  Maven dependency ordering for patch  |
   | +1 :green_heart: |  mvninstall  |   3m  0s |  |  the patch passed  |
   | +1 :green_heart: |  compile  |   5m 29s |  |  the patch passed  |
   | +1 :green_heart: |  cc  |   5m 29s |  |  the patch passed  |
   | +1 :green_heart: |  javac  |   5m 29s |  |  the patch passed  |
   | +1 :green_heart: |  blanks  |   0m  0s |  |  The patch has no blanks 
issues.  |
   | -0 :warning: |  checkstyle  |   0m 13s | 
[/buildtool-patch-checkstyle-hbase-server.txt](https://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-7149/8/artifact/yetus-general-check/output/buildtool-patch-checkstyle-hbase-server.txt)
 |  The patch fails to run checkstyle in hbase-server  |
   | -0 :warning: |  rubocop  |   0m  9s | 
[/results-rubocop.txt](https://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-7149/8/artifact/yetus-general-check/output/results-rubocop.txt)
 |  The patch generated 6 new + 444 unchanged - 0 fixed = 450 total (was 444)  |
   | +1 :green_heart: |  spotbugs  |   6m 15s |  |  the patch passed  |
   | +1 :green_heart: |  hadoopcheck  |  11m 59s |  |  Patch does not cause any 
errors with Hadoop 3.3.6 3.4.0.  |
   | +1 :green_heart: |  hbaseprotoc  |   2m  7s |  |  the patch passed  |
   | -1 :x: |  spotless  |   0m 20s |  |  patch has 21 errors when running 
spotless:check, run spotless:apply to fix.  |
    _ Other Tests _ |
   | +1 :green_heart: |  asflicense  |   0m 42s |  |  The patch does not 
generate ASF License warnings.  |
   |  |   |  57m 15s |  |  |
   
   
   | Subsystem | Report/Notes |
   |--:|:-|
   | Docker | ClientAPI=1.43 ServerAPI=1.43 base: 
https://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-7149/8/artifact/yetus-general-check/output/Dockerfile
 |
   | GITHUB PR | https://github.com/apache/hbase/pull/7149 |
   | JIRA Issue | HBASE-29328 |
   | Optional Tests | dupname asflicense javac spotbugs checkstyle codespell 
detsecrets compile hadoopcheck hbaseanti spotless cc buflint bufcompat 
hbaseprotoc rubocop |
   | uname | Linux 24bfa01a3c03 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-29081 / 4b72e120908ee8bc1a72720d84066d4c5f661b9a |
   | Default Java | Eclipse Adoptium-17.0.11+9 |
   | spotless | 
https://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-7149/8/artifact/yetus-general-check/output/patch-spotless.txt
 |
   | Max. process+thread count | 86 (vs. ulimit of 3) |
   | modules | C: hbase-protocol-shaded hbase-client hbase-server hbase-thrift 
hbase-shell U: . |
   | Console output | 
https://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-7149/8/console 
|
   | versions | git=2.34.1 maven=3.9.8 spotbugs=4.7.3 rubocop=1.37.1 |
   | 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-29328: Implement new HBase command: refresh_hfiles [hbase]

2025-08-14 Thread via GitHub


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

   :broken_heart: **-1 overall**
   
   
   
   
   
   
   | Vote | Subsystem | Runtime |  Logfile | Comment |
   |::|--:|:|::|:---:|
   | +0 :ok: |  reexec  |   0m 38s |  |  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-29081 Compile Tests _ |
   | +0 :ok: |  mvndep  |   0m 12s |  |  Maven dependency ordering for branch  |
   | +1 :green_heart: |  mvninstall  |   3m 19s |  |  HBASE-29081 passed  |
   | +1 :green_heart: |  compile  |   2m 34s |  |  HBASE-29081 passed  |
   | +1 :green_heart: |  javadoc  |   1m 35s |  |  HBASE-29081 passed  |
   | +1 :green_heart: |  shadedjars  |   7m  2s |  |  branch has no errors when 
building our shaded downstream artifacts.  |
    _ Patch Compile Tests _ |
   | +0 :ok: |  mvndep  |   0m 16s |  |  Maven dependency ordering for patch  |
   | +1 :green_heart: |  mvninstall  |   4m 33s |  |  the patch passed  |
   | +1 :green_heart: |  compile  |   3m  7s |  |  the patch passed  |
   | +1 :green_heart: |  javac  |   3m  7s |  |  the patch passed  |
   | +1 :green_heart: |  javadoc  |   1m 51s |  |  the patch passed  |
   | +1 :green_heart: |  shadedjars  |   7m  8s |  |  patch has no errors when 
building our shaded downstream artifacts.  |
    _ Other Tests _ |
   | +1 :green_heart: |  unit  |   0m 51s |  |  hbase-protocol-shaded in the 
patch passed.  |
   | +1 :green_heart: |  unit  |   2m 50s |  |  hbase-client in the patch 
passed.  |
   | -1 :x: |  unit  | 440m 21s | 
[/patch-unit-hbase-server.txt](https://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-7149/7/artifact/yetus-jdk17-hadoop3-check/output/patch-unit-hbase-server.txt)
 |  hbase-server in the patch failed.  |
   | -1 :x: |  unit  |  24m 40s | 
[/patch-unit-hbase-thrift.txt](https://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-7149/7/artifact/yetus-jdk17-hadoop3-check/output/patch-unit-hbase-thrift.txt)
 |  hbase-thrift in the patch failed.  |
   | +1 :green_heart: |  unit  |  12m 50s |  |  hbase-shell in the patch 
passed.  |
   |  |   | 531m 46s |  |  |
   
   
   | Subsystem | Report/Notes |
   |--:|:-|
   | Docker | ClientAPI=1.43 ServerAPI=1.43 base: 
https://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-7149/7/artifact/yetus-jdk17-hadoop3-check/output/Dockerfile
 |
   | GITHUB PR | https://github.com/apache/hbase/pull/7149 |
   | JIRA Issue | HBASE-29328 |
   | Optional Tests | javac javadoc unit compile shadedjars |
   | uname | Linux 2387526aafed 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-29081 / bcf08cc28deb66e91af64191146fc8d782de3f7f |
   | Default Java | Eclipse Adoptium-17.0.11+9 |
   |  Test Results | 
https://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-7149/7/testReport/
 |
   | Max. process+thread count | 4448 (vs. ulimit of 3) |
   | modules | C: hbase-protocol-shaded hbase-client hbase-server hbase-thrift 
hbase-shell U: . |
   | Console output | 
https://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-7149/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-29328: Implement new HBase command: refresh_hfiles [hbase]

2025-08-14 Thread via GitHub


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

   :broken_heart: **-1 overall**
   
   
   
   
   
   
   | Vote | Subsystem | Runtime |  Logfile | Comment |
   |::|--:|:|::|:---:|
   | +0 :ok: |  reexec  |   0m 34s |  |  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: |  buf  |   0m  0s |  |  buf was not available.  |
   | +0 :ok: |  buf  |   0m  0s |  |  buf 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-29081 Compile Tests _ |
   | +0 :ok: |  mvndep  |   0m 40s |  |  Maven dependency ordering for branch  |
   | +1 :green_heart: |  mvninstall  |   3m 31s |  |  HBASE-29081 passed  |
   | +1 :green_heart: |  compile  |   5m 26s |  |  HBASE-29081 passed  |
   | +1 :green_heart: |  checkstyle  |   1m 37s |  |  HBASE-29081 passed  |
   | +1 :green_heart: |  spotbugs  |   5m 49s |  |  HBASE-29081 passed  |
   | +1 :green_heart: |  spotless  |   0m 46s |  |  branch has no errors when 
running spotless:check.  |
    _ 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  |   5m 26s |  |  the patch passed  |
   | +1 :green_heart: |  cc  |   5m 26s |  |  the patch passed  |
   | +1 :green_heart: |  javac  |   5m 26s |  |  the patch passed  |
   | +1 :green_heart: |  blanks  |   0m  0s |  |  The patch has no blanks 
issues.  |
   | -0 :warning: |  checkstyle  |   0m 14s | 
[/buildtool-patch-checkstyle-hbase-server.txt](https://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-7149/7/artifact/yetus-general-check/output/buildtool-patch-checkstyle-hbase-server.txt)
 |  The patch fails to run checkstyle in hbase-server  |
   | -0 :warning: |  rubocop  |   0m  8s | 
[/results-rubocop.txt](https://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-7149/7/artifact/yetus-general-check/output/results-rubocop.txt)
 |  The patch generated 6 new + 444 unchanged - 0 fixed = 450 total (was 444)  |
   | +1 :green_heart: |  spotbugs  |   6m 13s |  |  the patch passed  |
   | +1 :green_heart: |  hadoopcheck  |  12m  3s |  |  Patch does not cause any 
errors with Hadoop 3.3.6 3.4.0.  |
   | +1 :green_heart: |  hbaseprotoc  |   2m  8s |  |  the patch passed  |
   | -1 :x: |  spotless  |   0m 21s |  |  patch has 21 errors when running 
spotless:check, run spotless:apply to fix.  |
    _ Other Tests _ |
   | +1 :green_heart: |  asflicense  |   0m 43s |  |  The patch does not 
generate ASF License warnings.  |
   |  |   |  58m 12s |  |  |
   
   
   | Subsystem | Report/Notes |
   |--:|:-|
   | Docker | ClientAPI=1.43 ServerAPI=1.43 base: 
https://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-7149/7/artifact/yetus-general-check/output/Dockerfile
 |
   | GITHUB PR | https://github.com/apache/hbase/pull/7149 |
   | JIRA Issue | HBASE-29328 |
   | Optional Tests | dupname asflicense javac spotbugs checkstyle codespell 
detsecrets compile hadoopcheck hbaseanti spotless cc buflint bufcompat 
hbaseprotoc rubocop |
   | uname | Linux 887be7758600 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-29081 / bcf08cc28deb66e91af64191146fc8d782de3f7f |
   | Default Java | Eclipse Adoptium-17.0.11+9 |
   | spotless | 
https://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-7149/7/artifact/yetus-general-check/output/patch-spotless.txt
 |
   | Max. process+thread count | 86 (vs. ulimit of 3) |
   | modules | C: hbase-protocol-shaded hbase-client hbase-server hbase-thrift 
hbase-shell U: . |
   | Console output | 
https://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-7149/7/console 
|
   | versions | git=2.34.1 maven=3.9.8 spotbugs=4.7.3 rubocop=1.37.1 |
   | 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-29328: Implement new HBase command: refresh_hfiles [hbase]

2025-08-07 Thread via GitHub


sharmaar12 commented on code in PR #7149:
URL: https://github.com/apache/hbase/pull/7149#discussion_r2260343570


##
hbase-protocol-shaded/src/main/protobuf/server/master/MasterProcedure.proto:
##
@@ -821,3 +821,20 @@ enum CloseTableRegionsProcedureState {
 message CloseTableRegionsProcedureStateData {
   required TableName table_name = 1;
 }
+
+enum RefreshHFilesTableProcedureState {
+  REFRESH_HFILES_PREPARE = 1;
+  REFRESH_HFILES_REFRESH_REGION = 2;
+  REFRESH_HFILES_FINISH = 3;
+}
+
+message RefreshHFilesTableProcedureStateData {
+}

Review Comment:
   I think you are right. We do need to store the table name here in case the 
restart is needed. I will add code accordingly.



-- 
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-29328: Implement new HBase command: refresh_hfiles [hbase]

2025-08-07 Thread via GitHub


sharmaar12 commented on code in PR #7149:
URL: https://github.com/apache/hbase/pull/7149#discussion_r2260343570


##
hbase-protocol-shaded/src/main/protobuf/server/master/MasterProcedure.proto:
##
@@ -821,3 +821,20 @@ enum CloseTableRegionsProcedureState {
 message CloseTableRegionsProcedureStateData {
   required TableName table_name = 1;
 }
+
+enum RefreshHFilesTableProcedureState {
+  REFRESH_HFILES_PREPARE = 1;
+  REFRESH_HFILES_REFRESH_REGION = 2;
+  REFRESH_HFILES_FINISH = 3;
+}
+
+message RefreshHFilesTableProcedureStateData {
+}

Review Comment:
   Can you clarify this a bit more?



-- 
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-29328: Implement new HBase command: refresh_hfiles [hbase]

2025-08-07 Thread via GitHub


sharmaar12 commented on code in PR #7149:
URL: https://github.com/apache/hbase/pull/7149#discussion_r2260341800


##
hbase-server/src/main/java/org/apache/hadoop/hbase/master/procedure/RefreshHFilesRegionProcedure.java:
##
@@ -0,0 +1,132 @@
+/*
+ * 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.master.procedure;
+
+import java.io.IOException;
+import java.util.Optional;
+import org.apache.hadoop.hbase.ServerName;
+import org.apache.hadoop.hbase.TableName;
+import org.apache.hadoop.hbase.client.RegionInfo;
+import org.apache.hadoop.hbase.master.assignment.RegionStateNode;
+import org.apache.hadoop.hbase.master.assignment.RegionStates;
+import org.apache.hadoop.hbase.procedure2.FailedRemoteDispatchException;
+import org.apache.hadoop.hbase.procedure2.Procedure;
+import org.apache.hadoop.hbase.procedure2.ProcedureStateSerializer;
+import org.apache.hadoop.hbase.procedure2.ProcedureSuspendedException;
+import org.apache.hadoop.hbase.procedure2.ProcedureYieldException;
+import org.apache.hadoop.hbase.procedure2.RemoteProcedureDispatcher;
+import org.apache.hadoop.hbase.procedure2.RemoteProcedureException;
+import org.apache.hadoop.hbase.regionserver.RefreshHFilesCallable;
+import org.apache.yetus.audience.InterfaceAudience;
+
+import org.apache.hadoop.hbase.shaded.protobuf.ProtobufUtil;
+import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProcedureProtos;
+
[email protected]
+public class RefreshHFilesRegionProcedure extends Procedure
+  implements TableProcedureInterface,
+  RemoteProcedureDispatcher.RemoteProcedure {
+  private RegionInfo region;
+
+  public RefreshHFilesRegionProcedure() {
+  }
+
+  public RefreshHFilesRegionProcedure(RegionInfo region) {
+this.region = region;
+  }
+
+  @Override
+  protected void deserializeStateData(ProcedureStateSerializer serializer) 
throws IOException {
+MasterProcedureProtos.RefreshHFilesRegionProcedureStateData data =
+  
serializer.deserialize(MasterProcedureProtos.RefreshHFilesRegionProcedureStateData.class);
+this.region = ProtobufUtil.toRegionInfo(data.getRegion());
+// TODO Get the Data from region server
+  }
+
+  @Override
+  protected void serializeStateData(ProcedureStateSerializer serializer) 
throws IOException {
+MasterProcedureProtos.RefreshHFilesRegionProcedureStateData.Builder 
builder =
+  MasterProcedureProtos.RefreshHFilesRegionProcedureStateData.newBuilder();
+builder.setRegion(ProtobufUtil.toRegionInfo(region));
+// TODO add data that you want to pass to region server
+serializer.serialize(builder.build());
+  }
+
+  @Override
+  protected boolean abort(MasterProcedureEnv env) {
+return false;
+  }
+
+  @Override
+  protected void rollback(MasterProcedureEnv env) throws IOException, 
InterruptedException {
+throw new UnsupportedOperationException();
+  }
+
+  @Override
+  protected Procedure[] execute(MasterProcedureEnv env)
+throws ProcedureYieldException, ProcedureSuspendedException, 
InterruptedException {
+RegionStates regionStates = env.getAssignmentManager().getRegionStates();
+RegionStateNode regionNode = regionStates.getRegionStateNode(region);

Review Comment:
   Split regions are not possible as readonly cluster is not serving any write 
so it can't lead to region splits. However if region split happens in active 
cluster then it will get communicated to read only cluster post execution of 
refresh_meta command (Also mentioned in design doc).
   For offline regions, I will be adding code to retry that execution again.



-- 
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-29328: Implement new HBase command: refresh_hfiles [hbase]

2025-08-05 Thread via GitHub


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


##
hbase-server/src/main/java/org/apache/hadoop/hbase/master/MasterRpcServices.java:
##
@@ -3661,4 +3661,28 @@ public FlushTableResponse flushTable(RpcController 
controller, FlushTableRequest
   throw new ServiceException(ioe);
 }
   }
+
+  @Override
+  public MasterProtos.RefreshHFilesResponse refreshHFiles(RpcController 
controller,
+MasterProtos.RefreshHFilesRequest request) throws ServiceException {
+// TODO Check if table exists otherwise send exception.

Review Comment:
   I agree. Since the PR is still in Draft mode, I guess these TODOs will be 
addressed in later commits.



##
hbase-client/src/main/java/org/apache/hadoop/hbase/client/RawAsyncHBaseAdmin.java:
##
@@ -4557,4 +4559,49 @@ List> adminCall(controller, stub, 
request.build(),
   resp -> resp.getCachedFilesList()))
   .serverName(serverName).call();
   }
+
+  @Override
+  public CompletableFuture refreshHFiles(final TableName tableName) {
+// Request builder
+RefreshHFilesRequest.Builder request = RefreshHFilesRequest.newBuilder();
+request.setTableName(ProtobufUtil.toProtoTableName(tableName));

Review Comment:
   I think in case of a standard TableName it could be either a table name 
without namespace prefix, meaning a table in the default namespace or a table 
name with the namespace prefix. I guess it's handled later in the code.



-- 
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-29328: Implement new HBase command: refresh_hfiles [hbase]

2025-07-31 Thread via GitHub


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

   :broken_heart: **-1 overall**
   
   
   
   
   
   
   | Vote | Subsystem | Runtime |  Logfile | Comment |
   |::|--:|:|::|:---:|
   | +0 :ok: |  reexec  |   0m 32s |  |  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-29081 Compile Tests _ |
   | +0 :ok: |  mvndep  |   0m 10s |  |  Maven dependency ordering for branch  |
   | +1 :green_heart: |  mvninstall  |   3m 16s |  |  HBASE-29081 passed  |
   | +1 :green_heart: |  compile  |   2m 36s |  |  HBASE-29081 passed  |
   | +1 :green_heart: |  javadoc  |   1m 34s |  |  HBASE-29081 passed  |
   | +1 :green_heart: |  shadedjars  |   5m 58s |  |  branch has no errors when 
building our shaded downstream artifacts.  |
    _ Patch Compile Tests _ |
   | +0 :ok: |  mvndep  |   0m 14s |  |  Maven dependency ordering for patch  |
   | +1 :green_heart: |  mvninstall  |   3m  4s |  |  the patch passed  |
   | +1 :green_heart: |  compile  |   2m 33s |  |  the patch passed  |
   | +1 :green_heart: |  javac  |   2m 33s |  |  the patch passed  |
   | +1 :green_heart: |  javadoc  |   1m 35s |  |  the patch passed  |
   | +1 :green_heart: |  shadedjars  |   5m 55s |  |  patch has no errors when 
building our shaded downstream artifacts.  |
    _ Other Tests _ |
   | +1 :green_heart: |  unit  |   0m 33s |  |  hbase-protocol-shaded in the 
patch passed.  |
   | +1 :green_heart: |  unit  |   1m 36s |  |  hbase-client in the patch 
passed.  |
   | -1 :x: |  unit  | 230m 15s | 
[/patch-unit-hbase-server.txt](https://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-7149/6/artifact/yetus-jdk17-hadoop3-check/output/patch-unit-hbase-server.txt)
 |  hbase-server in the patch failed.  |
   | +1 :green_heart: |  unit  |   6m 50s |  |  hbase-thrift in the patch 
passed.  |
   | +1 :green_heart: |  unit  |   7m 49s |  |  hbase-shell in the patch 
passed.  |
   |  |   | 279m 55s |  |  |
   
   
   | Subsystem | Report/Notes |
   |--:|:-|
   | Docker | ClientAPI=1.43 ServerAPI=1.43 base: 
https://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-7149/6/artifact/yetus-jdk17-hadoop3-check/output/Dockerfile
 |
   | GITHUB PR | https://github.com/apache/hbase/pull/7149 |
   | JIRA Issue | HBASE-29328 |
   | Optional Tests | javac javadoc unit compile shadedjars |
   | uname | Linux e6b0f97347f5 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-29081 / b0bb31b02417606eefe194972ea3e8dbc93d0019 |
   | Default Java | Eclipse Adoptium-17.0.11+9 |
   |  Test Results | 
https://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-7149/6/testReport/
 |
   | Max. process+thread count | 5895 (vs. ulimit of 3) |
   | modules | C: hbase-protocol-shaded hbase-client hbase-server hbase-thrift 
hbase-shell U: . |
   | Console output | 
https://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-7149/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-29328: Implement new HBase command: refresh_hfiles [hbase]

2025-07-31 Thread via GitHub


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

   :broken_heart: **-1 overall**
   
   
   
   
   
   
   | Vote | Subsystem | Runtime |  Logfile | Comment |
   |::|--:|:|::|:---:|
   | +0 :ok: |  reexec  |   0m 39s |  |  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: |  buf  |   0m  0s |  |  buf was not available.  |
   | +0 :ok: |  buf  |   0m  0s |  |  buf 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-29081 Compile Tests _ |
   | +0 :ok: |  mvndep  |   0m 10s |  |  Maven dependency ordering for branch  |
   | +1 :green_heart: |  mvninstall  |   3m  9s |  |  HBASE-29081 passed  |
   | +1 :green_heart: |  compile  |   5m 29s |  |  HBASE-29081 passed  |
   | +1 :green_heart: |  checkstyle  |   1m 37s |  |  HBASE-29081 passed  |
   | +1 :green_heart: |  spotbugs  |   5m 48s |  |  HBASE-29081 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  |   2m 55s |  |  the patch passed  |
   | +1 :green_heart: |  compile  |   5m 31s |  |  the patch passed  |
   | +1 :green_heart: |  cc  |   5m 31s |  |  the patch passed  |
   | +1 :green_heart: |  javac  |   5m 31s |  |  the patch passed  |
   | +1 :green_heart: |  blanks  |   0m  0s |  |  The patch has no blanks 
issues.  |
   | -0 :warning: |  checkstyle  |   0m 13s | 
[/buildtool-patch-checkstyle-hbase-server.txt](https://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-7149/6/artifact/yetus-general-check/output/buildtool-patch-checkstyle-hbase-server.txt)
 |  The patch fails to run checkstyle in hbase-server  |
   | -0 :warning: |  rubocop  |   0m 19s | 
[/results-rubocop.txt](https://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-7149/6/artifact/yetus-general-check/output/results-rubocop.txt)
 |  The patch generated 6 new + 444 unchanged - 0 fixed = 450 total (was 444)  |
   | +1 :green_heart: |  spotbugs  |   6m 19s |  |  the patch passed  |
   | +1 :green_heart: |  hadoopcheck  |  11m 32s |  |  Patch does not cause any 
errors with Hadoop 3.3.6 3.4.0.  |
   | +1 :green_heart: |  hbaseprotoc  |   2m  6s |  |  the patch passed  |
   | -1 :x: |  spotless  |   0m 21s |  |  patch has 21 errors when running 
spotless:check, run spotless:apply to fix.  |
    _ Other Tests _ |
   | +1 :green_heart: |  asflicense  |   0m 42s |  |  The patch does not 
generate ASF License warnings.  |
   |  |   |  57m  0s |  |  |
   
   
   | Subsystem | Report/Notes |
   |--:|:-|
   | Docker | ClientAPI=1.43 ServerAPI=1.43 base: 
https://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-7149/6/artifact/yetus-general-check/output/Dockerfile
 |
   | GITHUB PR | https://github.com/apache/hbase/pull/7149 |
   | JIRA Issue | HBASE-29328 |
   | Optional Tests | dupname asflicense javac spotbugs checkstyle codespell 
detsecrets compile hadoopcheck hbaseanti spotless cc buflint bufcompat 
hbaseprotoc rubocop |
   | uname | Linux 56bf399a1f02 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-29081 / b0bb31b02417606eefe194972ea3e8dbc93d0019 |
   | Default Java | Eclipse Adoptium-17.0.11+9 |
   | spotless | 
https://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-7149/6/artifact/yetus-general-check/output/patch-spotless.txt
 |
   | Max. process+thread count | 87 (vs. ulimit of 3) |
   | modules | C: hbase-protocol-shaded hbase-client hbase-server hbase-thrift 
hbase-shell U: . |
   | Console output | 
https://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-7149/6/console 
|
   | versions | git=2.34.1 maven=3.9.8 spotbugs=4.7.3 rubocop=1.37.1 |
   | 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-29328: Implement new HBase command: refresh_hfiles [hbase]

2025-07-31 Thread via GitHub


sharmaar12 commented on code in PR #7149:
URL: https://github.com/apache/hbase/pull/7149#discussion_r2245364397


##
hbase-client/src/main/java/org/apache/hadoop/hbase/client/RawAsyncHBaseAdmin.java:
##
@@ -4557,4 +4559,49 @@ List> adminCall(controller, stub, 
request.build(),
   resp -> resp.getCachedFilesList()))
   .serverName(serverName).call();
   }
+
+  @Override
+  public CompletableFuture refreshHFiles(final TableName tableName) {
+// Request builder
+RefreshHFilesRequest.Builder request = RefreshHFilesRequest.newBuilder();
+request.setTableName(ProtobufUtil.toProtoTableName(tableName));
+// Set nonce
+// Master Caller
+return this. newMasterCaller()
+  .action((controller, stub) -> this. call(
+controller, stub, request.build(), 
MasterService.Interface::refreshHFiles,
+RefreshHFilesResponse::getProcId))
+  .call();

Review Comment:
   Done. Thanks for pointing it out.



-- 
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-29328: Implement new HBase command: refresh_hfiles [hbase]

2025-07-31 Thread via GitHub


sharmaar12 commented on code in PR #7149:
URL: https://github.com/apache/hbase/pull/7149#discussion_r2244757406


##
hbase-protocol-shaded/src/main/protobuf/server/master/Master.proto:
##
@@ -796,6 +796,17 @@ message ModifyColumnStoreFileTrackerResponse {
   optional uint64 proc_id = 1;
 }
 
+message RefreshHFilesRequest {
+  optional TableName table_Name = 1;

Review Comment:
   Done.



##
hbase-client/src/main/java/org/apache/hadoop/hbase/client/Admin.java:
##
@@ -2651,4 +2651,24 @@ List getLogEntries(Set 
serverNames, String logType, Server
* Get the list of cached files
*/
   List getCachedFilesList(ServerName serverName) throws IOException;
+
+  /**
+   * Refresh HFiles for the table
+   * @param tableName table to refresh HFiles for

Review Comment:
   Done.



##
hbase-server/src/main/java/org/apache/hadoop/hbase/master/HMaster.java:
##
@@ -4543,4 +4544,61 @@ protected String getDescription() {
 }
   });
   }
+
+  public Long refreshHfiles(final TableName tableName, final long nonceGroup, 
final long nonce)
+throws IOException {
+// TODO Check if table exists otherwise send exception.
+// return 121L;
+return MasterProcedureUtil
+  .submitProcedure(new MasterProcedureUtil.NonceProcedureRunnable(this, 
nonceGroup, nonce) {
+@Override
+protected void run() throws IOException {
+  LOG.info("Submitting RefreshHfilesTableProcedure for a table");
+  submitProcedure(
+new 
RefreshHFilesTableProcedure(procedureExecutor.getEnvironment(), tableName));
+}
+
+@Override
+protected String getDescription() {
+  return "RefreshHfilesProcedure for a table";
+}
+  });
+  }
+
+  public Long refreshHfiles(final String namespace, final long nonceGroup, 
final long nonce)
+throws IOException {
+// TODO Check if namespace exists otherwise send exception.
+// return 122L;
+return MasterProcedureUtil
+  .submitProcedure(new MasterProcedureUtil.NonceProcedureRunnable(this, 
nonceGroup, nonce) {
+@Override
+protected void run() throws IOException {
+  LOG.info("Submitting RefreshHfilesProcedure for namespace");

Review Comment:
   Done.



##
hbase-server/src/main/java/org/apache/hadoop/hbase/master/HMaster.java:
##
@@ -4543,4 +4544,61 @@ protected String getDescription() {
 }
   });
   }
+
+  public Long refreshHfiles(final TableName tableName, final long nonceGroup, 
final long nonce)
+throws IOException {
+// TODO Check if table exists otherwise send exception.
+// return 121L;
+return MasterProcedureUtil
+  .submitProcedure(new MasterProcedureUtil.NonceProcedureRunnable(this, 
nonceGroup, nonce) {
+@Override
+protected void run() throws IOException {
+  LOG.info("Submitting RefreshHfilesTableProcedure for a table");

Review Comment:
   Done.



##
hbase-client/src/main/java/org/apache/hadoop/hbase/client/RawAsyncHBaseAdmin.java:
##
@@ -4557,4 +4559,49 @@ List> adminCall(controller, stub, 
request.build(),
   resp -> resp.getCachedFilesList()))
   .serverName(serverName).call();
   }
+
+  @Override
+  public CompletableFuture refreshHFiles(final TableName tableName) {
+// Request builder
+RefreshHFilesRequest.Builder request = RefreshHFilesRequest.newBuilder();
+request.setTableName(ProtobufUtil.toProtoTableName(tableName));
+// Set nonce
+// Master Caller
+return this. newMasterCaller()
+  .action((controller, stub) -> this. call(
+controller, stub, request.build(), 
MasterService.Interface::refreshHFiles,
+RefreshHFilesResponse::getProcId))
+  .call();
+// return CompletableFuture.completedFuture(null);
+  }
+
+  @Override
+  public CompletableFuture refreshHFiles(final String namespace) {
+// Request builder
+RefreshHFilesRequest.Builder request = RefreshHFilesRequest.newBuilder();
+request.setNamespace(namespace);
+// Set nonce
+// Master Caller
+return this. newMasterCaller()
+  .action((controller, stub) -> this. call(
+controller, stub, request.build(), 
MasterService.Interface::refreshHFiles,
+RefreshHFilesResponse::getProcId))
+  .call();
+// return CompletableFuture.completedFuture(null);
+  }
+
+  @Override
+  public CompletableFuture refreshHFiles() {
+// Request builder
+RefreshHFilesRequest.Builder request = RefreshHFilesRequest.newBuilder();
+// Set nonce
+request.setNonceGroup(ng.getNonceGroup()).setNonce(ng.newNonce());
+// Master Caller
+return this. newMasterCaller()
+  .action((controller, stub) -> this. call(
+controller, stub, request.build(), 
MasterService.Interface::refreshHFiles,
+RefreshHFilesResponse::getProcId))
+  .call();
+// return CompletableFuture.completedFuture(null);

Review Comment:
   Done.



##

Re: [PR] HBASE-29328: Implement new HBase command: refresh_hfiles [hbase]

2025-07-30 Thread via GitHub


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


##
hbase-server/src/main/java/org/apache/hadoop/hbase/master/procedure/RefreshHFilesRegionProcedure.java:
##
@@ -0,0 +1,132 @@
+/*
+ * 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.master.procedure;
+
+import java.io.IOException;
+import java.util.Optional;
+import org.apache.hadoop.hbase.ServerName;
+import org.apache.hadoop.hbase.TableName;
+import org.apache.hadoop.hbase.client.RegionInfo;
+import org.apache.hadoop.hbase.master.assignment.RegionStateNode;
+import org.apache.hadoop.hbase.master.assignment.RegionStates;
+import org.apache.hadoop.hbase.procedure2.FailedRemoteDispatchException;
+import org.apache.hadoop.hbase.procedure2.Procedure;
+import org.apache.hadoop.hbase.procedure2.ProcedureStateSerializer;
+import org.apache.hadoop.hbase.procedure2.ProcedureSuspendedException;
+import org.apache.hadoop.hbase.procedure2.ProcedureYieldException;
+import org.apache.hadoop.hbase.procedure2.RemoteProcedureDispatcher;
+import org.apache.hadoop.hbase.procedure2.RemoteProcedureException;
+import org.apache.hadoop.hbase.regionserver.RefreshHFilesCallable;
+import org.apache.yetus.audience.InterfaceAudience;
+
+import org.apache.hadoop.hbase.shaded.protobuf.ProtobufUtil;
+import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProcedureProtos;
+
[email protected]
+public class RefreshHFilesRegionProcedure extends Procedure
+  implements TableProcedureInterface,
+  RemoteProcedureDispatcher.RemoteProcedure {
+  private RegionInfo region;
+
+  public RefreshHFilesRegionProcedure() {
+  }
+
+  public RefreshHFilesRegionProcedure(RegionInfo region) {
+this.region = region;
+  }
+
+  @Override
+  protected void deserializeStateData(ProcedureStateSerializer serializer) 
throws IOException {
+MasterProcedureProtos.RefreshHFilesRegionProcedureStateData data =
+  
serializer.deserialize(MasterProcedureProtos.RefreshHFilesRegionProcedureStateData.class);
+this.region = ProtobufUtil.toRegionInfo(data.getRegion());
+// TODO Get the Data from region server
+  }
+
+  @Override
+  protected void serializeStateData(ProcedureStateSerializer serializer) 
throws IOException {
+MasterProcedureProtos.RefreshHFilesRegionProcedureStateData.Builder 
builder =
+  MasterProcedureProtos.RefreshHFilesRegionProcedureStateData.newBuilder();
+builder.setRegion(ProtobufUtil.toRegionInfo(region));
+// TODO add data that you want to pass to region server
+serializer.serialize(builder.build());
+  }
+
+  @Override
+  protected boolean abort(MasterProcedureEnv env) {
+return false;
+  }
+
+  @Override
+  protected void rollback(MasterProcedureEnv env) throws IOException, 
InterruptedException {
+throw new UnsupportedOperationException();
+  }
+
+  @Override
+  protected Procedure[] execute(MasterProcedureEnv env)
+throws ProcedureYieldException, ProcedureSuspendedException, 
InterruptedException {
+RegionStates regionStates = env.getAssignmentManager().getRegionStates();
+RegionStateNode regionNode = regionStates.getRegionStateNode(region);
+
+ServerName targetServer = regionNode.getRegionLocation();
+
+try {
+  env.getRemoteDispatcher().addOperationToNode(targetServer, this);
+} catch (FailedRemoteDispatchException e) {
+  throw new ProcedureSuspendedException();
+}
+
+return null;
+  }
+
+  @Override
+  public TableOperationType getTableOperationType() {
+return TableOperationType.REFRESH_HFILES;
+  }
+
+  @Override
+  public TableName getTableName() {
+return region.getTable();
+  }
+
+  @Override
+  public void remoteOperationFailed(MasterProcedureEnv env, 
RemoteProcedureException error) {
+// TODO redo the same thing again till retry count else send the error to 
client.

Review Comment:
   Are these TODOs going to be implemented in this PR?



-- 
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 

Re: [PR] HBASE-29328: Implement new HBase command: refresh_hfiles [hbase]

2025-07-30 Thread via GitHub


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


##
hbase-server/src/main/java/org/apache/hadoop/hbase/master/HMaster.java:
##
@@ -4543,4 +4544,61 @@ protected String getDescription() {
 }
   });
   }
+
+  public Long refreshHfiles(final TableName tableName, final long nonceGroup, 
final long nonce)
+throws IOException {
+// TODO Check if table exists otherwise send exception.
+// return 121L;
+return MasterProcedureUtil
+  .submitProcedure(new MasterProcedureUtil.NonceProcedureRunnable(this, 
nonceGroup, nonce) {
+@Override
+protected void run() throws IOException {
+  LOG.info("Submitting RefreshHfilesTableProcedure for a table");
+  submitProcedure(
+new 
RefreshHFilesTableProcedure(procedureExecutor.getEnvironment(), tableName));
+}
+
+@Override
+protected String getDescription() {
+  return "RefreshHfilesProcedure for a table";
+}
+  });
+  }
+
+  public Long refreshHfiles(final String namespace, final long nonceGroup, 
final long nonce)
+throws IOException {
+// TODO Check if namespace exists otherwise send exception.
+// return 122L;
+return MasterProcedureUtil
+  .submitProcedure(new MasterProcedureUtil.NonceProcedureRunnable(this, 
nonceGroup, nonce) {
+@Override
+protected void run() throws IOException {
+  LOG.info("Submitting RefreshHfilesProcedure for namespace");
+  submitProcedure(
+new 
RefreshHFilesTableProcedure(procedureExecutor.getEnvironment(), namespace));
+}
+
+@Override
+protected String getDescription() {
+  return "RefreshHfilesProcedure for namespace";
+}
+  });
+  }
+
+  public Long refreshHfiles(final long nonceGroup, final long nonce) throws 
IOException {
+// return 123L;
+return MasterProcedureUtil
+  .submitProcedure(new MasterProcedureUtil.NonceProcedureRunnable(this, 
nonceGroup, nonce) {
+@Override
+protected void run() throws IOException {
+  LOG.info("Submitting RefreshHfilesProcedure for all tables");
+  submitProcedure(new 
RefreshHFilesTableProcedure(procedureExecutor.getEnvironment()));
+}
+
+@Override
+protected String getDescription() {
+  return "RefreshHfilesProcedure for all tables";
+}
+  });

Review Comment:
   Do you think it would be worth building this in it's own function?  That may 
help prevent some building this in three separate places.  Something like:
   
   `public long submitRefreshHfilesProcedure(final TableName tableName, final 
String namespace, final long nonceGroup, final long nonce)`
   
   Then you can build the log message and `RefreshHFilesTableProcedure` object 
differently based on if `tableName`, `namespace`, or both are 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-29328: Implement new HBase command: refresh_hfiles [hbase]

2025-07-30 Thread via GitHub


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


##
hbase-server/src/main/java/org/apache/hadoop/hbase/master/MasterRpcServices.java:
##
@@ -3661,4 +3661,28 @@ public FlushTableResponse flushTable(RpcController 
controller, FlushTableRequest
   throw new ServiceException(ioe);
 }
   }
+
+  @Override
+  public MasterProtos.RefreshHFilesResponse refreshHFiles(RpcController 
controller,
+MasterProtos.RefreshHFilesRequest request) throws ServiceException {
+// TODO Check if table exists otherwise send exception.
+try {
+  Long procId;
+  if (request.hasTableName()) { // if we have provided table name as 
parameter

Review Comment:
   What happens if a request has both a namespace and a table name?  Do we want 
refreshing just the table to take precedence?



##
hbase-server/src/main/java/org/apache/hadoop/hbase/master/procedure/RefreshHFilesRegionProcedure.java:
##
@@ -0,0 +1,132 @@
+/*
+ * 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.master.procedure;
+
+import java.io.IOException;
+import java.util.Optional;
+import org.apache.hadoop.hbase.ServerName;
+import org.apache.hadoop.hbase.TableName;
+import org.apache.hadoop.hbase.client.RegionInfo;
+import org.apache.hadoop.hbase.master.assignment.RegionStateNode;
+import org.apache.hadoop.hbase.master.assignment.RegionStates;
+import org.apache.hadoop.hbase.procedure2.FailedRemoteDispatchException;
+import org.apache.hadoop.hbase.procedure2.Procedure;
+import org.apache.hadoop.hbase.procedure2.ProcedureStateSerializer;
+import org.apache.hadoop.hbase.procedure2.ProcedureSuspendedException;
+import org.apache.hadoop.hbase.procedure2.ProcedureYieldException;
+import org.apache.hadoop.hbase.procedure2.RemoteProcedureDispatcher;
+import org.apache.hadoop.hbase.procedure2.RemoteProcedureException;
+import org.apache.hadoop.hbase.regionserver.RefreshHFilesCallable;
+import org.apache.yetus.audience.InterfaceAudience;
+
+import org.apache.hadoop.hbase.shaded.protobuf.ProtobufUtil;
+import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProcedureProtos;
+
[email protected]
+public class RefreshHFilesRegionProcedure extends Procedure
+  implements TableProcedureInterface,
+  RemoteProcedureDispatcher.RemoteProcedure {
+  private RegionInfo region;
+
+  public RefreshHFilesRegionProcedure() {
+  }
+
+  public RefreshHFilesRegionProcedure(RegionInfo region) {
+this.region = region;
+  }
+
+  @Override
+  protected void deserializeStateData(ProcedureStateSerializer serializer) 
throws IOException {
+MasterProcedureProtos.RefreshHFilesRegionProcedureStateData data =
+  
serializer.deserialize(MasterProcedureProtos.RefreshHFilesRegionProcedureStateData.class);
+this.region = ProtobufUtil.toRegionInfo(data.getRegion());
+// TODO Get the Data from region server
+  }
+
+  @Override
+  protected void serializeStateData(ProcedureStateSerializer serializer) 
throws IOException {
+MasterProcedureProtos.RefreshHFilesRegionProcedureStateData.Builder 
builder =
+  MasterProcedureProtos.RefreshHFilesRegionProcedureStateData.newBuilder();
+builder.setRegion(ProtobufUtil.toRegionInfo(region));
+// TODO add data that you want to pass to region server
+serializer.serialize(builder.build());
+  }
+
+  @Override
+  protected boolean abort(MasterProcedureEnv env) {
+return false;
+  }
+
+  @Override
+  protected void rollback(MasterProcedureEnv env) throws IOException, 
InterruptedException {
+throw new UnsupportedOperationException();
+  }
+
+  @Override
+  protected Procedure[] execute(MasterProcedureEnv env)
+throws ProcedureYieldException, ProcedureSuspendedException, 
InterruptedException {
+RegionStates regionStates = env.getAssignmentManager().getRegionStates();
+RegionStateNode regionNode = regionStates.getRegionStateNode(region);
+
+ServerName targetServer = regionNode.getRegionLocation();
+
+try {
+  env.getRemoteDispatcher().addOperationToNode(targetServer, this);
+} catch (FailedRemoteDispatchException e) {
+  throw new ProcedureSuspendedException();
+}
+
+return null;

Re: [PR] HBASE-29328: Implement new HBase command: refresh_hfiles [hbase]

2025-07-30 Thread via GitHub


wchevreuil commented on code in PR #7149:
URL: https://github.com/apache/hbase/pull/7149#discussion_r2242653785


##
hbase-server/src/main/java/org/apache/hadoop/hbase/master/procedure/RefreshHFilesRegionProcedure.java:
##
@@ -0,0 +1,132 @@
+/*
+ * 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.master.procedure;
+
+import java.io.IOException;
+import java.util.Optional;
+import org.apache.hadoop.hbase.ServerName;
+import org.apache.hadoop.hbase.TableName;
+import org.apache.hadoop.hbase.client.RegionInfo;
+import org.apache.hadoop.hbase.master.assignment.RegionStateNode;
+import org.apache.hadoop.hbase.master.assignment.RegionStates;
+import org.apache.hadoop.hbase.procedure2.FailedRemoteDispatchException;
+import org.apache.hadoop.hbase.procedure2.Procedure;
+import org.apache.hadoop.hbase.procedure2.ProcedureStateSerializer;
+import org.apache.hadoop.hbase.procedure2.ProcedureSuspendedException;
+import org.apache.hadoop.hbase.procedure2.ProcedureYieldException;
+import org.apache.hadoop.hbase.procedure2.RemoteProcedureDispatcher;
+import org.apache.hadoop.hbase.procedure2.RemoteProcedureException;
+import org.apache.hadoop.hbase.regionserver.RefreshHFilesCallable;
+import org.apache.yetus.audience.InterfaceAudience;
+
+import org.apache.hadoop.hbase.shaded.protobuf.ProtobufUtil;
+import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProcedureProtos;
+
[email protected]
+public class RefreshHFilesRegionProcedure extends Procedure
+  implements TableProcedureInterface,
+  RemoteProcedureDispatcher.RemoteProcedure {
+  private RegionInfo region;
+
+  public RefreshHFilesRegionProcedure() {
+  }
+
+  public RefreshHFilesRegionProcedure(RegionInfo region) {
+this.region = region;
+  }
+
+  @Override
+  protected void deserializeStateData(ProcedureStateSerializer serializer) 
throws IOException {
+MasterProcedureProtos.RefreshHFilesRegionProcedureStateData data =
+  
serializer.deserialize(MasterProcedureProtos.RefreshHFilesRegionProcedureStateData.class);
+this.region = ProtobufUtil.toRegionInfo(data.getRegion());
+// TODO Get the Data from region server
+  }
+
+  @Override
+  protected void serializeStateData(ProcedureStateSerializer serializer) 
throws IOException {
+MasterProcedureProtos.RefreshHFilesRegionProcedureStateData.Builder 
builder =
+  MasterProcedureProtos.RefreshHFilesRegionProcedureStateData.newBuilder();
+builder.setRegion(ProtobufUtil.toRegionInfo(region));
+// TODO add data that you want to pass to region server
+serializer.serialize(builder.build());
+  }
+
+  @Override
+  protected boolean abort(MasterProcedureEnv env) {
+return false;
+  }
+
+  @Override
+  protected void rollback(MasterProcedureEnv env) throws IOException, 
InterruptedException {
+throw new UnsupportedOperationException();
+  }
+
+  @Override
+  protected Procedure[] execute(MasterProcedureEnv env)
+throws ProcedureYieldException, ProcedureSuspendedException, 
InterruptedException {
+RegionStates regionStates = env.getAssignmentManager().getRegionStates();
+RegionStateNode regionNode = regionStates.getRegionStateNode(region);

Review Comment:
   Do we need to validate if region is online/offline? How about split regions? 



-- 
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-29328: Implement new HBase command: refresh_hfiles [hbase]

2025-07-30 Thread via GitHub


wchevreuil commented on code in PR #7149:
URL: https://github.com/apache/hbase/pull/7149#discussion_r2242657403


##
hbase-server/src/main/java/org/apache/hadoop/hbase/master/procedure/RefreshHFilesRegionProcedure.java:
##
@@ -0,0 +1,132 @@
+/*
+ * 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.master.procedure;
+
+import java.io.IOException;
+import java.util.Optional;
+import org.apache.hadoop.hbase.ServerName;
+import org.apache.hadoop.hbase.TableName;
+import org.apache.hadoop.hbase.client.RegionInfo;
+import org.apache.hadoop.hbase.master.assignment.RegionStateNode;
+import org.apache.hadoop.hbase.master.assignment.RegionStates;
+import org.apache.hadoop.hbase.procedure2.FailedRemoteDispatchException;
+import org.apache.hadoop.hbase.procedure2.Procedure;
+import org.apache.hadoop.hbase.procedure2.ProcedureStateSerializer;
+import org.apache.hadoop.hbase.procedure2.ProcedureSuspendedException;
+import org.apache.hadoop.hbase.procedure2.ProcedureYieldException;
+import org.apache.hadoop.hbase.procedure2.RemoteProcedureDispatcher;
+import org.apache.hadoop.hbase.procedure2.RemoteProcedureException;
+import org.apache.hadoop.hbase.regionserver.RefreshHFilesCallable;
+import org.apache.yetus.audience.InterfaceAudience;
+
+import org.apache.hadoop.hbase.shaded.protobuf.ProtobufUtil;
+import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProcedureProtos;
+
[email protected]
+public class RefreshHFilesRegionProcedure extends Procedure
+  implements TableProcedureInterface,
+  RemoteProcedureDispatcher.RemoteProcedure {
+  private RegionInfo region;
+
+  public RefreshHFilesRegionProcedure() {
+  }
+
+  public RefreshHFilesRegionProcedure(RegionInfo region) {
+this.region = region;
+  }
+
+  @Override
+  protected void deserializeStateData(ProcedureStateSerializer serializer) 
throws IOException {
+MasterProcedureProtos.RefreshHFilesRegionProcedureStateData data =
+  
serializer.deserialize(MasterProcedureProtos.RefreshHFilesRegionProcedureStateData.class);
+this.region = ProtobufUtil.toRegionInfo(data.getRegion());
+// TODO Get the Data from region server
+  }
+
+  @Override
+  protected void serializeStateData(ProcedureStateSerializer serializer) 
throws IOException {
+MasterProcedureProtos.RefreshHFilesRegionProcedureStateData.Builder 
builder =
+  MasterProcedureProtos.RefreshHFilesRegionProcedureStateData.newBuilder();
+builder.setRegion(ProtobufUtil.toRegionInfo(region));
+// TODO add data that you want to pass to region server

Review Comment:
   address it or remove it.



-- 
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-29328: Implement new HBase command: refresh_hfiles [hbase]

2025-07-30 Thread via GitHub


wchevreuil commented on code in PR #7149:
URL: https://github.com/apache/hbase/pull/7149#discussion_r2242656408


##
hbase-server/src/main/java/org/apache/hadoop/hbase/master/procedure/RefreshHFilesRegionProcedure.java:
##
@@ -0,0 +1,132 @@
+/*
+ * 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.master.procedure;
+
+import java.io.IOException;
+import java.util.Optional;
+import org.apache.hadoop.hbase.ServerName;
+import org.apache.hadoop.hbase.TableName;
+import org.apache.hadoop.hbase.client.RegionInfo;
+import org.apache.hadoop.hbase.master.assignment.RegionStateNode;
+import org.apache.hadoop.hbase.master.assignment.RegionStates;
+import org.apache.hadoop.hbase.procedure2.FailedRemoteDispatchException;
+import org.apache.hadoop.hbase.procedure2.Procedure;
+import org.apache.hadoop.hbase.procedure2.ProcedureStateSerializer;
+import org.apache.hadoop.hbase.procedure2.ProcedureSuspendedException;
+import org.apache.hadoop.hbase.procedure2.ProcedureYieldException;
+import org.apache.hadoop.hbase.procedure2.RemoteProcedureDispatcher;
+import org.apache.hadoop.hbase.procedure2.RemoteProcedureException;
+import org.apache.hadoop.hbase.regionserver.RefreshHFilesCallable;
+import org.apache.yetus.audience.InterfaceAudience;
+
+import org.apache.hadoop.hbase.shaded.protobuf.ProtobufUtil;
+import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProcedureProtos;
+
[email protected]
+public class RefreshHFilesRegionProcedure extends Procedure
+  implements TableProcedureInterface,
+  RemoteProcedureDispatcher.RemoteProcedure {
+  private RegionInfo region;
+
+  public RefreshHFilesRegionProcedure() {
+  }
+
+  public RefreshHFilesRegionProcedure(RegionInfo region) {
+this.region = region;
+  }
+
+  @Override
+  protected void deserializeStateData(ProcedureStateSerializer serializer) 
throws IOException {
+MasterProcedureProtos.RefreshHFilesRegionProcedureStateData data =
+  
serializer.deserialize(MasterProcedureProtos.RefreshHFilesRegionProcedureStateData.class);
+this.region = ProtobufUtil.toRegionInfo(data.getRegion());
+// TODO Get the Data from region server

Review Comment:
   address TODO or remove if this is not needed.



-- 
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-29328: Implement new HBase command: refresh_hfiles [hbase]

2025-07-30 Thread via GitHub


wchevreuil commented on code in PR #7149:
URL: https://github.com/apache/hbase/pull/7149#discussion_r2242653785


##
hbase-server/src/main/java/org/apache/hadoop/hbase/master/procedure/RefreshHFilesRegionProcedure.java:
##
@@ -0,0 +1,132 @@
+/*
+ * 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.master.procedure;
+
+import java.io.IOException;
+import java.util.Optional;
+import org.apache.hadoop.hbase.ServerName;
+import org.apache.hadoop.hbase.TableName;
+import org.apache.hadoop.hbase.client.RegionInfo;
+import org.apache.hadoop.hbase.master.assignment.RegionStateNode;
+import org.apache.hadoop.hbase.master.assignment.RegionStates;
+import org.apache.hadoop.hbase.procedure2.FailedRemoteDispatchException;
+import org.apache.hadoop.hbase.procedure2.Procedure;
+import org.apache.hadoop.hbase.procedure2.ProcedureStateSerializer;
+import org.apache.hadoop.hbase.procedure2.ProcedureSuspendedException;
+import org.apache.hadoop.hbase.procedure2.ProcedureYieldException;
+import org.apache.hadoop.hbase.procedure2.RemoteProcedureDispatcher;
+import org.apache.hadoop.hbase.procedure2.RemoteProcedureException;
+import org.apache.hadoop.hbase.regionserver.RefreshHFilesCallable;
+import org.apache.yetus.audience.InterfaceAudience;
+
+import org.apache.hadoop.hbase.shaded.protobuf.ProtobufUtil;
+import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProcedureProtos;
+
[email protected]
+public class RefreshHFilesRegionProcedure extends Procedure
+  implements TableProcedureInterface,
+  RemoteProcedureDispatcher.RemoteProcedure {
+  private RegionInfo region;
+
+  public RefreshHFilesRegionProcedure() {
+  }
+
+  public RefreshHFilesRegionProcedure(RegionInfo region) {
+this.region = region;
+  }
+
+  @Override
+  protected void deserializeStateData(ProcedureStateSerializer serializer) 
throws IOException {
+MasterProcedureProtos.RefreshHFilesRegionProcedureStateData data =
+  
serializer.deserialize(MasterProcedureProtos.RefreshHFilesRegionProcedureStateData.class);
+this.region = ProtobufUtil.toRegionInfo(data.getRegion());
+// TODO Get the Data from region server
+  }
+
+  @Override
+  protected void serializeStateData(ProcedureStateSerializer serializer) 
throws IOException {
+MasterProcedureProtos.RefreshHFilesRegionProcedureStateData.Builder 
builder =
+  MasterProcedureProtos.RefreshHFilesRegionProcedureStateData.newBuilder();
+builder.setRegion(ProtobufUtil.toRegionInfo(region));
+// TODO add data that you want to pass to region server
+serializer.serialize(builder.build());
+  }
+
+  @Override
+  protected boolean abort(MasterProcedureEnv env) {
+return false;
+  }
+
+  @Override
+  protected void rollback(MasterProcedureEnv env) throws IOException, 
InterruptedException {
+throw new UnsupportedOperationException();
+  }
+
+  @Override
+  protected Procedure[] execute(MasterProcedureEnv env)
+throws ProcedureYieldException, ProcedureSuspendedException, 
InterruptedException {
+RegionStates regionStates = env.getAssignmentManager().getRegionStates();
+RegionStateNode regionNode = regionStates.getRegionStateNode(region);

Review Comment:
   Do we need to distinguish between online/offline regions? How about split 
regions? 



-- 
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-29328: Implement new HBase command: refresh_hfiles [hbase]

2025-07-30 Thread via GitHub


wchevreuil commented on code in PR #7149:
URL: https://github.com/apache/hbase/pull/7149#discussion_r2242481172


##
hbase-server/src/main/java/org/apache/hadoop/hbase/master/MasterRpcServices.java:
##
@@ -3661,4 +3661,28 @@ public FlushTableResponse flushTable(RpcController 
controller, FlushTableRequest
   throw new ServiceException(ioe);
 }
   }
+
+  @Override
+  public MasterProtos.RefreshHFilesResponse refreshHFiles(RpcController 
controller,
+MasterProtos.RefreshHFilesRequest request) throws ServiceException {
+// TODO Check if table exists otherwise send exception.
+try {
+  Long procId;
+  if (request.hasTableName()) { // if we have provided table name as 
parameter
+// refreshHfiles for the given user tables
+procId = 
server.refreshHfiles(ProtobufUtil.toTableName(request.getTableName()),
+  request.getNonceGroup(), request.getNonce());
+  } else if (request.hasNamespace()) { // if we have provided namespace as 
parameter
+// refreshHfiles for all the user tables under the namespace
+procId =
+  server.refreshHfiles(request.getNamespace(), 
request.getNonceGroup(), request.getNonce());
+  } else { // When no parameter is provided
+// refreshHfiles for all the user tables in HBase
+procId = server.refreshHfiles(request.getNonceGroup(), 
request.getNonce());
+  }

Review Comment:
   nit: remove comments. The code itself is easy to follow.



-- 
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-29328: Implement new HBase command: refresh_hfiles [hbase]

2025-07-30 Thread via GitHub


wchevreuil commented on code in PR #7149:
URL: https://github.com/apache/hbase/pull/7149#discussion_r2242479366


##
hbase-server/src/main/java/org/apache/hadoop/hbase/master/MasterRpcServices.java:
##
@@ -3661,4 +3661,28 @@ public FlushTableResponse flushTable(RpcController 
controller, FlushTableRequest
   throw new ServiceException(ioe);
 }
   }
+
+  @Override
+  public MasterProtos.RefreshHFilesResponse refreshHFiles(RpcController 
controller,
+MasterProtos.RefreshHFilesRequest request) throws ServiceException {
+// TODO Check if table exists otherwise send exception.

Review Comment:
   Please address TODO or remove it if deemed unnecessary.



-- 
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-29328: Implement new HBase command: refresh_hfiles [hbase]

2025-07-30 Thread via GitHub


wchevreuil commented on code in PR #7149:
URL: https://github.com/apache/hbase/pull/7149#discussion_r2242475183


##
hbase-server/src/main/java/org/apache/hadoop/hbase/master/HMaster.java:
##
@@ -4543,4 +4544,61 @@ protected String getDescription() {
 }
   });
   }
+
+  public Long refreshHfiles(final TableName tableName, final long nonceGroup, 
final long nonce)
+throws IOException {
+// TODO Check if table exists otherwise send exception.
+// return 121L;
+return MasterProcedureUtil
+  .submitProcedure(new MasterProcedureUtil.NonceProcedureRunnable(this, 
nonceGroup, nonce) {
+@Override
+protected void run() throws IOException {
+  LOG.info("Submitting RefreshHfilesTableProcedure for a table");
+  submitProcedure(
+new 
RefreshHFilesTableProcedure(procedureExecutor.getEnvironment(), tableName));
+}
+
+@Override
+protected String getDescription() {
+  return "RefreshHfilesProcedure for a table";
+}
+  });
+  }
+
+  public Long refreshHfiles(final String namespace, final long nonceGroup, 
final long nonce)
+throws IOException {
+// TODO Check if namespace exists otherwise send exception.
+// return 122L;
+return MasterProcedureUtil
+  .submitProcedure(new MasterProcedureUtil.NonceProcedureRunnable(this, 
nonceGroup, nonce) {
+@Override
+protected void run() throws IOException {
+  LOG.info("Submitting RefreshHfilesProcedure for namespace");
+  submitProcedure(
+new 
RefreshHFilesTableProcedure(procedureExecutor.getEnvironment(), namespace));
+}
+
+@Override
+protected String getDescription() {
+  return "RefreshHfilesProcedure for namespace";
+}
+  });
+  }
+
+  public Long refreshHfiles(final long nonceGroup, final long nonce) throws 
IOException {
+// return 123L;

Review Comment:
   nit: remove commented hardcode.



-- 
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-29328: Implement new HBase command: refresh_hfiles [hbase]

2025-07-30 Thread via GitHub


wchevreuil commented on code in PR #7149:
URL: https://github.com/apache/hbase/pull/7149#discussion_r2242466201


##
hbase-protocol-shaded/src/main/protobuf/server/master/MasterProcedure.proto:
##
@@ -821,3 +821,20 @@ enum CloseTableRegionsProcedureState {
 message CloseTableRegionsProcedureStateData {
   required TableName table_name = 1;
 }
+
+enum RefreshHFilesTableProcedureState {
+  REFRESH_HFILES_PREPARE = 1;
+  REFRESH_HFILES_REFRESH_REGION = 2;
+  REFRESH_HFILES_FINISH = 3;
+}
+
+message RefreshHFilesTableProcedureStateData {
+}

Review Comment:
   Don't we need a table identifier here? Or is the table proc an aggregation 
of regions procs?



-- 
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-29328: Implement new HBase command: refresh_hfiles [hbase]

2025-07-30 Thread via GitHub


wchevreuil commented on code in PR #7149:
URL: https://github.com/apache/hbase/pull/7149#discussion_r2242466201


##
hbase-protocol-shaded/src/main/protobuf/server/master/MasterProcedure.proto:
##
@@ -821,3 +821,20 @@ enum CloseTableRegionsProcedureState {
 message CloseTableRegionsProcedureStateData {
   required TableName table_name = 1;
 }
+
+enum RefreshHFilesTableProcedureState {
+  REFRESH_HFILES_PREPARE = 1;
+  REFRESH_HFILES_REFRESH_REGION = 2;
+  REFRESH_HFILES_FINISH = 3;
+}
+
+message RefreshHFilesTableProcedureStateData {
+}

Review Comment:
   Don't we need a table identifier 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-29328: Implement new HBase command: refresh_hfiles [hbase]

2025-07-30 Thread via GitHub


wchevreuil commented on code in PR #7149:
URL: https://github.com/apache/hbase/pull/7149#discussion_r2242457555


##
hbase-client/src/main/java/org/apache/hadoop/hbase/client/RawAsyncHBaseAdmin.java:
##
@@ -4557,4 +4559,49 @@ List> adminCall(controller, stub, 
request.build(),
   resp -> resp.getCachedFilesList()))
   .serverName(serverName).call();
   }
+
+  @Override
+  public CompletableFuture refreshHFiles(final TableName tableName) {
+// Request builder
+RefreshHFilesRequest.Builder request = RefreshHFilesRequest.newBuilder();
+request.setTableName(ProtobufUtil.toProtoTableName(tableName));
+// Set nonce
+// Master Caller
+return this. newMasterCaller()
+  .action((controller, stub) -> this. call(
+controller, stub, request.build(), 
MasterService.Interface::refreshHFiles,
+RefreshHFilesResponse::getProcId))
+  .call();
+// return CompletableFuture.completedFuture(null);
+  }
+
+  @Override
+  public CompletableFuture refreshHFiles(final String namespace) {
+// Request builder
+RefreshHFilesRequest.Builder request = RefreshHFilesRequest.newBuilder();
+request.setNamespace(namespace);
+// Set nonce
+// Master Caller
+return this. newMasterCaller()
+  .action((controller, stub) -> this. call(
+controller, stub, request.build(), 
MasterService.Interface::refreshHFiles,
+RefreshHFilesResponse::getProcId))
+  .call();
+// return CompletableFuture.completedFuture(null);
+  }
+
+  @Override
+  public CompletableFuture refreshHFiles() {
+// Request builder
+RefreshHFilesRequest.Builder request = RefreshHFilesRequest.newBuilder();
+// Set nonce
+request.setNonceGroup(ng.getNonceGroup()).setNonce(ng.newNonce());
+// Master Caller
+return this. newMasterCaller()
+  .action((controller, stub) -> this. call(
+controller, stub, request.build(), 
MasterService.Interface::refreshHFiles,
+RefreshHFilesResponse::getProcId))
+  .call();
+// return CompletableFuture.completedFuture(null);

Review Comment:
   same as above.



-- 
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-29328: Implement new HBase command: refresh_hfiles [hbase]

2025-07-30 Thread via GitHub


wchevreuil commented on code in PR #7149:
URL: https://github.com/apache/hbase/pull/7149#discussion_r2242454382


##
hbase-client/src/main/java/org/apache/hadoop/hbase/client/RawAsyncHBaseAdmin.java:
##
@@ -4557,4 +4559,49 @@ List> adminCall(controller, stub, 
request.build(),
   resp -> resp.getCachedFilesList()))
   .serverName(serverName).call();
   }
+
+  @Override
+  public CompletableFuture refreshHFiles(final TableName tableName) {
+// Request builder
+RefreshHFilesRequest.Builder request = RefreshHFilesRequest.newBuilder();
+request.setTableName(ProtobufUtil.toProtoTableName(tableName));
+// Set nonce
+// Master Caller
+return this. newMasterCaller()
+  .action((controller, stub) -> this. call(
+controller, stub, request.build(), 
MasterService.Interface::refreshHFiles,
+RefreshHFilesResponse::getProcId))
+  .call();
+// return CompletableFuture.completedFuture(null);
+  }
+
+  @Override
+  public CompletableFuture refreshHFiles(final String namespace) {
+// Request builder
+RefreshHFilesRequest.Builder request = RefreshHFilesRequest.newBuilder();
+request.setNamespace(namespace);
+// Set nonce
+// Master Caller
+return this. newMasterCaller()
+  .action((controller, stub) -> this. call(
+controller, stub, request.build(), 
MasterService.Interface::refreshHFiles,
+RefreshHFilesResponse::getProcId))
+  .call();
+// return CompletableFuture.completedFuture(null);

Review Comment:
   similar as above.



-- 
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-29328: Implement new HBase command: refresh_hfiles [hbase]

2025-07-30 Thread via GitHub


wchevreuil commented on code in PR #7149:
URL: https://github.com/apache/hbase/pull/7149#discussion_r2242452877


##
hbase-client/src/main/java/org/apache/hadoop/hbase/client/RawAsyncHBaseAdmin.java:
##
@@ -4557,4 +4559,49 @@ List> adminCall(controller, stub, 
request.build(),
   resp -> resp.getCachedFilesList()))
   .serverName(serverName).call();
   }
+
+  @Override
+  public CompletableFuture refreshHFiles(final TableName tableName) {
+// Request builder
+RefreshHFilesRequest.Builder request = RefreshHFilesRequest.newBuilder();
+request.setTableName(ProtobufUtil.toProtoTableName(tableName));
+// Set nonce
+// Master Caller
+return this. newMasterCaller()
+  .action((controller, stub) -> this. call(
+controller, stub, request.build(), 
MasterService.Interface::refreshHFiles,
+RefreshHFilesResponse::getProcId))
+  .call();
+// return CompletableFuture.completedFuture(null);

Review Comment:
   please remove obvious comments as well as commented code.



-- 
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-29328: Implement new HBase command: refresh_hfiles [hbase]

2025-07-30 Thread via GitHub


wchevreuil commented on code in PR #7149:
URL: https://github.com/apache/hbase/pull/7149#discussion_r2242438131


##
hbase-server/src/main/java/org/apache/hadoop/hbase/master/HMaster.java:
##
@@ -4543,4 +4544,61 @@ protected String getDescription() {
 }
   });
   }
+
+  public Long refreshHfiles(final TableName tableName, final long nonceGroup, 
final long nonce)
+throws IOException {
+// TODO Check if table exists otherwise send exception.
+// return 121L;
+return MasterProcedureUtil
+  .submitProcedure(new MasterProcedureUtil.NonceProcedureRunnable(this, 
nonceGroup, nonce) {
+@Override
+protected void run() throws IOException {
+  LOG.info("Submitting RefreshHfilesTableProcedure for a table");
+  submitProcedure(
+new 
RefreshHFilesTableProcedure(procedureExecutor.getEnvironment(), tableName));
+}
+
+@Override
+protected String getDescription() {
+  return "RefreshHfilesProcedure for a table";
+}
+  });
+  }
+
+  public Long refreshHfiles(final String namespace, final long nonceGroup, 
final long nonce)
+throws IOException {
+// TODO Check if namespace exists otherwise send exception.
+// return 122L;
+return MasterProcedureUtil
+  .submitProcedure(new MasterProcedureUtil.NonceProcedureRunnable(this, 
nonceGroup, nonce) {
+@Override
+protected void run() throws IOException {
+  LOG.info("Submitting RefreshHfilesProcedure for namespace");

Review Comment:
   nit: can we mention the namespace in this message?



-- 
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-29328: Implement new HBase command: refresh_hfiles [hbase]

2025-07-30 Thread via GitHub


wchevreuil commented on code in PR #7149:
URL: https://github.com/apache/hbase/pull/7149#discussion_r2242434750


##
hbase-server/src/main/java/org/apache/hadoop/hbase/master/HMaster.java:
##
@@ -4543,4 +4544,61 @@ protected String getDescription() {
 }
   });
   }
+
+  public Long refreshHfiles(final TableName tableName, final long nonceGroup, 
final long nonce)
+throws IOException {
+// TODO Check if table exists otherwise send exception.
+// return 121L;
+return MasterProcedureUtil
+  .submitProcedure(new MasterProcedureUtil.NonceProcedureRunnable(this, 
nonceGroup, nonce) {
+@Override
+protected void run() throws IOException {
+  LOG.info("Submitting RefreshHfilesTableProcedure for a table");

Review Comment:
   nit: can we mention the specific table in this log message?



-- 
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-29328: Implement new HBase command: refresh_hfiles [hbase]

2025-07-30 Thread via GitHub


wchevreuil commented on code in PR #7149:
URL: https://github.com/apache/hbase/pull/7149#discussion_r2242432127


##
hbase-server/src/main/java/org/apache/hadoop/hbase/master/HMaster.java:
##
@@ -4543,4 +4544,61 @@ protected String getDescription() {
 }
   });
   }
+
+  public Long refreshHfiles(final TableName tableName, final long nonceGroup, 
final long nonce)
+throws IOException {
+// TODO Check if table exists otherwise send exception.
+// return 121L;

Review Comment:
   please address TODO or remove it if this isn't needed anymore.



-- 
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-29328: Implement new HBase command: refresh_hfiles [hbase]

2025-07-29 Thread via GitHub


Kota-SH commented on code in PR #7149:
URL: https://github.com/apache/hbase/pull/7149#discussion_r2240583588


##
hbase-protocol-shaded/src/main/protobuf/server/master/Master.proto:
##
@@ -796,6 +796,17 @@ message ModifyColumnStoreFileTrackerResponse {
   optional uint64 proc_id = 1;
 }
 
+message RefreshHFilesRequest {
+  optional TableName table_Name = 1;

Review Comment:
   ```suggestion
 optional TableName table_name = 1;
   ```



##
hbase-client/src/main/java/org/apache/hadoop/hbase/client/Admin.java:
##
@@ -2651,4 +2651,24 @@ List getLogEntries(Set 
serverNames, String logType, Server
* Get the list of cached files
*/
   List getCachedFilesList(ServerName serverName) throws IOException;
+
+  /**
+   * Refresh HFiles for the table
+   * @param tableName table to refresh HFiles for

Review Comment:
   Add @ Return to the java doc



-- 
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-29328: Implement new HBase command: refresh_hfiles [hbase]

2025-07-28 Thread via GitHub


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

   :broken_heart: **-1 overall**
   
   
   
   
   
   
   | Vote | Subsystem | Runtime |  Logfile | Comment |
   |::|--:|:|::|:---:|
   | +0 :ok: |  reexec  |   0m 36s |  |  Docker mode activated.  |
   | -0 :warning: |  yetus  |   0m  4s |  |  Unprocessed flag(s): 
--brief-report-file --spotbugs-strict-precheck --author-ignore-list 
--blanks-eol-ignore-file --blanks-tabs-ignore-file --quick-hadoopcheck  |
    _ Prechecks _ |
    _ HBASE-29081 Compile Tests _ |
   | +0 :ok: |  mvndep  |   0m 45s |  |  Maven dependency ordering for branch  |
   | +1 :green_heart: |  mvninstall  |   3m 36s |  |  HBASE-29081 passed  |
   | +1 :green_heart: |  compile  |   2m 36s |  |  HBASE-29081 passed  |
   | +1 :green_heart: |  javadoc  |   1m 34s |  |  HBASE-29081 passed  |
   | +1 :green_heart: |  shadedjars  |   5m 56s |  |  branch has no errors when 
building our shaded downstream artifacts.  |
    _ Patch Compile Tests _ |
   | +0 :ok: |  mvndep  |   0m 13s |  |  Maven dependency ordering for patch  |
   | +1 :green_heart: |  mvninstall  |   3m  5s |  |  the patch passed  |
   | +1 :green_heart: |  compile  |   2m 33s |  |  the patch passed  |
   | +1 :green_heart: |  javac  |   2m 33s |  |  the patch passed  |
   | +1 :green_heart: |  javadoc  |   1m 35s |  |  the patch passed  |
   | +1 :green_heart: |  shadedjars  |   5m 54s |  |  patch has no errors when 
building our shaded downstream artifacts.  |
    _ Other Tests _ |
   | +1 :green_heart: |  unit  |   0m 33s |  |  hbase-protocol-shaded in the 
patch passed.  |
   | +1 :green_heart: |  unit  |   1m 33s |  |  hbase-client in the patch 
passed.  |
   | -1 :x: |  unit  | 235m 52s | 
[/patch-unit-hbase-server.txt](https://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-7149/5/artifact/yetus-jdk17-hadoop3-check/output/patch-unit-hbase-server.txt)
 |  hbase-server in the patch failed.  |
   | +1 :green_heart: |  unit  |   7m 36s |  |  hbase-thrift in the patch 
passed.  |
   | +1 :green_heart: |  unit  |   8m 11s |  |  hbase-shell in the patch 
passed.  |
   |  |   | 287m 38s |  |  |
   
   
   | Subsystem | Report/Notes |
   |--:|:-|
   | Docker | ClientAPI=1.43 ServerAPI=1.43 base: 
https://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-7149/5/artifact/yetus-jdk17-hadoop3-check/output/Dockerfile
 |
   | GITHUB PR | https://github.com/apache/hbase/pull/7149 |
   | JIRA Issue | HBASE-29328 |
   | Optional Tests | javac javadoc unit compile shadedjars |
   | uname | Linux dcad7b34027f 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-29081 / d465aa376ff56d9be733410af27f17e031fa5eb8 |
   | Default Java | Eclipse Adoptium-17.0.11+9 |
   |  Test Results | 
https://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-7149/5/testReport/
 |
   | Max. process+thread count | 5208 (vs. ulimit of 3) |
   | modules | C: hbase-protocol-shaded hbase-client hbase-server hbase-thrift 
hbase-shell U: . |
   | Console output | 
https://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-7149/5/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-29328: Implement new HBase command: refresh_hfiles [hbase]

2025-07-28 Thread via GitHub


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

   :broken_heart: **-1 overall**
   
   
   
   
   
   
   | Vote | Subsystem | Runtime |  Logfile | Comment |
   |::|--:|:|::|:---:|
   | +0 :ok: |  reexec  |   0m 32s |  |  Docker mode activated.  |
    _ Prechecks _ |
   | +1 :green_heart: |  dupname  |   0m  1s |  |  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: |  buf  |   0m  0s |  |  buf was not available.  |
   | +0 :ok: |  buf  |   0m  0s |  |  buf 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-29081 Compile Tests _ |
   | +0 :ok: |  mvndep  |   0m 11s |  |  Maven dependency ordering for branch  |
   | +1 :green_heart: |  mvninstall  |   3m 18s |  |  HBASE-29081 passed  |
   | +1 :green_heart: |  compile  |   5m 39s |  |  HBASE-29081 passed  |
   | +1 :green_heart: |  checkstyle  |   1m 40s |  |  HBASE-29081 passed  |
   | +1 :green_heart: |  spotbugs  |   5m 58s |  |  HBASE-29081 passed  |
   | +1 :green_heart: |  spotless  |   0m 47s |  |  branch has no errors when 
running spotless:check.  |
    _ Patch Compile Tests _ |
   | +0 :ok: |  mvndep  |   0m 12s |  |  Maven dependency ordering for patch  |
   | +1 :green_heart: |  mvninstall  |   3m  4s |  |  the patch passed  |
   | +1 :green_heart: |  compile  |   5m 37s |  |  the patch passed  |
   | +1 :green_heart: |  cc  |   5m 37s |  |  the patch passed  |
   | +1 :green_heart: |  javac  |   5m 37s |  |  the patch passed  |
   | +1 :green_heart: |  blanks  |   0m  0s |  |  The patch has no blanks 
issues.  |
   | -0 :warning: |  checkstyle  |   0m 14s | 
[/buildtool-patch-checkstyle-hbase-server.txt](https://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-7149/5/artifact/yetus-general-check/output/buildtool-patch-checkstyle-hbase-server.txt)
 |  The patch fails to run checkstyle in hbase-server  |
   | -0 :warning: |  rubocop  |   0m 19s | 
[/results-rubocop.txt](https://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-7149/5/artifact/yetus-general-check/output/results-rubocop.txt)
 |  The patch generated 6 new + 444 unchanged - 0 fixed = 450 total (was 444)  |
   | +1 :green_heart: |  spotbugs  |   6m 30s |  |  the patch passed  |
   | +1 :green_heart: |  hadoopcheck  |  12m 14s |  |  Patch does not cause any 
errors with Hadoop 3.3.6 3.4.0.  |
   | +1 :green_heart: |  hbaseprotoc  |   2m 11s |  |  the patch passed  |
   | -1 :x: |  spotless  |   0m 21s |  |  patch has 21 errors when running 
spotless:check, run spotless:apply to fix.  |
    _ Other Tests _ |
   | +1 :green_heart: |  asflicense  |   0m 43s |  |  The patch does not 
generate ASF License warnings.  |
   |  |   |  59m  7s |  |  |
   
   
   | Subsystem | Report/Notes |
   |--:|:-|
   | Docker | ClientAPI=1.43 ServerAPI=1.43 base: 
https://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-7149/5/artifact/yetus-general-check/output/Dockerfile
 |
   | GITHUB PR | https://github.com/apache/hbase/pull/7149 |
   | JIRA Issue | HBASE-29328 |
   | Optional Tests | dupname asflicense javac spotbugs checkstyle codespell 
detsecrets compile hadoopcheck hbaseanti spotless cc buflint bufcompat 
hbaseprotoc rubocop |
   | uname | Linux c3628d24e4ed 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-29081 / d465aa376ff56d9be733410af27f17e031fa5eb8 |
   | Default Java | Eclipse Adoptium-17.0.11+9 |
   | spotless | 
https://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-7149/5/artifact/yetus-general-check/output/patch-spotless.txt
 |
   | Max. process+thread count | 86 (vs. ulimit of 3) |
   | modules | C: hbase-protocol-shaded hbase-client hbase-server hbase-thrift 
hbase-shell U: . |
   | Console output | 
https://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-7149/5/console 
|
   | versions | git=2.34.1 maven=3.9.8 spotbugs=4.7.3 rubocop=1.37.1 |
   | 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-29328: Implement new HBase command: refresh_hfiles [hbase]

2025-07-28 Thread via GitHub


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

   :broken_heart: **-1 overall**
   
   
   
   
   
   
   | Vote | Subsystem | Runtime |  Logfile | Comment |
   |::|--:|:|::|:---:|
   | +0 :ok: |  reexec  |   0m 39s |  |  Docker mode activated.  |
   | -0 :warning: |  yetus  |   0m  4s |  |  Unprocessed flag(s): 
--brief-report-file --spotbugs-strict-precheck --author-ignore-list 
--blanks-eol-ignore-file --blanks-tabs-ignore-file --quick-hadoopcheck  |
    _ Prechecks _ |
    _ HBASE-29081 Compile Tests _ |
   | +0 :ok: |  mvndep  |   0m 12s |  |  Maven dependency ordering for branch  |
   | +1 :green_heart: |  mvninstall  |   4m 16s |  |  HBASE-29081 passed  |
   | +1 :green_heart: |  compile  |   3m  9s |  |  HBASE-29081 passed  |
   | +1 :green_heart: |  javadoc  |   2m  1s |  |  HBASE-29081 passed  |
   | +1 :green_heart: |  shadedjars  |   7m 13s |  |  branch has no errors when 
building our shaded downstream artifacts.  |
    _ Patch Compile Tests _ |
   | +0 :ok: |  mvndep  |   0m 15s |  |  Maven dependency ordering for patch  |
   | +1 :green_heart: |  mvninstall  |   3m 57s |  |  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  |   2m 15s |  |  the patch passed  |
   | +1 :green_heart: |  shadedjars  |   7m 13s |  |  patch has no errors when 
building our shaded downstream artifacts.  |
    _ Other Tests _ |
   | +1 :green_heart: |  unit  |   0m 41s |  |  hbase-protocol-shaded in the 
patch passed.  |
   | +1 :green_heart: |  unit  |   2m  8s |  |  hbase-client in the patch 
passed.  |
   | -1 :x: |  unit  | 260m 22s | 
[/patch-unit-hbase-server.txt](https://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-7149/4/artifact/yetus-jdk17-hadoop3-check/output/patch-unit-hbase-server.txt)
 |  hbase-server in the patch failed.  |
   | +1 :green_heart: |  unit  |   6m 54s |  |  hbase-thrift in the patch 
passed.  |
   | +1 :green_heart: |  unit  |   7m 51s |  |  hbase-shell in the patch 
passed.  |
   |  |   | 318m  8s |  |  |
   
   
   | Subsystem | Report/Notes |
   |--:|:-|
   | Docker | ClientAPI=1.43 ServerAPI=1.43 base: 
https://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-7149/4/artifact/yetus-jdk17-hadoop3-check/output/Dockerfile
 |
   | GITHUB PR | https://github.com/apache/hbase/pull/7149 |
   | JIRA Issue | HBASE-29328 |
   | Optional Tests | javac javadoc unit compile shadedjars |
   | uname | Linux 3a19ac5a52fb 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-29081 / d465aa376ff56d9be733410af27f17e031fa5eb8 |
   | Default Java | Eclipse Adoptium-17.0.11+9 |
   |  Test Results | 
https://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-7149/4/testReport/
 |
   | Max. process+thread count | 4741 (vs. ulimit of 3) |
   | modules | C: hbase-protocol-shaded hbase-client hbase-server hbase-thrift 
hbase-shell U: . |
   | Console output | 
https://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-7149/4/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-29328: Implement new HBase command: refresh_hfiles [hbase]

2025-07-28 Thread via GitHub


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

   :broken_heart: **-1 overall**
   
   
   
   
   
   
   | Vote | Subsystem | Runtime |  Logfile | Comment |
   |::|--:|:|::|:---:|
   | +0 :ok: |  reexec  |   0m 51s |  |  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: |  buf  |   0m  0s |  |  buf was not available.  |
   | +0 :ok: |  buf  |   0m  0s |  |  buf 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-29081 Compile Tests _ |
   | +0 :ok: |  mvndep  |   0m 16s |  |  Maven dependency ordering for branch  |
   | +1 :green_heart: |  mvninstall  |   4m 17s |  |  HBASE-29081 passed  |
   | +1 :green_heart: |  compile  |   7m 35s |  |  HBASE-29081 passed  |
   | +1 :green_heart: |  checkstyle  |   2m 27s |  |  HBASE-29081 passed  |
   | +1 :green_heart: |  spotbugs  |   7m 58s |  |  HBASE-29081 passed  |
   | +1 :green_heart: |  spotless  |   1m  4s |  |  branch has no errors when 
running spotless:check.  |
    _ Patch Compile Tests _ |
   | +0 :ok: |  mvndep  |   0m 12s |  |  Maven dependency ordering for patch  |
   | +1 :green_heart: |  mvninstall  |   4m 19s |  |  the patch passed  |
   | +1 :green_heart: |  compile  |   7m  9s |  |  the patch passed  |
   | +1 :green_heart: |  cc  |   7m  9s |  |  the patch passed  |
   | +1 :green_heart: |  javac  |   7m  9s |  |  the patch passed  |
   | +1 :green_heart: |  blanks  |   0m  0s |  |  The patch has no blanks 
issues.  |
   | -0 :warning: |  checkstyle  |   0m 18s | 
[/buildtool-patch-checkstyle-hbase-server.txt](https://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-7149/4/artifact/yetus-general-check/output/buildtool-patch-checkstyle-hbase-server.txt)
 |  The patch fails to run checkstyle in hbase-server  |
   | -0 :warning: |  rubocop  |   0m 21s | 
[/results-rubocop.txt](https://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-7149/4/artifact/yetus-general-check/output/results-rubocop.txt)
 |  The patch generated 6 new + 444 unchanged - 0 fixed = 450 total (was 444)  |
   | +1 :green_heart: |  spotbugs  |   8m 47s |  |  the patch passed  |
   | +1 :green_heart: |  hadoopcheck  |  14m 51s |  |  Patch does not cause any 
errors with Hadoop 3.3.6 3.4.0.  |
   | +1 :green_heart: |  hbaseprotoc  |   2m 50s |  |  the patch passed  |
   | -1 :x: |  spotless  |   0m 34s |  |  patch has 22 errors when running 
spotless:check, run spotless:apply to fix.  |
    _ Other Tests _ |
   | +1 :green_heart: |  asflicense  |   1m  4s |  |  The patch does not 
generate ASF License warnings.  |
   |  |   |  76m 38s |  |  |
   
   
   | Subsystem | Report/Notes |
   |--:|:-|
   | Docker | ClientAPI=1.43 ServerAPI=1.43 base: 
https://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-7149/4/artifact/yetus-general-check/output/Dockerfile
 |
   | GITHUB PR | https://github.com/apache/hbase/pull/7149 |
   | JIRA Issue | HBASE-29328 |
   | Optional Tests | dupname asflicense javac spotbugs checkstyle codespell 
detsecrets compile hadoopcheck hbaseanti spotless cc buflint bufcompat 
hbaseprotoc rubocop |
   | uname | Linux 7cc3c780e3b2 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-29081 / d465aa376ff56d9be733410af27f17e031fa5eb8 |
   | Default Java | Eclipse Adoptium-17.0.11+9 |
   | spotless | 
https://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-7149/4/artifact/yetus-general-check/output/patch-spotless.txt
 |
   | Max. process+thread count | 84 (vs. ulimit of 3) |
   | modules | C: hbase-protocol-shaded hbase-client hbase-server hbase-thrift 
hbase-shell U: . |
   | Console output | 
https://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-7149/4/console 
|
   | versions | git=2.34.1 maven=3.9.8 spotbugs=4.7.3 rubocop=1.37.1 |
   | 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-29328: Implement new HBase command: refresh_hfiles [hbase]

2025-07-17 Thread via GitHub


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

   :broken_heart: **-1 overall**
   
   
   
   
   
   
   | Vote | Subsystem | Runtime |  Logfile | Comment |
   |::|--:|:|::|:---:|
   | +0 :ok: |  reexec  |   0m 33s |  |  Docker mode activated.  |
   | -0 :warning: |  yetus  |   0m  4s |  |  Unprocessed flag(s): 
--brief-report-file --spotbugs-strict-precheck --author-ignore-list 
--blanks-eol-ignore-file --blanks-tabs-ignore-file --quick-hadoopcheck  |
    _ Prechecks _ |
    _ HBASE-29081 Compile Tests _ |
   | +0 :ok: |  mvndep  |   0m 10s |  |  Maven dependency ordering for branch  |
   | +1 :green_heart: |  mvninstall  |   3m 16s |  |  HBASE-29081 passed  |
   | +1 :green_heart: |  compile  |   2m 38s |  |  HBASE-29081 passed  |
   | +1 :green_heart: |  javadoc  |   1m 34s |  |  HBASE-29081 passed  |
   | +1 :green_heart: |  shadedjars  |   5m 55s |  |  branch has no errors when 
building our shaded downstream artifacts.  |
    _ Patch Compile Tests _ |
   | +0 :ok: |  mvndep  |   0m 13s |  |  Maven dependency ordering for patch  |
   | +1 :green_heart: |  mvninstall  |   3m  6s |  |  the patch passed  |
   | +1 :green_heart: |  compile  |   2m 33s |  |  the patch passed  |
   | +1 :green_heart: |  javac  |   2m 33s |  |  the patch passed  |
   | +1 :green_heart: |  javadoc  |   1m 33s |  |  the patch passed  |
   | +1 :green_heart: |  shadedjars  |   5m 54s |  |  patch has no errors when 
building our shaded downstream artifacts.  |
    _ Other Tests _ |
   | +1 :green_heart: |  unit  |   0m 33s |  |  hbase-protocol-shaded in the 
patch passed.  |
   | +1 :green_heart: |  unit  |   1m 39s |  |  hbase-client in the patch 
passed.  |
   | -1 :x: |  unit  | 244m 54s | 
[/patch-unit-hbase-server.txt](https://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-7149/3/artifact/yetus-jdk17-hadoop3-check/output/patch-unit-hbase-server.txt)
 |  hbase-server in the patch failed.  |
   | +1 :green_heart: |  unit  |   8m  9s |  |  hbase-thrift in the patch 
passed.  |
   | +1 :green_heart: |  unit  |   8m 13s |  |  hbase-shell in the patch 
passed.  |
   |  |   | 295m 44s |  |  |
   
   
   | Subsystem | Report/Notes |
   |--:|:-|
   | Docker | ClientAPI=1.43 ServerAPI=1.43 base: 
https://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-7149/3/artifact/yetus-jdk17-hadoop3-check/output/Dockerfile
 |
   | GITHUB PR | https://github.com/apache/hbase/pull/7149 |
   | JIRA Issue | HBASE-29328 |
   | Optional Tests | javac javadoc unit compile shadedjars |
   | uname | Linux d09793c53371 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-29081 / d3512694ff64af276aeaa7e0cfcb0e60dbd54a9e |
   | Default Java | Eclipse Adoptium-17.0.11+9 |
   |  Test Results | 
https://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-7149/3/testReport/
 |
   | Max. process+thread count | 5024 (vs. ulimit of 3) |
   | modules | C: hbase-protocol-shaded hbase-client hbase-server hbase-thrift 
hbase-shell U: . |
   | Console output | 
https://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-7149/3/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-29328: Implement new HBase command: refresh_hfiles [hbase]

2025-07-17 Thread via GitHub


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

   :broken_heart: **-1 overall**
   
   
   
   
   
   
   | Vote | Subsystem | Runtime |  Logfile | Comment |
   |::|--:|:|::|:---:|
   | +0 :ok: |  reexec  |   0m 31s |  |  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: |  buf  |   0m  0s |  |  buf was not available.  |
   | +0 :ok: |  buf  |   0m  0s |  |  buf 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-29081 Compile Tests _ |
   | +0 :ok: |  mvndep  |   0m 11s |  |  Maven dependency ordering for branch  |
   | +1 :green_heart: |  mvninstall  |   3m 12s |  |  HBASE-29081 passed  |
   | +1 :green_heart: |  compile  |   5m 35s |  |  HBASE-29081 passed  |
   | +1 :green_heart: |  checkstyle  |   1m 38s |  |  HBASE-29081 passed  |
   | +1 :green_heart: |  spotbugs  |   5m 58s |  |  HBASE-29081 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  5s |  |  the patch passed  |
   | +1 :green_heart: |  compile  |   5m 32s |  |  the patch passed  |
   | +1 :green_heart: |  cc  |   5m 32s |  |  the patch passed  |
   | +1 :green_heart: |  javac  |   5m 32s |  |  the patch passed  |
   | +1 :green_heart: |  blanks  |   0m  0s |  |  The patch has no blanks 
issues.  |
   | -0 :warning: |  checkstyle  |   0m 15s | 
[/results-checkstyle-hbase-client.txt](https://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-7149/3/artifact/yetus-general-check/output/results-checkstyle-hbase-client.txt)
 |  hbase-client: The patch generated 5 new + 3 unchanged - 0 fixed = 8 total 
(was 3)  |
   | -0 :warning: |  checkstyle  |   0m 38s | 
[/results-checkstyle-hbase-server.txt](https://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-7149/3/artifact/yetus-general-check/output/results-checkstyle-hbase-server.txt)
 |  hbase-server: The patch generated 5 new + 11 unchanged - 0 fixed = 16 total 
(was 11)  |
   | -0 :warning: |  rubocop  |   0m 10s | 
[/results-rubocop.txt](https://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-7149/3/artifact/yetus-general-check/output/results-rubocop.txt)
 |  The patch generated 6 new + 444 unchanged - 0 fixed = 450 total (was 444)  |
   | +1 :green_heart: |  spotbugs  |   6m 31s |  |  the patch passed  |
   | +1 :green_heart: |  hadoopcheck  |  12m  7s |  |  Patch does not cause any 
errors with Hadoop 3.3.6 3.4.0.  |
   | +1 :green_heart: |  hbaseprotoc  |   2m 10s |  |  the patch passed  |
   | -1 :x: |  spotless  |   0m 20s |  |  patch has 64 errors when running 
spotless:check, run spotless:apply to fix.  |
    _ Other Tests _ |
   | +1 :green_heart: |  asflicense  |   0m 43s |  |  The patch does not 
generate ASF License warnings.  |
   |  |   |  58m 45s |  |  |
   
   
   | Subsystem | Report/Notes |
   |--:|:-|
   | Docker | ClientAPI=1.43 ServerAPI=1.43 base: 
https://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-7149/3/artifact/yetus-general-check/output/Dockerfile
 |
   | GITHUB PR | https://github.com/apache/hbase/pull/7149 |
   | JIRA Issue | HBASE-29328 |
   | Optional Tests | dupname asflicense javac spotbugs checkstyle codespell 
detsecrets compile hadoopcheck hbaseanti spotless cc buflint bufcompat 
hbaseprotoc rubocop |
   | uname | Linux 560002cf52d1 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-29081 / d3512694ff64af276aeaa7e0cfcb0e60dbd54a9e |
   | Default Java | Eclipse Adoptium-17.0.11+9 |
   | spotless | 
https://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-7149/3/artifact/yetus-general-check/output/patch-spotless.txt
 |
   | Max. process+thread count | 85 (vs. ulimit of 3) |
   | modules | C: hbase-protocol-shaded hbase-client hbase-server hbase-thrift 
hbase-shell U: . |
   | Console output | 
https://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-7149/3/console 
|
   | versions | git=2.34.1 maven=3.9.8 spotbugs=4.7.3 rubocop=1.37.1 |
   | 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 

Re: [PR] HBASE-29328: Implement new HBase command: refresh_hfiles [hbase]

2025-07-17 Thread via GitHub


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

   :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-29081 Compile Tests _ |
   | +0 :ok: |  mvndep  |   0m  9s |  |  Maven dependency ordering for branch  |
   | +1 :green_heart: |  mvninstall  |   3m 12s |  |  HBASE-29081 passed  |
   | +1 :green_heart: |  compile  |   2m 32s |  |  HBASE-29081 passed  |
   | +1 :green_heart: |  javadoc  |   1m 35s |  |  HBASE-29081 passed  |
   | +1 :green_heart: |  shadedjars  |   6m  3s |  |  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  6s |  |  the patch passed  |
   | +1 :green_heart: |  compile  |   2m 32s |  |  the patch passed  |
   | +1 :green_heart: |  javac  |   2m 32s |  |  the patch passed  |
   | +1 :green_heart: |  javadoc  |   1m 31s |  |  the patch passed  |
   | +1 :green_heart: |  shadedjars  |   5m 51s |  |  patch has no errors when 
building our shaded downstream artifacts.  |
    _ Other Tests _ |
   | +1 :green_heart: |  unit  |   0m 33s |  |  hbase-protocol-shaded in the 
patch passed.  |
   | +1 :green_heart: |  unit  |   1m 32s |  |  hbase-client in the patch 
passed.  |
   | -1 :x: |  unit  | 228m 42s | 
[/patch-unit-hbase-server.txt](https://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-7149/2/artifact/yetus-jdk17-hadoop3-check/output/patch-unit-hbase-server.txt)
 |  hbase-server in the patch failed.  |
   | +1 :green_heart: |  unit  |   7m 56s |  |  hbase-thrift in the patch 
passed.  |
   | +1 :green_heart: |  unit  |   8m 13s |  |  hbase-shell in the patch 
passed.  |
   |  |   | 279m 26s |  |  |
   
   
   | Subsystem | Report/Notes |
   |--:|:-|
   | Docker | ClientAPI=1.43 ServerAPI=1.43 base: 
https://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-7149/2/artifact/yetus-jdk17-hadoop3-check/output/Dockerfile
 |
   | GITHUB PR | https://github.com/apache/hbase/pull/7149 |
   | JIRA Issue | HBASE-29328 |
   | Optional Tests | javac javadoc unit compile shadedjars |
   | uname | Linux 302650c82763 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-29081 / 17f51808190775eee0de9f576f3576c517e6a93f |
   | Default Java | Eclipse Adoptium-17.0.11+9 |
   |  Test Results | 
https://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-7149/2/testReport/
 |
   | Max. process+thread count | 5620 (vs. ulimit of 3) |
   | modules | C: hbase-protocol-shaded hbase-client hbase-server hbase-thrift 
hbase-shell U: . |
   | Console output | 
https://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-7149/2/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-29328: Implement new HBase command: refresh_hfiles [hbase]

2025-07-17 Thread via GitHub


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

   :broken_heart: **-1 overall**
   
   
   
   
   
   
   | Vote | Subsystem | Runtime |  Logfile | Comment |
   |::|--:|:|::|:---:|
   | +0 :ok: |  reexec  |   0m 31s |  |  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: |  buf  |   0m  0s |  |  buf was not available.  |
   | +0 :ok: |  buf  |   0m  0s |  |  buf 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-29081 Compile Tests _ |
   | +0 :ok: |  mvndep  |   0m 36s |  |  Maven dependency ordering for branch  |
   | +1 :green_heart: |  mvninstall  |   3m 35s |  |  HBASE-29081 passed  |
   | +1 :green_heart: |  compile  |   5m 36s |  |  HBASE-29081 passed  |
   | +1 :green_heart: |  checkstyle  |   1m 38s |  |  HBASE-29081 passed  |
   | +1 :green_heart: |  spotbugs  |   6m  4s |  |  HBASE-29081 passed  |
   | +1 :green_heart: |  spotless  |   0m 48s |  |  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  5s |  |  the patch passed  |
   | +1 :green_heart: |  compile  |   5m 36s |  |  the patch passed  |
   | +1 :green_heart: |  cc  |   5m 36s |  |  the patch passed  |
   | +1 :green_heart: |  javac  |   5m 36s |  |  the patch passed  |
   | +1 :green_heart: |  blanks  |   0m  0s |  |  The patch has no blanks 
issues.  |
   | -0 :warning: |  checkstyle  |   0m 15s | 
[/results-checkstyle-hbase-client.txt](https://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-7149/2/artifact/yetus-general-check/output/results-checkstyle-hbase-client.txt)
 |  hbase-client: The patch generated 1 new + 3 unchanged - 0 fixed = 4 total 
(was 3)  |
   | -0 :warning: |  checkstyle  |   0m 38s | 
[/results-checkstyle-hbase-server.txt](https://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-7149/2/artifact/yetus-general-check/output/results-checkstyle-hbase-server.txt)
 |  hbase-server: The patch generated 5 new + 11 unchanged - 0 fixed = 16 total 
(was 11)  |
   | -0 :warning: |  rubocop  |   0m  9s | 
[/results-rubocop.txt](https://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-7149/2/artifact/yetus-general-check/output/results-rubocop.txt)
 |  The patch generated 6 new + 444 unchanged - 0 fixed = 450 total (was 444)  |
   | +1 :green_heart: |  spotbugs  |   6m 24s |  |  the patch passed  |
   | +1 :green_heart: |  hadoopcheck  |  12m 22s |  |  Patch does not cause any 
errors with Hadoop 3.3.6 3.4.0.  |
   | +1 :green_heart: |  hbaseprotoc  |   2m 10s |  |  the patch passed  |
   | -1 :x: |  spotless  |   0m 20s |  |  patch has 64 errors when running 
spotless:check, run spotless:apply to fix.  |
    _ Other Tests _ |
   | +1 :green_heart: |  asflicense  |   0m 43s |  |  The patch does not 
generate ASF License warnings.  |
   |  |   |  59m 55s |  |  |
   
   
   | Subsystem | Report/Notes |
   |--:|:-|
   | Docker | ClientAPI=1.43 ServerAPI=1.43 base: 
https://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-7149/2/artifact/yetus-general-check/output/Dockerfile
 |
   | GITHUB PR | https://github.com/apache/hbase/pull/7149 |
   | JIRA Issue | HBASE-29328 |
   | Optional Tests | dupname asflicense javac spotbugs checkstyle codespell 
detsecrets compile hadoopcheck hbaseanti spotless cc buflint bufcompat 
hbaseprotoc rubocop |
   | uname | Linux 0d1e48e74d40 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-29081 / 17f51808190775eee0de9f576f3576c517e6a93f |
   | Default Java | Eclipse Adoptium-17.0.11+9 |
   | spotless | 
https://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-7149/2/artifact/yetus-general-check/output/patch-spotless.txt
 |
   | Max. process+thread count | 85 (vs. ulimit of 3) |
   | modules | C: hbase-protocol-shaded hbase-client hbase-server hbase-thrift 
hbase-shell U: . |
   | Console output | 
https://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-7149/2/console 
|
   | versions | git=2.34.1 maven=3.9.8 spotbugs=4.7.3 rubocop=1.37.1 |
   | 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 

Re: [PR] HBASE-29328: Implement new HBase command: refresh_hfiles [hbase]

2025-07-10 Thread via GitHub


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

   :broken_heart: **-1 overall**
   
   
   
   
   
   
   | Vote | Subsystem | Runtime |  Logfile | Comment |
   |::|--:|:|::|:---:|
   | +0 :ok: |  reexec  |   0m 38s |  |  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-29081 Compile Tests _ |
   | +0 :ok: |  mvndep  |   0m 10s |  |  Maven dependency ordering for branch  |
   | +1 :green_heart: |  mvninstall  |   3m 14s |  |  HBASE-29081 passed  |
   | +1 :green_heart: |  compile  |   2m 35s |  |  HBASE-29081 passed  |
   | +1 :green_heart: |  javadoc  |   1m 36s |  |  HBASE-29081 passed  |
   | +1 :green_heart: |  shadedjars  |   5m 58s |  |  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  |   4m  7s |  |  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  |   1m 54s |  |  the patch passed  |
   | +1 :green_heart: |  shadedjars  |   7m  1s |  |  patch has no errors when 
building our shaded downstream artifacts.  |
    _ Other Tests _ |
   | +1 :green_heart: |  unit  |   0m 43s |  |  hbase-protocol-shaded in the 
patch passed.  |
   | +1 :green_heart: |  unit  |   2m 10s |  |  hbase-client in the patch 
passed.  |
   | -1 :x: |  unit  | 252m  0s | 
[/patch-unit-hbase-server.txt](https://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-7149/1/artifact/yetus-jdk17-hadoop3-check/output/patch-unit-hbase-server.txt)
 |  hbase-server in the patch failed.  |
   | +1 :green_heart: |  unit  |   8m  7s |  |  hbase-thrift in the patch 
passed.  |
   | +1 :green_heart: |  unit  |   8m 25s |  |  hbase-shell in the patch 
passed.  |
   |  |   | 308m 20s |  |  |
   
   
   | Subsystem | Report/Notes |
   |--:|:-|
   | Docker | ClientAPI=1.43 ServerAPI=1.43 base: 
https://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-7149/1/artifact/yetus-jdk17-hadoop3-check/output/Dockerfile
 |
   | GITHUB PR | https://github.com/apache/hbase/pull/7149 |
   | JIRA Issue | HBASE-29328 |
   | Optional Tests | javac javadoc unit compile shadedjars |
   | uname | Linux 44ffa0bd8a7f 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-29081 / baf37a2b7b3c9ca1781c60f8cd7ecaaf1944508a |
   | Default Java | Eclipse Adoptium-17.0.11+9 |
   |  Test Results | 
https://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-7149/1/testReport/
 |
   | Max. process+thread count | 5871 (vs. ulimit of 3) |
   | modules | C: hbase-protocol-shaded hbase-client hbase-server hbase-thrift 
hbase-shell U: . |
   | Console output | 
https://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-7149/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-29328: Implement new HBase command: refresh_hfiles [hbase]

2025-07-10 Thread via GitHub


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

   :broken_heart: **-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: |  buf  |   0m  0s |  |  buf was not available.  |
   | +0 :ok: |  buf  |   0m  0s |  |  buf 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-29081 Compile Tests _ |
   | +0 :ok: |  mvndep  |   0m 10s |  |  Maven dependency ordering for branch  |
   | +1 :green_heart: |  mvninstall  |   3m 15s |  |  HBASE-29081 passed  |
   | +1 :green_heart: |  compile  |   5m 32s |  |  HBASE-29081 passed  |
   | +1 :green_heart: |  checkstyle  |   1m 38s |  |  HBASE-29081 passed  |
   | +1 :green_heart: |  spotbugs  |   5m 57s |  |  HBASE-29081 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  6s |  |  the patch passed  |
   | +1 :green_heart: |  compile  |   5m 28s |  |  the patch passed  |
   | +1 :green_heart: |  cc  |   5m 28s |  |  the patch passed  |
   | +1 :green_heart: |  javac  |   5m 28s |  |  the patch passed  |
   | +1 :green_heart: |  blanks  |   0m  0s |  |  The patch has no blanks 
issues.  |
   | -0 :warning: |  checkstyle  |   0m 17s | 
[/results-checkstyle-hbase-client.txt](https://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-7149/1/artifact/yetus-general-check/output/results-checkstyle-hbase-client.txt)
 |  hbase-client: The patch generated 1 new + 3 unchanged - 0 fixed = 4 total 
(was 3)  |
   | -0 :warning: |  checkstyle  |   0m 37s | 
[/results-checkstyle-hbase-server.txt](https://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-7149/1/artifact/yetus-general-check/output/results-checkstyle-hbase-server.txt)
 |  hbase-server: The patch generated 2 new + 0 unchanged - 0 fixed = 2 total 
(was 0)  |
   | -0 :warning: |  rubocop  |   0m 20s | 
[/results-rubocop.txt](https://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-7149/1/artifact/yetus-general-check/output/results-rubocop.txt)
 |  The patch generated 6 new + 444 unchanged - 0 fixed = 450 total (was 444)  |
   | +1 :green_heart: |  spotbugs  |   8m 28s |  |  the patch passed  |
   | +1 :green_heart: |  hadoopcheck  |  14m 12s |  |  Patch does not cause any 
errors with Hadoop 3.3.6 3.4.0.  |
   | +1 :green_heart: |  hbaseprotoc  |   2m 36s |  |  the patch passed  |
   | -1 :x: |  spotless  |   0m 22s |  |  patch has 64 errors when running 
spotless:check, run spotless:apply to fix.  |
    _ Other Tests _ |
   | +1 :green_heart: |  asflicense  |   0m 48s |  |  The patch does not 
generate ASF License warnings.  |
   |  |   |  64m 16s |  |  |
   
   
   | Subsystem | Report/Notes |
   |--:|:-|
   | Docker | ClientAPI=1.43 ServerAPI=1.43 base: 
https://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-7149/1/artifact/yetus-general-check/output/Dockerfile
 |
   | GITHUB PR | https://github.com/apache/hbase/pull/7149 |
   | JIRA Issue | HBASE-29328 |
   | Optional Tests | dupname asflicense javac spotbugs checkstyle codespell 
detsecrets compile hadoopcheck hbaseanti spotless cc buflint bufcompat 
hbaseprotoc rubocop |
   | uname | Linux 7ace34129eed 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-29081 / baf37a2b7b3c9ca1781c60f8cd7ecaaf1944508a |
   | Default Java | Eclipse Adoptium-17.0.11+9 |
   | spotless | 
https://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-7149/1/artifact/yetus-general-check/output/patch-spotless.txt
 |
   | Max. process+thread count | 86 (vs. ulimit of 3) |
   | modules | C: hbase-protocol-shaded hbase-client hbase-server hbase-thrift 
hbase-shell U: . |
   | Console output | 
https://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-7149/1/console 
|
   | versions | git=2.34.1 maven=3.9.8 spotbugs=4.7.3 rubocop=1.37.1 |
   | 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

[PR] HBASE-29328: Implement new HBase command: refresh_hfiles [hbase]

2025-07-10 Thread via GitHub


sharmaar12 opened a new pull request, #7149:
URL: https://github.com/apache/hbase/pull/7149

   (no comment)


-- 
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]