blob: 5f67b7993a93d17302e65c904434881c267c3adb [file] [log] [blame]
<!DOCTYPE HTML>
<html lang="en">
<head>
<!-- Generated by javadoc (17) -->
<title>RegionSplitCalculator (Apache HBase 4.0.0-alpha-1-SNAPSHOT API)</title>
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<meta name="description" content="declaration: package: org.apache.hadoop.hbase.util, class: RegionSplitCalculator">
<meta name="generator" content="javadoc/ClassWriterImpl">
<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
<link rel="stylesheet" type="text/css" href="../../../../../script-dir/jquery-ui.min.css" title="Style">
<link rel="stylesheet" type="text/css" href="../../../../../jquery-ui.overrides.css" title="Style">
<script type="text/javascript" src="../../../../../script.js"></script>
<script type="text/javascript" src="../../../../../script-dir/jquery-3.6.1.min.js"></script>
<script type="text/javascript" src="../../../../../script-dir/jquery-ui.min.js"></script>
</head>
<body class="class-declaration-page">
<script type="text/javascript">var evenRowColor = "even-row-color";
var oddRowColor = "odd-row-color";
var tableTab = "table-tab";
var activeTableTab = "active-table-tab";
var pathtoroot = "../../../../../";
loadScripts(document, 'script');</script>
<noscript>
<div>JavaScript is disabled on your browser.</div>
</noscript>
<div class="flex-box">
<header role="banner" class="flex-header">
<nav role="navigation">
<!-- ========= START OF TOP NAVBAR ======= -->
<div class="top-nav" id="navbar-top">
<div class="skip-nav"><a href="#skip-navbar-top" title="Skip navigation links">Skip navigation links</a></div>
<ul id="navbar-top-firstrow" class="nav-list" title="Navigation">
<li><a href="../../../../../index.html">Overview</a></li>
<li><a href="package-summary.html">Package</a></li>
<li class="nav-bar-cell1-rev">Class</li>
<li><a href="class-use/RegionSplitCalculator.html">Use</a></li>
<li><a href="package-tree.html">Tree</a></li>
<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
<li><a href="../../../../../index-all.html">Index</a></li>
<li><a href="../../../../../help-doc.html#class">Help</a></li>
</ul>
</div>
<div class="sub-nav">
<div>
<ul class="sub-nav-list">
<li>Summary:&nbsp;</li>
<li>Nested&nbsp;|&nbsp;</li>
<li><a href="#field-summary">Field</a>&nbsp;|&nbsp;</li>
<li><a href="#constructor-summary">Constr</a>&nbsp;|&nbsp;</li>
<li><a href="#method-summary">Method</a></li>
</ul>
<ul class="sub-nav-list">
<li>Detail:&nbsp;</li>
<li><a href="#field-detail">Field</a>&nbsp;|&nbsp;</li>
<li><a href="#constructor-detail">Constr</a>&nbsp;|&nbsp;</li>
<li><a href="#method-detail">Method</a></li>
</ul>
</div>
<div class="nav-list-search"><label for="search-input">SEARCH:</label>
<input type="text" id="search-input" value="search" disabled="disabled">
<input type="reset" id="reset-button" value="reset" disabled="disabled">
</div>
</div>
<!-- ========= END OF TOP NAVBAR ========= -->
<span class="skip-nav" id="skip-navbar-top"></span></nav>
</header>
<div class="flex-content">
<main role="main">
<!-- ======== START OF CLASS DATA ======== -->
<div class="header">
<div class="sub-title"><span class="package-label-in-type">Package</span>&nbsp;<a href="package-summary.html">org.apache.hadoop.hbase.util</a></div>
<h1 title="Class RegionSplitCalculator" class="title">Class RegionSplitCalculator&lt;R extends <a href="KeyRange.html" title="interface in org.apache.hadoop.hbase.util">KeyRange</a>&gt;</h1>
</div>
<div class="inheritance" title="Inheritance Tree"><a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Object.html" title="class or interface in java.lang" class="external-link">java.lang.Object</a>
<div class="inheritance">org.apache.hadoop.hbase.util.RegionSplitCalculator&lt;R&gt;</div>
</div>
<section class="class-description" id="class-description">
<dl class="notes">
<dt>Type Parameters:</dt>
<dd><code>R</code> - </dd>
</dl>
<hr>
<div class="type-signature"><span class="annotations">@Private
</span><span class="modifiers">public class </span><span class="element-name"><a href="../../../../../src-html/org/apache/hadoop/hbase/util/RegionSplitCalculator.html#line-46">RegionSplitCalculator</a>&lt;R extends <a href="KeyRange.html" title="interface in org.apache.hadoop.hbase.util">KeyRange</a>&gt;</span>
<span class="extends-implements">extends <a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Object.html" title="class or interface in java.lang" class="external-link">Object</a></span></div>
<div class="block">This is a generic region split calculator. It requires Ranges that provide start, end, and a
comparator. It works in two phases -- the first adds ranges and rejects backwards ranges. Then
one calls calcRegions to generate the multimap that has a start split key as a key and possibly
multiple Ranges as members. To traverse, one normally would get the split set, and iterate
through the calcRegions. Normal regions would have only one entry, holes would have zero, and any
overlaps would have multiple entries. The interface is a bit cumbersome currently but is exposed
this way so that clients can choose how to iterate through the region splits.</div>
</section>
<section class="summary">
<ul class="summary-list">
<!-- =========== FIELD SUMMARY =========== -->
<li>
<section class="field-summary" id="field-summary">
<h2>Field Summary</h2>
<div class="caption"><span>Fields</span></div>
<div class="summary-table three-column-summary">
<div class="table-header col-first">Modifier and Type</div>
<div class="table-header col-second">Field</div>
<div class="table-header col-last">Description</div>
<div class="col-first even-row-color"><code>static final <a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/util/Comparator.html" title="class or interface in java.util" class="external-link">Comparator</a>&lt;byte[]&gt;</code></div>
<div class="col-second even-row-color"><code><a href="#BYTES_COMPARATOR" class="member-name-link">BYTES_COMPARATOR</a></code></div>
<div class="col-last even-row-color">&nbsp;</div>
<div class="col-first odd-row-color"><code>private static final byte[]</code></div>
<div class="col-second odd-row-color"><code><a href="#ENDKEY" class="member-name-link">ENDKEY</a></code></div>
<div class="col-last odd-row-color">
<div class="block">SPECIAL CASE</div>
</div>
<div class="col-first even-row-color"><code>private static final org.slf4j.Logger</code></div>
<div class="col-second even-row-color"><code><a href="#LOG" class="member-name-link">LOG</a></code></div>
<div class="col-last even-row-color">&nbsp;</div>
<div class="col-first odd-row-color"><code>private final <a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/util/Comparator.html" title="class or interface in java.util" class="external-link">Comparator</a>&lt;<a href="RegionSplitCalculator.html" title="type parameter in RegionSplitCalculator">R</a>&gt;</code></div>
<div class="col-second odd-row-color"><code><a href="#rangeCmp" class="member-name-link">rangeCmp</a></code></div>
<div class="col-last odd-row-color">&nbsp;</div>
<div class="col-first even-row-color"><code>private final <a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/util/TreeSet.html" title="class or interface in java.util" class="external-link">TreeSet</a>&lt;byte[]&gt;</code></div>
<div class="col-second even-row-color"><code><a href="#splits" class="member-name-link">splits</a></code></div>
<div class="col-last even-row-color">
<div class="block">This contains a sorted set of all the possible split points Invariant: once populated this has
0 entries if empty or at most n+1 values where n == number of added ranges.</div>
</div>
<div class="col-first odd-row-color"><code>private final org.apache.hbase.thirdparty.com.google.common.collect.Multimap&lt;byte[],<wbr><a href="RegionSplitCalculator.html" title="type parameter in RegionSplitCalculator">R</a>&gt;</code></div>
<div class="col-second odd-row-color"><code><a href="#starts" class="member-name-link">starts</a></code></div>
<div class="col-last odd-row-color">
<div class="block">This is a map from start key to regions with the same start key.</div>
</div>
</div>
</section>
</li>
<!-- ======== CONSTRUCTOR SUMMARY ======== -->
<li>
<section class="constructor-summary" id="constructor-summary">
<h2>Constructor Summary</h2>
<div class="caption"><span>Constructors</span></div>
<div class="summary-table two-column-summary">
<div class="table-header col-first">Constructor</div>
<div class="table-header col-last">Description</div>
<div class="col-constructor-name even-row-color"><code><a href="#%3Cinit%3E(java.util.Comparator)" class="member-name-link">RegionSplitCalculator</a><wbr>(<a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/util/Comparator.html" title="class or interface in java.util" class="external-link">Comparator</a>&lt;<a href="RegionSplitCalculator.html" title="type parameter in RegionSplitCalculator">R</a>&gt;&nbsp;cmp)</code></div>
<div class="col-last even-row-color">&nbsp;</div>
</div>
</section>
</li>
<!-- ========== METHOD SUMMARY =========== -->
<li>
<section class="method-summary" id="method-summary">
<h2>Method Summary</h2>
<div id="method-summary-table">
<div class="table-tabs" role="tablist" aria-orientation="horizontal"><button id="method-summary-table-tab0" role="tab" aria-selected="true" aria-controls="method-summary-table.tabpanel" tabindex="0" onkeydown="switchTab(event)" onclick="show('method-summary-table', 'method-summary-table', 3)" class="active-table-tab">All Methods</button><button id="method-summary-table-tab1" role="tab" aria-selected="false" aria-controls="method-summary-table.tabpanel" tabindex="-1" onkeydown="switchTab(event)" onclick="show('method-summary-table', 'method-summary-table-tab1', 3)" class="table-tab">Static Methods</button><button id="method-summary-table-tab2" role="tab" aria-selected="false" aria-controls="method-summary-table.tabpanel" tabindex="-1" onkeydown="switchTab(event)" onclick="show('method-summary-table', 'method-summary-table-tab2', 3)" class="table-tab">Instance Methods</button><button id="method-summary-table-tab4" role="tab" aria-selected="false" aria-controls="method-summary-table.tabpanel" tabindex="-1" onkeydown="switchTab(event)" onclick="show('method-summary-table', 'method-summary-table-tab4', 3)" class="table-tab">Concrete Methods</button></div>
<div id="method-summary-table.tabpanel" role="tabpanel">
<div class="summary-table three-column-summary" aria-labelledby="method-summary-table-tab0">
<div class="table-header col-first">Modifier and Type</div>
<div class="table-header col-second">Method</div>
<div class="table-header col-last">Description</div>
<div class="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code>boolean</code></div>
<div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#add(R)" class="member-name-link">add</a><wbr>(<a href="RegionSplitCalculator.html" title="type parameter in RegionSplitCalculator">R</a>&nbsp;range)</code></div>
<div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">
<div class="block">Adds an edge to the split calculator</div>
</div>
<div class="col-first odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code>org.apache.hbase.thirdparty.com.google.common.collect.Multimap&lt;byte[],<wbr><a href="RegionSplitCalculator.html" title="type parameter in RegionSplitCalculator">R</a>&gt;</code></div>
<div class="col-second odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#calcCoverage()" class="member-name-link">calcCoverage</a>()</code></div>
<div class="col-last odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">
<div class="block">Generates a coverage multimap from split key to Regions that start with the split key.</div>
</div>
<div class="col-first even-row-color method-summary-table method-summary-table-tab1 method-summary-table-tab4"><code>static &lt;R extends <a href="KeyRange.html" title="interface in org.apache.hadoop.hbase.util">KeyRange</a>&gt;<br><a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/util/List.html" title="class or interface in java.util" class="external-link">List</a>&lt;R&gt;</code></div>
<div class="col-second even-row-color method-summary-table method-summary-table-tab1 method-summary-table-tab4"><code><a href="#findBigRanges(java.util.Collection,int)" class="member-name-link">findBigRanges</a><wbr>(<a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/util/Collection.html" title="class or interface in java.util" class="external-link">Collection</a>&lt;R&gt;&nbsp;bigOverlap,
int&nbsp;count)</code></div>
<div class="col-last even-row-color method-summary-table method-summary-table-tab1 method-summary-table-tab4">
<div class="block">Find specified number of top ranges in a big overlap group.</div>
</div>
<div class="col-first odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/util/TreeSet.html" title="class or interface in java.util" class="external-link">TreeSet</a>&lt;byte[]&gt;</code></div>
<div class="col-second odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#getSplits()" class="member-name-link">getSplits</a>()</code></div>
<div class="col-last odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">&nbsp;</div>
<div class="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code>org.apache.hbase.thirdparty.com.google.common.collect.Multimap&lt;byte[],<wbr><a href="RegionSplitCalculator.html" title="type parameter in RegionSplitCalculator">R</a>&gt;</code></div>
<div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#getStarts()" class="member-name-link">getStarts</a>()</code></div>
<div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">&nbsp;</div>
<div class="col-first odd-row-color method-summary-table method-summary-table-tab1 method-summary-table-tab4"><code>private static &lt;R extends <a href="KeyRange.html" title="interface in org.apache.hadoop.hbase.util">KeyRange</a>&gt;<br>byte[]</code></div>
<div class="col-second odd-row-color method-summary-table method-summary-table-tab1 method-summary-table-tab4"><code><a href="#specialEndKey(R)" class="member-name-link">specialEndKey</a><wbr>(R&nbsp;range)</code></div>
<div class="col-last odd-row-color method-summary-table method-summary-table-tab1 method-summary-table-tab4">
<div class="block">SPECIAL CASE wrapper for empty end key</div>
</div>
</div>
</div>
</div>
<div class="inherited-list">
<h3 id="methods-inherited-from-class-java.lang.Object">Methods inherited from class&nbsp;java.lang.<a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Object.html" title="class or interface in java.lang" class="external-link">Object</a></h3>
<code><a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Object.html#clone()" title="class or interface in java.lang" class="external-link">clone</a>, <a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Object.html#equals(java.lang.Object)" title="class or interface in java.lang" class="external-link">equals</a>, <a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Object.html#finalize()" title="class or interface in java.lang" class="external-link">finalize</a>, <a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Object.html#getClass()" title="class or interface in java.lang" class="external-link">getClass</a>, <a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Object.html#hashCode()" title="class or interface in java.lang" class="external-link">hashCode</a>, <a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Object.html#notify()" title="class or interface in java.lang" class="external-link">notify</a>, <a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Object.html#notifyAll()" title="class or interface in java.lang" class="external-link">notifyAll</a>, <a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Object.html#toString()" title="class or interface in java.lang" class="external-link">toString</a>, <a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Object.html#wait()" title="class or interface in java.lang" class="external-link">wait</a>, <a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Object.html#wait(long)" title="class or interface in java.lang" class="external-link">wait</a>, <a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Object.html#wait(long,int)" title="class or interface in java.lang" class="external-link">wait</a></code></div>
</section>
</li>
</ul>
</section>
<section class="details">
<ul class="details-list">
<!-- ============ FIELD DETAIL =========== -->
<li>
<section class="field-details" id="field-detail">
<h2>Field Details</h2>
<ul class="member-list">
<li>
<section class="detail" id="LOG">
<h3>LOG</h3>
<div class="member-signature"><span class="modifiers">private static final</span>&nbsp;<span class="return-type">org.slf4j.Logger</span>&nbsp;<span class="element-name"><a href="../../../../../src-html/org/apache/hadoop/hbase/util/RegionSplitCalculator.html#line-48">LOG</a></span></div>
</section>
</li>
<li>
<section class="detail" id="rangeCmp">
<h3>rangeCmp</h3>
<div class="member-signature"><span class="modifiers">private final</span>&nbsp;<span class="return-type"><a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/util/Comparator.html" title="class or interface in java.util" class="external-link">Comparator</a>&lt;<a href="RegionSplitCalculator.html" title="type parameter in RegionSplitCalculator">R</a> extends <a href="KeyRange.html" title="interface in org.apache.hadoop.hbase.util">KeyRange</a>&gt;</span>&nbsp;<span class="element-name"><a href="../../../../../src-html/org/apache/hadoop/hbase/util/RegionSplitCalculator.html#line-50">rangeCmp</a></span></div>
</section>
</li>
<li>
<section class="detail" id="splits">
<h3>splits</h3>
<div class="member-signature"><span class="modifiers">private final</span>&nbsp;<span class="return-type"><a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/util/TreeSet.html" title="class or interface in java.util" class="external-link">TreeSet</a>&lt;byte[]&gt;</span>&nbsp;<span class="element-name"><a href="../../../../../src-html/org/apache/hadoop/hbase/util/RegionSplitCalculator.html#line-55">splits</a></span></div>
<div class="block">This contains a sorted set of all the possible split points Invariant: once populated this has
0 entries if empty or at most n+1 values where n == number of added ranges.</div>
</section>
</li>
<li>
<section class="detail" id="starts">
<h3>starts</h3>
<div class="member-signature"><span class="modifiers">private final</span>&nbsp;<span class="return-type">org.apache.hbase.thirdparty.com.google.common.collect.Multimap&lt;byte[],<wbr><a href="RegionSplitCalculator.html" title="type parameter in RegionSplitCalculator">R</a> extends <a href="KeyRange.html" title="interface in org.apache.hadoop.hbase.util">KeyRange</a>&gt;</span>&nbsp;<span class="element-name"><a href="../../../../../src-html/org/apache/hadoop/hbase/util/RegionSplitCalculator.html#line-61">starts</a></span></div>
<div class="block">This is a map from start key to regions with the same start key. Invariant: This always have n
values in total</div>
</section>
</li>
<li>
<section class="detail" id="ENDKEY">
<h3>ENDKEY</h3>
<div class="member-signature"><span class="modifiers">private static final</span>&nbsp;<span class="return-type">byte[]</span>&nbsp;<span class="element-name"><a href="../../../../../src-html/org/apache/hadoop/hbase/util/RegionSplitCalculator.html#line-66">ENDKEY</a></span></div>
<div class="block">SPECIAL CASE</div>
</section>
</li>
<li>
<section class="detail" id="BYTES_COMPARATOR">
<h3>BYTES_COMPARATOR</h3>
<div class="member-signature"><span class="modifiers">public static final</span>&nbsp;<span class="return-type"><a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/util/Comparator.html" title="class or interface in java.util" class="external-link">Comparator</a>&lt;byte[]&gt;</span>&nbsp;<span class="element-name"><a href="../../../../../src-html/org/apache/hadoop/hbase/util/RegionSplitCalculator.html#line-72">BYTES_COMPARATOR</a></span></div>
</section>
</li>
</ul>
</section>
</li>
<!-- ========= CONSTRUCTOR DETAIL ======== -->
<li>
<section class="constructor-details" id="constructor-detail">
<h2>Constructor Details</h2>
<ul class="member-list">
<li>
<section class="detail" id="&lt;init&gt;(java.util.Comparator)">
<h3>RegionSplitCalculator</h3>
<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="element-name"><a href="../../../../../src-html/org/apache/hadoop/hbase/util/RegionSplitCalculator.html#line-68">RegionSplitCalculator</a></span><wbr><span class="parameters">(<a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/util/Comparator.html" title="class or interface in java.util" class="external-link">Comparator</a>&lt;<a href="RegionSplitCalculator.html" title="type parameter in RegionSplitCalculator">R</a>&gt;&nbsp;cmp)</span></div>
</section>
</li>
</ul>
</section>
</li>
<!-- ============ METHOD DETAIL ========== -->
<li>
<section class="method-details" id="method-detail">
<h2>Method Details</h2>
<ul class="member-list">
<li>
<section class="detail" id="specialEndKey(R)">
<h3 id="specialEndKey(org.apache.hadoop.hbase.util.KeyRange)">specialEndKey</h3>
<div class="member-signature"><span class="modifiers">private static</span>&nbsp;<span class="type-parameters">&lt;R extends <a href="KeyRange.html" title="interface in org.apache.hadoop.hbase.util">KeyRange</a>&gt;</span>&nbsp;<span class="return-type">byte[]</span>&nbsp;<span class="element-name"><a href="../../../../../src-html/org/apache/hadoop/hbase/util/RegionSplitCalculator.html#line-86">specialEndKey</a></span><wbr><span class="parameters">(R&nbsp;range)</span></div>
<div class="block">SPECIAL CASE wrapper for empty end key</div>
<dl class="notes">
<dt>Returns:</dt>
<dd>ENDKEY if end key is empty, else normal endkey.</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="add(R)">
<h3 id="add(org.apache.hadoop.hbase.util.KeyRange)">add</h3>
<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type">boolean</span>&nbsp;<span class="element-name"><a href="../../../../../src-html/org/apache/hadoop/hbase/util/RegionSplitCalculator.html#line-98">add</a></span><wbr><span class="parameters">(<a href="RegionSplitCalculator.html" title="type parameter in RegionSplitCalculator">R</a>&nbsp;range)</span></div>
<div class="block">Adds an edge to the split calculator</div>
<dl class="notes">
<dt>Returns:</dt>
<dd>true if is included, false if backwards/invalid</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="calcCoverage()">
<h3>calcCoverage</h3>
<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type">org.apache.hbase.thirdparty.com.google.common.collect.Multimap&lt;byte[],<wbr><a href="RegionSplitCalculator.html" title="type parameter in RegionSplitCalculator">R</a>&gt;</span>&nbsp;<span class="element-name"><a href="../../../../../src-html/org/apache/hadoop/hbase/util/RegionSplitCalculator.html#line-120">calcCoverage</a></span>()</div>
<div class="block">Generates a coverage multimap from split key to Regions that start with the split key.</div>
<dl class="notes">
<dt>Returns:</dt>
<dd>coverage multimap</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="getSplits()">
<h3>getSplits</h3>
<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type"><a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/util/TreeSet.html" title="class or interface in java.util" class="external-link">TreeSet</a>&lt;byte[]&gt;</span>&nbsp;<span class="element-name"><a href="../../../../../src-html/org/apache/hadoop/hbase/util/RegionSplitCalculator.html#line-139">getSplits</a></span>()</div>
</section>
</li>
<li>
<section class="detail" id="getStarts()">
<h3>getStarts</h3>
<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type">org.apache.hbase.thirdparty.com.google.common.collect.Multimap&lt;byte[],<wbr><a href="RegionSplitCalculator.html" title="type parameter in RegionSplitCalculator">R</a>&gt;</span>&nbsp;<span class="element-name"><a href="../../../../../src-html/org/apache/hadoop/hbase/util/RegionSplitCalculator.html#line-143">getStarts</a></span>()</div>
</section>
</li>
<li>
<section class="detail" id="findBigRanges(java.util.Collection,int)">
<h3>findBigRanges</h3>
<div class="member-signature"><span class="modifiers">public static</span>&nbsp;<span class="type-parameters">&lt;R extends <a href="KeyRange.html" title="interface in org.apache.hadoop.hbase.util">KeyRange</a>&gt;</span>&nbsp;<span class="return-type"><a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/util/List.html" title="class or interface in java.util" class="external-link">List</a>&lt;R&gt;</span>&nbsp;<span class="element-name"><a href="../../../../../src-html/org/apache/hadoop/hbase/util/RegionSplitCalculator.html#line-156">findBigRanges</a></span><wbr><span class="parameters">(<a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/util/Collection.html" title="class or interface in java.util" class="external-link">Collection</a>&lt;R&gt;&nbsp;bigOverlap,
int&nbsp;count)</span></div>
<div class="block">Find specified number of top ranges in a big overlap group. It could return less if there are
not that many top ranges. Once these top ranges are excluded, the big overlap group will be
broken into ranges with no overlapping, or smaller overlapped groups, and most likely some
holes.</div>
<dl class="notes">
<dt>Parameters:</dt>
<dd><code>bigOverlap</code> - a list of ranges that overlap with each other</dd>
<dd><code>count</code> - the max number of ranges to find</dd>
<dt>Returns:</dt>
<dd>a list of ranges that overlap with most others</dd>
</dl>
</section>
</li>
</ul>
</section>
</li>
</ul>
</section>
<!-- ========= END OF CLASS DATA ========= -->
</main>
<footer role="contentinfo">
<hr>
<p class="legal-copy"><small>Copyright &#169; 2007&#x2013;2020 <a href="https://www.apache.org/">The Apache Software Foundation</a>. All rights reserved.</small></p>
</footer>
</div>
</div>
</body>
</html>