HBASE-20487 Sorting table regions by region name does not work on web UI
Signed-off-by: tedyu <yuzhihong@gmail.com>
This commit is contained in:
parent
e9a278adc6
commit
650340abb5
|
@ -24,10 +24,11 @@
|
||||||
import="java.util.Collection"
|
import="java.util.Collection"
|
||||||
import="java.util.Collections"
|
import="java.util.Collections"
|
||||||
import="java.util.Comparator"
|
import="java.util.Comparator"
|
||||||
|
import="java.util.HashMap"
|
||||||
import="java.util.LinkedHashMap"
|
import="java.util.LinkedHashMap"
|
||||||
import="java.util.List"
|
import="java.util.List"
|
||||||
import="java.util.Map"
|
import="java.util.Map"
|
||||||
import="java.util.HashMap"
|
import="java.util.Objects"
|
||||||
import="java.util.TreeMap"
|
import="java.util.TreeMap"
|
||||||
import="org.apache.commons.lang3.StringEscapeUtils"
|
import="org.apache.commons.lang3.StringEscapeUtils"
|
||||||
import="org.apache.hadoop.conf.Configuration"
|
import="org.apache.hadoop.conf.Configuration"
|
||||||
|
@ -445,7 +446,7 @@ if ( fqtn != null ) {
|
||||||
<h2>Table Regions</h2>
|
<h2>Table Regions</h2>
|
||||||
Sort As
|
Sort As
|
||||||
<select id="sel" style="margin-right: 10px">
|
<select id="sel" style="margin-right: 10px">
|
||||||
<option value="regionName">RegionName</option>
|
<option value="regionname">RegionName</option>
|
||||||
<option value="readrequest">ReadRequest</option>
|
<option value="readrequest">ReadRequest</option>
|
||||||
<option value="writerequest">WriteRequest</option>
|
<option value="writerequest">WriteRequest</option>
|
||||||
<option value="size">StorefileSize</option>
|
<option value="size">StorefileSize</option>
|
||||||
|
@ -482,93 +483,87 @@ ShowDetailName&Start/End Key<input type="checkbox" id="showWhole" style="margin-
|
||||||
|
|
||||||
<%
|
<%
|
||||||
List<Map.Entry<RegionInfo, RegionMetrics>> entryList = new ArrayList<>(regionsToLoad.entrySet());
|
List<Map.Entry<RegionInfo, RegionMetrics>> entryList = new ArrayList<>(regionsToLoad.entrySet());
|
||||||
if(sortKey != null) {
|
if (Objects.equals(sortKey, "regionname")) {
|
||||||
if (sortKey.equals("readrequest")) {
|
Collections.sort(entryList, (entry1, entry2) -> {
|
||||||
Collections.sort(entryList, (entry1, entry2) -> {
|
if (entry1 == null || entry1.getValue() == null) {
|
||||||
if (entry1 == null || entry1.getValue() == null) {
|
return -1;
|
||||||
return -1;
|
} else if (entry2 == null || entry2.getValue() == null) {
|
||||||
} else if (entry2 == null || entry2.getValue() == null) {
|
return 1;
|
||||||
return 1;
|
}
|
||||||
}
|
RegionInfo regionInfo1 = entry1.getKey();
|
||||||
int result = Long.compare(entry1.getValue().getReadRequestCount(),
|
RegionInfo regionInfo2 = entry2.getKey();
|
||||||
entry2.getValue().getReadRequestCount());
|
String name1 = showWhole ? Bytes.toStringBinary(regionInfo1.getRegionName())
|
||||||
if (reverseOrder) {
|
: regionInfo1.getEncodedName();
|
||||||
result = -1 * result;
|
String name2 = showWhole ? Bytes.toStringBinary(regionInfo2.getRegionName())
|
||||||
}
|
: regionInfo2.getEncodedName();
|
||||||
return result;
|
return name1.compareTo(name2);
|
||||||
});
|
});
|
||||||
} else if (sortKey.equals("writerequest")) {
|
} else if (Objects.equals(sortKey, "readrequest")) {
|
||||||
Collections.sort(entryList, (entry1, entry2) -> {
|
Collections.sort(entryList, (entry1, entry2) -> {
|
||||||
if (entry1 == null || entry1.getValue() == null) {
|
if (entry1 == null || entry1.getValue() == null) {
|
||||||
return -1;
|
return -1;
|
||||||
} else if (entry2 == null || entry2.getValue() == null) {
|
} else if (entry2 == null || entry2.getValue() == null) {
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
int result = Long.compare(entry1.getValue().getWriteRequestCount(),
|
return Long.compare(entry1.getValue().getReadRequestCount(),
|
||||||
entry2.getValue().getWriteRequestCount());
|
entry2.getValue().getReadRequestCount());
|
||||||
if (reverseOrder) {
|
});
|
||||||
result = -1 * result;
|
} else if (Objects.equals(sortKey, "writerequest")) {
|
||||||
}
|
Collections.sort(entryList, (entry1, entry2) -> {
|
||||||
return result;
|
if (entry1 == null || entry1.getValue() == null) {
|
||||||
});
|
return -1;
|
||||||
} else if (sortKey.equals("size")) {
|
} else if (entry2 == null || entry2.getValue() == null) {
|
||||||
Collections.sort(entryList, (entry1, entry2) -> {
|
return 1;
|
||||||
if (entry1 == null || entry1.getValue() == null) {
|
}
|
||||||
return -1;
|
return Long.compare(entry1.getValue().getWriteRequestCount(),
|
||||||
} else if (entry2 == null || entry2.getValue() == null) {
|
entry2.getValue().getWriteRequestCount());
|
||||||
return 1;
|
});
|
||||||
}
|
} else if (Objects.equals(sortKey, "size")) {
|
||||||
int result = Double.compare(entry1.getValue().getStoreFileSize().get(),
|
Collections.sort(entryList, (entry1, entry2) -> {
|
||||||
entry2.getValue().getStoreFileSize().get());
|
if (entry1 == null || entry1.getValue() == null) {
|
||||||
if (reverseOrder) {
|
return -1;
|
||||||
result = -1 * result;
|
} else if (entry2 == null || entry2.getValue() == null) {
|
||||||
}
|
return 1;
|
||||||
return result;
|
}
|
||||||
});
|
return Double.compare(entry1.getValue().getStoreFileSize().get(),
|
||||||
} else if (sortKey.equals("filecount")) {
|
entry2.getValue().getStoreFileSize().get());
|
||||||
Collections.sort(entryList, (entry1, entry2) -> {
|
});
|
||||||
if (entry1 == null || entry1.getValue() == null) {
|
} else if (Objects.equals(sortKey, "filecount")) {
|
||||||
return -1;
|
Collections.sort(entryList, (entry1, entry2) -> {
|
||||||
} else if (entry2 == null || entry2.getValue() == null) {
|
if (entry1 == null || entry1.getValue() == null) {
|
||||||
return 1;
|
return -1;
|
||||||
}
|
} else if (entry2 == null || entry2.getValue() == null) {
|
||||||
int result = Integer.compare(entry1.getValue().getStoreCount(),
|
return 1;
|
||||||
entry2.getValue().getStoreCount());
|
}
|
||||||
if (reverseOrder) {
|
return Integer.compare(entry1.getValue().getStoreCount(),
|
||||||
result = -1 * result;
|
entry2.getValue().getStoreCount());
|
||||||
}
|
});
|
||||||
return result;
|
} else if (Objects.equals(sortKey, "memstore")) {
|
||||||
});
|
Collections.sort(entryList, (entry1, entry2) -> {
|
||||||
} else if (sortKey.equals("memstore")) {
|
if (entry1 == null || entry1.getValue() == null) {
|
||||||
Collections.sort(entryList, (entry1, entry2) -> {
|
return -1;
|
||||||
if (entry1 == null || entry1.getValue() == null) {
|
} else if (entry2 == null || entry2.getValue() == null) {
|
||||||
return -1;
|
return 1;
|
||||||
} else if (entry2 == null || entry2.getValue() == null) {
|
}
|
||||||
return 1;
|
return Double.compare(entry1.getValue().getMemStoreSize().get(),
|
||||||
}
|
entry2.getValue().getMemStoreSize().get());
|
||||||
int result = Double.compare(entry1.getValue().getMemStoreSize().get(),
|
});
|
||||||
entry2.getValue().getMemStoreSize().get());
|
} else if (Objects.equals(sortKey, "locality")) {
|
||||||
if (reverseOrder) {
|
Collections.sort(entryList, (entry1, entry2) -> {
|
||||||
result = -1 * result;
|
if (entry1 == null || entry1.getValue() == null) {
|
||||||
}
|
return -1;
|
||||||
return result;
|
} else if (entry2 == null || entry2.getValue() == null) {
|
||||||
});
|
return 1;
|
||||||
} else if (sortKey.equals("locality")) {
|
}
|
||||||
Collections.sort(entryList, (entry1, entry2) -> {
|
return Double.compare(entry1.getValue().getDataLocality(),
|
||||||
if (entry1 == null || entry1.getValue() == null) {
|
entry2.getValue().getDataLocality());
|
||||||
return -1;
|
});
|
||||||
} else if (entry2 == null || entry2.getValue() == null) {
|
|
||||||
return 1;
|
|
||||||
}
|
|
||||||
int result = Double.compare(entry1.getValue().getDataLocality(),
|
|
||||||
entry2.getValue().getDataLocality());
|
|
||||||
if (reverseOrder) {
|
|
||||||
result = -1 * result;
|
|
||||||
}
|
|
||||||
return result;
|
|
||||||
});
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (reverseOrder) {
|
||||||
|
Collections.reverse(entryList);
|
||||||
|
}
|
||||||
|
|
||||||
numRegions = regions.size();
|
numRegions = regions.size();
|
||||||
int numRegionsRendered = 0;
|
int numRegionsRendered = 0;
|
||||||
// render all regions
|
// render all regions
|
||||||
|
@ -838,7 +833,7 @@ if(showWhole=='true')document.getElementById("showWhole").checked=true;
|
||||||
|
|
||||||
function reloadAsSort(){
|
function reloadAsSort(){
|
||||||
var url="?name="+'<%= URLEncoder.encode(fqtn) %>';
|
var url="?name="+'<%= URLEncoder.encode(fqtn) %>';
|
||||||
if(document.getElementById("sel").selectedIndex>0){
|
if(document.getElementById("sel").selectedIndex>=0){
|
||||||
url=url+"&sort="+document.getElementById("sel").value;
|
url=url+"&sort="+document.getElementById("sel").value;
|
||||||
}
|
}
|
||||||
if(document.getElementById("ascending").checked){
|
if(document.getElementById("ascending").checked){
|
||||||
|
|
Loading…
Reference in New Issue