blob: bdd4d5da3432cb6a8687a45efa7893434fc6b207 [file] [log] [blame]
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<!-- NewPage -->
<html lang="en">
<head>
<!-- Generated by javadoc -->
<title>RestrictionTracker.HasProgress (Apache Beam 2.38.0-SNAPSHOT)</title>
<link rel="stylesheet" type="text/css" href="../../../../../../stylesheet.css" title="Style">
<script type="text/javascript" src="../../../../../../script.js"></script>
</head>
<body>
<script type="text/javascript"><!--
try {
if (location.href.indexOf('is-external=true') == -1) {
parent.document.title="RestrictionTracker.HasProgress (Apache Beam 2.38.0-SNAPSHOT)";
}
}
catch(err) {
}
//-->
var methods = {"i0":6};
var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],4:["t3","Abstract Methods"]};
var altColor = "altColor";
var rowColor = "rowColor";
var tableTab = "tableTab";
var activeTableTab = "activeTableTab";
</script>
<noscript>
<div>JavaScript is disabled on your browser.</div>
</noscript>
<!-- ========= START OF TOP NAVBAR ======= -->
<div class="topNav"><a name="navbar.top">
<!-- -->
</a>
<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
<a name="navbar.top.firstrow">
<!-- -->
</a>
<ul class="navList" title="Navigation">
<li><a href="../../../../../../overview-summary.html">Overview</a></li>
<li><a href="package-summary.html">Package</a></li>
<li class="navBarCell1Rev">Class</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">Help</a></li>
</ul>
</div>
<div class="subNav">
<ul class="navList">
<li><a href="../../../../../../org/apache/beam/sdk/transforms/splittabledofn/RestrictionTracker.html" title="class in org.apache.beam.sdk.transforms.splittabledofn"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
<li><a href="../../../../../../org/apache/beam/sdk/transforms/splittabledofn/RestrictionTracker.IsBounded.html" title="enum in org.apache.beam.sdk.transforms.splittabledofn"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
</ul>
<ul class="navList">
<li><a href="../../../../../../index.html?org/apache/beam/sdk/transforms/splittabledofn/RestrictionTracker.HasProgress.html" target="_top">Frames</a></li>
<li><a href="RestrictionTracker.HasProgress.html" target="_top">No&nbsp;Frames</a></li>
</ul>
<ul class="navList" id="allclasses_navbar_top">
<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
</ul>
<div>
<script type="text/javascript"><!--
allClassesLink = document.getElementById("allclasses_navbar_top");
if(window==top) {
allClassesLink.style.display = "block";
}
else {
allClassesLink.style.display = "none";
}
//-->
</script>
</div>
<div>
<ul class="subNavList">
<li>Summary:&nbsp;</li>
<li>Nested&nbsp;|&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li>Constr&nbsp;|&nbsp;</li>
<li><a href="#method.summary">Method</a></li>
</ul>
<ul class="subNavList">
<li>Detail:&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li>Constr&nbsp;|&nbsp;</li>
<li><a href="#method.detail">Method</a></li>
</ul>
</div>
<a name="skip.navbar.top">
<!-- -->
</a></div>
<!-- ========= END OF TOP NAVBAR ========= -->
<!-- ======== START OF CLASS DATA ======== -->
<div class="header">
<div class="subTitle">org.apache.beam.sdk.transforms.splittabledofn</div>
<h2 title="Interface RestrictionTracker.HasProgress" class="title">Interface RestrictionTracker.HasProgress</h2>
</div>
<div class="contentContainer">
<div class="description">
<ul class="blockList">
<li class="blockList">
<dl>
<dt>All Known Implementing Classes:</dt>
<dd><a href="../../../../../../org/apache/beam/sdk/transforms/splittabledofn/ByteKeyRangeTracker.html" title="class in org.apache.beam.sdk.transforms.splittabledofn">ByteKeyRangeTracker</a>, <a href="../../../../../../org/apache/beam/sdk/io/gcp/spanner/changestreams/restriction/DetectNewPartitionsRangeTracker.html" title="class in org.apache.beam.sdk.io.gcp.spanner.changestreams.restriction">DetectNewPartitionsRangeTracker</a>, <a href="../../../../../../org/apache/beam/sdk/transforms/splittabledofn/GrowableOffsetRangeTracker.html" title="class in org.apache.beam.sdk.transforms.splittabledofn">GrowableOffsetRangeTracker</a>, <a href="../../../../../../org/apache/beam/sdk/transforms/splittabledofn/OffsetRangeTracker.html" title="class in org.apache.beam.sdk.transforms.splittabledofn">OffsetRangeTracker</a>, <a href="../../../../../../org/apache/beam/sdk/io/parquet/ParquetIO.ReadFiles.BlockTracker.html" title="class in org.apache.beam.sdk.io.parquet">ParquetIO.ReadFiles.BlockTracker</a>, <a href="../../../../../../org/apache/beam/sdk/transforms/PeriodicSequence.OutputRangeTracker.html" title="class in org.apache.beam.sdk.transforms">PeriodicSequence.OutputRangeTracker</a>, <a href="../../../../../../org/apache/beam/sdk/io/gcp/spanner/changestreams/restriction/ReadChangeStreamPartitionRangeTracker.html" title="class in org.apache.beam.sdk.io.gcp.spanner.changestreams.restriction">ReadChangeStreamPartitionRangeTracker</a>, <a href="../../../../../../org/apache/beam/sdk/io/gcp/spanner/changestreams/restriction/TimestampRangeTracker.html" title="class in org.apache.beam.sdk.io.gcp.spanner.changestreams.restriction">TimestampRangeTracker</a>, <a href="../../../../../../org/apache/beam/sdk/io/gcp/pubsublite/internal/TrackerWithProgress.html" title="class in org.apache.beam.sdk.io.gcp.pubsublite.internal">TrackerWithProgress</a></dd>
</dl>
<dl>
<dt>Enclosing class:</dt>
<dd><a href="../../../../../../org/apache/beam/sdk/transforms/splittabledofn/RestrictionTracker.html" title="class in org.apache.beam.sdk.transforms.splittabledofn">RestrictionTracker</a>&lt;<a href="../../../../../../org/apache/beam/sdk/transforms/splittabledofn/RestrictionTracker.html" title="type parameter in RestrictionTracker">RestrictionT</a>,<a href="../../../../../../org/apache/beam/sdk/transforms/splittabledofn/RestrictionTracker.html" title="type parameter in RestrictionTracker">PositionT</a>&gt;</dd>
</dl>
<hr>
<br>
<pre>public static interface <span class="typeNameLabel">RestrictionTracker.HasProgress</span></pre>
<div class="block">All <a href="../../../../../../org/apache/beam/sdk/transforms/splittabledofn/RestrictionTracker.html" title="class in org.apache.beam.sdk.transforms.splittabledofn"><code>RestrictionTracker</code></a>s SHOULD implement this interface to improve auto-scaling and
splitting performance.</div>
</li>
</ul>
</div>
<div class="summary">
<ul class="blockList">
<li class="blockList">
<!-- ========== METHOD SUMMARY =========== -->
<ul class="blockList">
<li class="blockList"><a name="method.summary">
<!-- -->
</a>
<h3>Method Summary</h3>
<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t3" class="tableTab"><span><a href="javascript:show(4);">Abstract Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
<tr>
<th class="colFirst" scope="col">Modifier and Type</th>
<th class="colLast" scope="col">Method and Description</th>
</tr>
<tr id="i0" class="altColor">
<td class="colFirst"><code><a href="../../../../../../org/apache/beam/sdk/transforms/splittabledofn/RestrictionTracker.Progress.html" title="class in org.apache.beam.sdk.transforms.splittabledofn">RestrictionTracker.Progress</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/beam/sdk/transforms/splittabledofn/RestrictionTracker.HasProgress.html#getProgress--">getProgress</a></span>()</code>
<div class="block">A representation for the amount of known completed and known remaining work.</div>
</td>
</tr>
</table>
</li>
</ul>
</li>
</ul>
</div>
<div class="details">
<ul class="blockList">
<li class="blockList">
<!-- ============ METHOD DETAIL ========== -->
<ul class="blockList">
<li class="blockList"><a name="method.detail">
<!-- -->
</a>
<h3>Method Detail</h3>
<a name="getProgress--">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>getProgress</h4>
<pre><a href="../../../../../../org/apache/beam/sdk/transforms/splittabledofn/RestrictionTracker.Progress.html" title="class in org.apache.beam.sdk.transforms.splittabledofn">RestrictionTracker.Progress</a>&nbsp;getProgress()</pre>
<div class="block">A representation for the amount of known completed and known remaining work.
<p>It is up to each restriction tracker to convert between their natural representation of
completed and remaining work and the <code>double</code> representation. For example:
<ul>
<li>Block based file source (e.g. Avro): The number of bytes from the beginning of the
restriction to the current block and the number of bytes from the current block to the
end of the restriction.
<li>Pull based queue based source (e.g. Pubsub): The local/global size available in number
of messages or number of <code>message bytes</code> that have processed and the number of
messages or number of <code>message bytes</code> that are outstanding.
<li>Key range based source (e.g. BigQuery, Bigtable, ...): Scale the start key to be one
and end key to be zero and interpolate the position of the next splittable key as a
position. If information about the probability density function or cumulative
distribution function is available, work completed and work remaining interpolation can
be improved. Alternatively, if the number of encoded bytes for the keys and values is
known for the key range, the number of completed and remaining bytes can be used.
</ul>
<p>The work completed and work remaining must be of the same scale whether that be number of
messages or number of bytes and should never represent two distinct unit types.</div>
</li>
</ul>
</li>
</ul>
</li>
</ul>
</div>
</div>
<!-- ========= END OF CLASS DATA ========= -->
<!-- ======= START OF BOTTOM NAVBAR ====== -->
<div class="bottomNav"><a name="navbar.bottom">
<!-- -->
</a>
<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
<a name="navbar.bottom.firstrow">
<!-- -->
</a>
<ul class="navList" title="Navigation">
<li><a href="../../../../../../overview-summary.html">Overview</a></li>
<li><a href="package-summary.html">Package</a></li>
<li class="navBarCell1Rev">Class</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">Help</a></li>
</ul>
</div>
<div class="subNav">
<ul class="navList">
<li><a href="../../../../../../org/apache/beam/sdk/transforms/splittabledofn/RestrictionTracker.html" title="class in org.apache.beam.sdk.transforms.splittabledofn"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
<li><a href="../../../../../../org/apache/beam/sdk/transforms/splittabledofn/RestrictionTracker.IsBounded.html" title="enum in org.apache.beam.sdk.transforms.splittabledofn"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
</ul>
<ul class="navList">
<li><a href="../../../../../../index.html?org/apache/beam/sdk/transforms/splittabledofn/RestrictionTracker.HasProgress.html" target="_top">Frames</a></li>
<li><a href="RestrictionTracker.HasProgress.html" target="_top">No&nbsp;Frames</a></li>
</ul>
<ul class="navList" id="allclasses_navbar_bottom">
<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
</ul>
<div>
<script type="text/javascript"><!--
allClassesLink = document.getElementById("allclasses_navbar_bottom");
if(window==top) {
allClassesLink.style.display = "block";
}
else {
allClassesLink.style.display = "none";
}
//-->
</script>
</div>
<div>
<ul class="subNavList">
<li>Summary:&nbsp;</li>
<li>Nested&nbsp;|&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li>Constr&nbsp;|&nbsp;</li>
<li><a href="#method.summary">Method</a></li>
</ul>
<ul class="subNavList">
<li>Detail:&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li>Constr&nbsp;|&nbsp;</li>
<li><a href="#method.detail">Method</a></li>
</ul>
</div>
<a name="skip.navbar.bottom">
<!-- -->
</a></div>
<!-- ======== END OF BOTTOM NAVBAR ======= -->
</body>
</html>