HBASE-25443 Improve the experience of using the Master webpage by change the loading process of snapshot list to asynchronous (#2811)
Signed-off-by: Yulin Niu <niuyulin@apache.org> Signed-off-by: Ramkrishna S Vasudevan <ramkrishna@apache.org>
This commit is contained in:
parent
b07b400b62
commit
73b0e8a216
|
@ -270,7 +270,6 @@ AssignmentManager assignmentManager = master.getAssignmentManager();
|
||||||
</%if>
|
</%if>
|
||||||
</div>
|
</div>
|
||||||
<div class="tab-pane" id="tab_userSnapshots">
|
<div class="tab-pane" id="tab_userSnapshots">
|
||||||
<& userSnapshots &>
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
@ -660,40 +659,6 @@ AssignmentManager assignmentManager = master.getAssignmentManager();
|
||||||
</%if>
|
</%if>
|
||||||
</%def>
|
</%def>
|
||||||
|
|
||||||
<%def userSnapshots>
|
|
||||||
<%java>
|
|
||||||
List<SnapshotDescription> snapshots = master.isInitialized() ?
|
|
||||||
master.getSnapshotManager().getCompletedSnapshots() : null;
|
|
||||||
</%java>
|
|
||||||
<%if (snapshots != null && snapshots.size() > 0)%>
|
|
||||||
<table class="table table-striped">
|
|
||||||
<tr>
|
|
||||||
<th>Snapshot Name</th>
|
|
||||||
<th>Table</th>
|
|
||||||
<th>Creation Time</th>
|
|
||||||
<th>Owner</th>
|
|
||||||
<th>TTL</th>
|
|
||||||
</tr>
|
|
||||||
<%for SnapshotDescription snapshotDesc : snapshots%>
|
|
||||||
<%java>
|
|
||||||
TableName snapshotTable = TableName.valueOf(snapshotDesc.getTable());
|
|
||||||
</%java>
|
|
||||||
<tr>
|
|
||||||
<td><a href="snapshot.jsp?name=<% snapshotDesc.getName() %>"><% snapshotDesc.getName() %></a> </td>
|
|
||||||
<td><a href="table.jsp?name=<% snapshotTable.getNameAsString() %>"><% snapshotTable.getNameAsString() %></a>
|
|
||||||
</td>
|
|
||||||
<td><% new Date(snapshotDesc.getCreationTime()) %></td>
|
|
||||||
<td><% snapshotDesc.getOwner() %></td>
|
|
||||||
|
|
||||||
<td>
|
|
||||||
<% snapshotDesc.getTtl() == 0 ? "FOREVER": PrettyPrinter.format(String.valueOf(snapshotDesc.getTtl()), PrettyPrinter.Unit.TIME_INTERVAL) %>
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
</%for>
|
|
||||||
<p><% snapshots.size() %> snapshot(s) in set. [<a href="/snapshotsStats.jsp">Snapshot Storefile stats</a>]</p>
|
|
||||||
</table>
|
|
||||||
</%if>
|
|
||||||
</%def>
|
|
||||||
|
|
||||||
|
|
||||||
<%def deadRegionServers>
|
<%def deadRegionServers>
|
||||||
|
|
|
@ -0,0 +1,58 @@
|
||||||
|
<%--
|
||||||
|
/**
|
||||||
|
* 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.
|
||||||
|
*/
|
||||||
|
--%>
|
||||||
|
<%@ page contentType="text/plain;charset=UTF-8"
|
||||||
|
import="java.util.List"
|
||||||
|
import="java.util.Date"
|
||||||
|
import="org.apache.hadoop.hbase.shaded.protobuf.generated.SnapshotProtos.SnapshotDescription"
|
||||||
|
import="org.apache.hadoop.hbase.master.HMaster"
|
||||||
|
import="org.apache.hadoop.hbase.TableName"
|
||||||
|
import="org.apache.hadoop.hbase.util.PrettyPrinter"
|
||||||
|
%>
|
||||||
|
<%
|
||||||
|
HMaster master = (HMaster) getServletContext().getAttribute(HMaster.MASTER);
|
||||||
|
List<SnapshotDescription> snapshots = master.isInitialized() ?
|
||||||
|
master.getSnapshotManager().getCompletedSnapshots() : null;
|
||||||
|
%>
|
||||||
|
<%if (snapshots != null && snapshots.size() > 0) { %>
|
||||||
|
<table class="table table-striped">
|
||||||
|
<tr>
|
||||||
|
<th>Snapshot Name</th>
|
||||||
|
<th>Table</th>
|
||||||
|
<th>Creation Time</th>
|
||||||
|
<th>Owner</th>
|
||||||
|
<th>TTL</th>
|
||||||
|
</tr>
|
||||||
|
<% for (SnapshotDescription snapshotDesc : snapshots){ %>
|
||||||
|
<% TableName snapshotTable = TableName.valueOf(snapshotDesc.getTable()); %>
|
||||||
|
<tr>
|
||||||
|
<td><a href="snapshot.jsp?name=<%= snapshotDesc.getName() %>"><%= snapshotDesc.getName() %></a> </td>
|
||||||
|
<td><a href="table.jsp?name=<%= snapshotTable.getNameAsString() %>"><%= snapshotTable.getNameAsString() %></a>
|
||||||
|
</td>
|
||||||
|
<td><%= new Date(snapshotDesc.getCreationTime()) %></td>
|
||||||
|
<td><%= snapshotDesc.getOwner() %></td>
|
||||||
|
|
||||||
|
<td>
|
||||||
|
<%= snapshotDesc.getTtl() == 0 ? "FOREVER": PrettyPrinter.format(String.valueOf(snapshotDesc.getTtl()), PrettyPrinter.Unit.TIME_INTERVAL) %>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<% } %>
|
||||||
|
<p><%= snapshots.size() %> snapshot(s) in set. [<a href="/snapshotsStats.jsp">Snapshot Storefile stats</a>]</p>
|
||||||
|
</table>
|
||||||
|
<% } %>
|
|
@ -27,6 +27,10 @@ $(document).ready(
|
||||||
$(this).tab('show');
|
$(this).tab('show');
|
||||||
});
|
});
|
||||||
|
|
||||||
|
$.ajax({url:"/userSnapshots.jsp", success:function(result){
|
||||||
|
$("#tab_userSnapshots").html(result);
|
||||||
|
}});
|
||||||
|
|
||||||
if (location.hash !== '') {
|
if (location.hash !== '') {
|
||||||
var tabItem = $('a[href="' + location.hash.replace("#", "#"+prefix) + '"]');
|
var tabItem = $('a[href="' + location.hash.replace("#", "#"+prefix) + '"]');
|
||||||
tabItem.tab('show');
|
tabItem.tab('show');
|
||||||
|
|
Loading…
Reference in New Issue