This is an automated email from the ASF dual-hosted git repository.

zhangduo pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/hbase.git


The following commit(s) were added to refs/heads/master by this push:
     new eb6b2745c55 HBASE-27309 Add major compact table or region operation on 
master web table page (#4793)
eb6b2745c55 is described below

commit eb6b2745c550905e92dcfee34e558a0901944da5
Author: SiCheng-Zheng <[email protected]>
AuthorDate: Tue Oct 4 23:10:25 2022 +0800

    HBASE-27309 Add major compact table or region operation on master web table 
page (#4793)
    
    Co-authored-by: zhengsicheng <[email protected]>
    Signed-off-by: Duo Zhang <[email protected]>
---
 .../main/resources/hbase-webapps/master/table.jsp  | 33 +++++++++++++++++++++-
 1 file changed, 32 insertions(+), 1 deletion(-)

diff --git a/hbase-server/src/main/resources/hbase-webapps/master/table.jsp 
b/hbase-server/src/main/resources/hbase-webapps/master/table.jsp
index 2c4497ccefe..296e0e77f73 100644
--- a/hbase-server/src/main/resources/hbase-webapps/master/table.jsp
+++ b/hbase-server/src/main/resources/hbase-webapps/master/table.jsp
@@ -233,7 +233,7 @@
 <%  return;
   } %>
 
-<% // table split/compact/merge actions
+<% // table split/major compact/compact/merge actions
   if ( !readOnly && action != null ) { %>
     <div class="container-fluid content">
       <div class="row inner_header">
@@ -249,6 +249,20 @@
         admin.split(TableName.valueOf(fqtn));
       }
 %>    Split request accepted. <%
+    } else if (action.equals("major compact")) {
+      if (key != null && key.length() > 0) {
+        List<RegionInfo> regions = 
admin.getRegions(TableName.valueOf(fqtn)).get();
+        byte[] row = Bytes.toBytes(key);
+
+        for (RegionInfo region : regions) {
+          if (region.containsRow(row)) {
+            admin.majorCompactRegion(region.getRegionName());
+          }
+        }
+      } else {
+        admin.majorCompact(TableName.valueOf(fqtn));
+      }
+%>    major Compact request accepted. <%
     } else if (action.equals("compact")) {
       if (key != null && key.length() > 0) {
         List<RegionInfo> regions = 
admin.getRegions(TableName.valueOf(fqtn)).get();
@@ -1152,6 +1166,23 @@ Actions:
 <p>
 <center>
 <table class="table" style="border: 0;" width="95%" >
+<tr>
+  <form method="get">
+  <input type="hidden" name="action" value="major compact" />
+  <input type="hidden" name="name" value="<%= escaped_fqtn %>" />
+  <td class="centered">
+    <input style="font-size: 12pt; width: 10em" type="submit" value="Major 
Compact" class="btn" />
+  </td>
+  <td style="text-align: center;">
+    <input type="text" name="key" size="40" placeholder="Row Key (optional)" />
+  </td>
+  <td>
+    This action will force a major compaction of all regions of the table, or,
+    if a key is supplied, only the region major containing the
+    given key.
+  </td>
+  </form>
+</tr>
 <tr>
   <form method="get">
   <input type="hidden" name="action" value="compact" />

Reply via email to