blob: 69b7d6fff627e30ac929b5f24534b1ed547b7b5f [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>ReadChangeStreamPartitionProgressTracker (Apache Beam 2.47.0)</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="ReadChangeStreamPartitionProgressTracker (Apache Beam 2.47.0)";
}
}
catch(err) {
}
//-->
var methods = {"i0":10,"i1":10,"i2":10,"i3":10,"i4":10,"i5":10};
var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete 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>Prev&nbsp;Class</li>
<li><a href="../../../../../../../../../org/apache/beam/sdk/io/gcp/bigtable/changestreams/restriction/StreamProgress.html" title="class in org.apache.beam.sdk.io.gcp.bigtable.changestreams.restriction"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
</ul>
<ul class="navList">
<li><a href="../../../../../../../../../index.html?org/apache/beam/sdk/io/gcp/bigtable/changestreams/restriction/ReadChangeStreamPartitionProgressTracker.html" target="_top">Frames</a></li>
<li><a href="ReadChangeStreamPartitionProgressTracker.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><a href="#nested.classes.inherited.from.class.org.apache.beam.sdk.transforms.splittabledofn.RestrictionTracker">Nested</a>&nbsp;|&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li><a href="#constructor.summary">Constr</a>&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><a href="#constructor.detail">Constr</a>&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.io.gcp.bigtable.changestreams.restriction</div>
<h2 title="Class ReadChangeStreamPartitionProgressTracker" class="title">Class ReadChangeStreamPartitionProgressTracker</h2>
</div>
<div class="contentContainer">
<ul class="inheritance">
<li>java.lang.Object</li>
<li>
<ul class="inheritance">
<li><a href="../../../../../../../../../org/apache/beam/sdk/transforms/splittabledofn/RestrictionTracker.html" title="class in org.apache.beam.sdk.transforms.splittabledofn">org.apache.beam.sdk.transforms.splittabledofn.RestrictionTracker</a>&lt;<a href="../../../../../../../../../org/apache/beam/sdk/io/gcp/bigtable/changestreams/restriction/StreamProgress.html" title="class in org.apache.beam.sdk.io.gcp.bigtable.changestreams.restriction">StreamProgress</a>,<a href="../../../../../../../../../org/apache/beam/sdk/io/gcp/bigtable/changestreams/restriction/StreamProgress.html" title="class in org.apache.beam.sdk.io.gcp.bigtable.changestreams.restriction">StreamProgress</a>&gt;</li>
<li>
<ul class="inheritance">
<li>org.apache.beam.sdk.io.gcp.bigtable.changestreams.restriction.ReadChangeStreamPartitionProgressTracker</li>
</ul>
</li>
</ul>
</li>
</ul>
<div class="description">
<ul class="blockList">
<li class="blockList">
<hr>
<br>
<pre><a href="../../../../../../../../../org/apache/beam/sdk/annotations/Internal.html" title="annotation in org.apache.beam.sdk.annotations">@Internal</a>
public class <span class="typeNameLabel">ReadChangeStreamPartitionProgressTracker</span>
extends <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/io/gcp/bigtable/changestreams/restriction/StreamProgress.html" title="class in org.apache.beam.sdk.io.gcp.bigtable.changestreams.restriction">StreamProgress</a>,<a href="../../../../../../../../../org/apache/beam/sdk/io/gcp/bigtable/changestreams/restriction/StreamProgress.html" title="class in org.apache.beam.sdk.io.gcp.bigtable.changestreams.restriction">StreamProgress</a>&gt;</pre>
<div class="block">RestrictionTracker used by <a href="../../../../../../../../../org/apache/beam/sdk/io/gcp/bigtable/changestreams/dofn/ReadChangeStreamPartitionDoFn.html" title="class in org.apache.beam.sdk.io.gcp.bigtable.changestreams.dofn"><code>ReadChangeStreamPartitionDoFn</code></a> to keep
track of the progress of the stream and to split the restriction for runner initiated
checkpoints.
<p>StreamProgress usually is a continuation token which represents a position in time of the
stream of a specific partition. The token is used to resume streaming a partition.
<p>On ChangeStreamMutation or Heartbeat response, the tracker will try to claim the continuation
token from the response. The tracker stores that continuation token (wrapped in a StreamProgress)
so that if the DoFn checkpoints or restarts, the token can be used to resume the stream.
<p>The tracker will fail to claim a token if runner has initiated a checkpoint (by calling <code>
trySplit(0)</code>). This signals to the DoFn to stop.
<p>When runner initiates a checkpoint, the tracker returns null for the primary split and the
residual split includes the entire token. The next time the DoFn try to claim a new
StreamProgress, it will fail, and stop. The residual will be scheduled on a new DoFn to resume
the work from the previous StreamProgress</div>
</li>
</ul>
</div>
<div class="summary">
<ul class="blockList">
<li class="blockList">
<!-- ======== NESTED CLASS SUMMARY ======== -->
<ul class="blockList">
<li class="blockList"><a name="nested.class.summary">
<!-- -->
</a>
<h3>Nested Class Summary</h3>
<ul class="blockList">
<li class="blockList"><a name="nested.classes.inherited.from.class.org.apache.beam.sdk.transforms.splittabledofn.RestrictionTracker">
<!-- -->
</a>
<h3>Nested classes/interfaces inherited from class&nbsp;org.apache.beam.sdk.transforms.splittabledofn.<a href="../../../../../../../../../org/apache/beam/sdk/transforms/splittabledofn/RestrictionTracker.html" title="class in org.apache.beam.sdk.transforms.splittabledofn">RestrictionTracker</a></h3>
<code><a href="../../../../../../../../../org/apache/beam/sdk/transforms/splittabledofn/RestrictionTracker.HasProgress.html" title="interface in org.apache.beam.sdk.transforms.splittabledofn">RestrictionTracker.HasProgress</a>, <a href="../../../../../../../../../org/apache/beam/sdk/transforms/splittabledofn/RestrictionTracker.IsBounded.html" title="enum in org.apache.beam.sdk.transforms.splittabledofn">RestrictionTracker.IsBounded</a>, <a href="../../../../../../../../../org/apache/beam/sdk/transforms/splittabledofn/RestrictionTracker.Progress.html" title="class in org.apache.beam.sdk.transforms.splittabledofn">RestrictionTracker.Progress</a>, <a href="../../../../../../../../../org/apache/beam/sdk/transforms/splittabledofn/RestrictionTracker.TruncateResult.html" title="class in org.apache.beam.sdk.transforms.splittabledofn">RestrictionTracker.TruncateResult</a>&lt;<a href="../../../../../../../../../org/apache/beam/sdk/transforms/splittabledofn/RestrictionTracker.TruncateResult.html" title="type parameter in RestrictionTracker.TruncateResult">RestrictionT</a>&gt;</code></li>
</ul>
</li>
</ul>
<!-- ======== CONSTRUCTOR SUMMARY ======== -->
<ul class="blockList">
<li class="blockList"><a name="constructor.summary">
<!-- -->
</a>
<h3>Constructor Summary</h3>
<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation">
<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
<tr>
<th class="colOne" scope="col">Constructor and Description</th>
</tr>
<tr class="altColor">
<td class="colOne"><code><span class="memberNameLink"><a href="../../../../../../../../../org/apache/beam/sdk/io/gcp/bigtable/changestreams/restriction/ReadChangeStreamPartitionProgressTracker.html#ReadChangeStreamPartitionProgressTracker-org.apache.beam.sdk.io.gcp.bigtable.changestreams.restriction.StreamProgress-">ReadChangeStreamPartitionProgressTracker</a></span>(<a href="../../../../../../../../../org/apache/beam/sdk/io/gcp/bigtable/changestreams/restriction/StreamProgress.html" title="class in org.apache.beam.sdk.io.gcp.bigtable.changestreams.restriction">StreamProgress</a>&nbsp;streamProgress)</code>
<div class="block">Constructs a restriction tracker with the streamProgress.</div>
</td>
</tr>
</table>
</li>
</ul>
<!-- ========== 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="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete 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>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../../../../org/apache/beam/sdk/io/gcp/bigtable/changestreams/restriction/ReadChangeStreamPartitionProgressTracker.html#checkDone--">checkDone</a></span>()</code>
<div class="block">This is to signal to the runner that this restriction has completed.</div>
</td>
</tr>
<tr id="i1" class="rowColor">
<td class="colFirst"><code><a href="../../../../../../../../../org/apache/beam/sdk/io/gcp/bigtable/changestreams/restriction/StreamProgress.html" title="class in org.apache.beam.sdk.io.gcp.bigtable.changestreams.restriction">StreamProgress</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../../../../org/apache/beam/sdk/io/gcp/bigtable/changestreams/restriction/ReadChangeStreamPartitionProgressTracker.html#currentRestriction--">currentRestriction</a></span>()</code>
<div class="block">Returns the streamProgress that was successfully claimed.</div>
</td>
</tr>
<tr id="i2" class="altColor">
<td class="colFirst"><code><a href="../../../../../../../../../org/apache/beam/sdk/transforms/splittabledofn/RestrictionTracker.IsBounded.html" title="enum in org.apache.beam.sdk.transforms.splittabledofn">RestrictionTracker.IsBounded</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../../../../org/apache/beam/sdk/io/gcp/bigtable/changestreams/restriction/ReadChangeStreamPartitionProgressTracker.html#isBounded--">isBounded</a></span>()</code>
<div class="block">This restriction tracker is for unbounded streams.</div>
</td>
</tr>
<tr id="i3" class="rowColor">
<td class="colFirst"><code>java.lang.String</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../../../../org/apache/beam/sdk/io/gcp/bigtable/changestreams/restriction/ReadChangeStreamPartitionProgressTracker.html#toString--">toString</a></span>()</code>&nbsp;</td>
</tr>
<tr id="i4" class="altColor">
<td class="colFirst"><code>boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../../../../org/apache/beam/sdk/io/gcp/bigtable/changestreams/restriction/ReadChangeStreamPartitionProgressTracker.html#tryClaim-org.apache.beam.sdk.io.gcp.bigtable.changestreams.restriction.StreamProgress-">tryClaim</a></span>(<a href="../../../../../../../../../org/apache/beam/sdk/io/gcp/bigtable/changestreams/restriction/StreamProgress.html" title="class in org.apache.beam.sdk.io.gcp.bigtable.changestreams.restriction">StreamProgress</a>&nbsp;streamProgress)</code>
<div class="block">Claims a new StreamProgress to be processed.</div>
</td>
</tr>
<tr id="i5" class="rowColor">
<td class="colFirst"><code><a href="https://static.javadoc.io/org.checkerframework/checker-qual/3.27.0/org/checkerframework/checker/nullness/qual/Nullable.html?is-external=true" title="class or interface in org.checkerframework.checker.nullness.qual">@Nullable</a> <a href="../../../../../../../../../org/apache/beam/sdk/transforms/splittabledofn/SplitResult.html" title="class in org.apache.beam.sdk.transforms.splittabledofn">SplitResult</a>&lt;<a href="../../../../../../../../../org/apache/beam/sdk/io/gcp/bigtable/changestreams/restriction/StreamProgress.html" title="class in org.apache.beam.sdk.io.gcp.bigtable.changestreams.restriction">StreamProgress</a>&gt;</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../../../../org/apache/beam/sdk/io/gcp/bigtable/changestreams/restriction/ReadChangeStreamPartitionProgressTracker.html#trySplit-double-">trySplit</a></span>(double&nbsp;fractionOfRemainder)</code>
<div class="block">Splits the work that's left.</div>
</td>
</tr>
</table>
<ul class="blockList">
<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">
<!-- -->
</a>
<h3>Methods inherited from class&nbsp;java.lang.Object</h3>
<code>clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait</code></li>
</ul>
</li>
</ul>
</li>
</ul>
</div>
<div class="details">
<ul class="blockList">
<li class="blockList">
<!-- ========= CONSTRUCTOR DETAIL ======== -->
<ul class="blockList">
<li class="blockList"><a name="constructor.detail">
<!-- -->
</a>
<h3>Constructor Detail</h3>
<a name="ReadChangeStreamPartitionProgressTracker-org.apache.beam.sdk.io.gcp.bigtable.changestreams.restriction.StreamProgress-">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>ReadChangeStreamPartitionProgressTracker</h4>
<pre>public&nbsp;ReadChangeStreamPartitionProgressTracker(<a href="../../../../../../../../../org/apache/beam/sdk/io/gcp/bigtable/changestreams/restriction/StreamProgress.html" title="class in org.apache.beam.sdk.io.gcp.bigtable.changestreams.restriction">StreamProgress</a>&nbsp;streamProgress)</pre>
<div class="block">Constructs a restriction tracker with the streamProgress.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>streamProgress</code> - represents a position in time of the stream.</dd>
</dl>
</li>
</ul>
</li>
</ul>
<!-- ============ METHOD DETAIL ========== -->
<ul class="blockList">
<li class="blockList"><a name="method.detail">
<!-- -->
</a>
<h3>Method Detail</h3>
<a name="isBounded--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>isBounded</h4>
<pre>public&nbsp;<a href="../../../../../../../../../org/apache/beam/sdk/transforms/splittabledofn/RestrictionTracker.IsBounded.html" title="enum in org.apache.beam.sdk.transforms.splittabledofn">RestrictionTracker.IsBounded</a>&nbsp;isBounded()</pre>
<div class="block">This restriction tracker is for unbounded streams.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../../../../../../../../../org/apache/beam/sdk/transforms/splittabledofn/RestrictionTracker.html#isBounded--">isBounded</a></code>&nbsp;in class&nbsp;<code><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/io/gcp/bigtable/changestreams/restriction/StreamProgress.html" title="class in org.apache.beam.sdk.io.gcp.bigtable.changestreams.restriction">StreamProgress</a>,<a href="../../../../../../../../../org/apache/beam/sdk/io/gcp/bigtable/changestreams/restriction/StreamProgress.html" title="class in org.apache.beam.sdk.io.gcp.bigtable.changestreams.restriction">StreamProgress</a>&gt;</code></dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd><code>org.apache.beam.sdk.transforms.splittabledofn.RestrictionTracker.IsBounded.UNBOUNDED</code></dd>
</dl>
</li>
</ul>
<a name="checkDone--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>checkDone</h4>
<pre>public&nbsp;void&nbsp;checkDone()
throws java.lang.IllegalStateException</pre>
<div class="block">This is to signal to the runner that this restriction has completed. Throw an exception if
there is more work to be done, and it should not stop. A restriction tracker stops after a
runner initiated checkpoint or the streamProgress contains a closeStream response and not a
token.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../../../../../../../../../org/apache/beam/sdk/transforms/splittabledofn/RestrictionTracker.html#checkDone--">checkDone</a></code>&nbsp;in class&nbsp;<code><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/io/gcp/bigtable/changestreams/restriction/StreamProgress.html" title="class in org.apache.beam.sdk.io.gcp.bigtable.changestreams.restriction">StreamProgress</a>,<a href="../../../../../../../../../org/apache/beam/sdk/io/gcp/bigtable/changestreams/restriction/StreamProgress.html" title="class in org.apache.beam.sdk.io.gcp.bigtable.changestreams.restriction">StreamProgress</a>&gt;</code></dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code>java.lang.IllegalStateException</code> - when the restriction is not done and there is more work
to be done.</dd>
</dl>
</li>
</ul>
<a name="tryClaim-org.apache.beam.sdk.io.gcp.bigtable.changestreams.restriction.StreamProgress-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>tryClaim</h4>
<pre>public&nbsp;boolean&nbsp;tryClaim(<a href="../../../../../../../../../org/apache/beam/sdk/io/gcp/bigtable/changestreams/restriction/StreamProgress.html" title="class in org.apache.beam.sdk.io.gcp.bigtable.changestreams.restriction">StreamProgress</a>&nbsp;streamProgress)</pre>
<div class="block">Claims a new StreamProgress to be processed. StreamProgress can either be a ContinuationToken
or a CloseStream.
<p>The claim fails if the runner has previously initiated a checkpoint. The restriction tracker
respects the runner initiated checkpoint and fails to claim this streamProgress. The new split
will start from the previously successfully claimed streamProgress.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../../../../../../../../../org/apache/beam/sdk/transforms/splittabledofn/RestrictionTracker.html#tryClaim-PositionT-">tryClaim</a></code>&nbsp;in class&nbsp;<code><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/io/gcp/bigtable/changestreams/restriction/StreamProgress.html" title="class in org.apache.beam.sdk.io.gcp.bigtable.changestreams.restriction">StreamProgress</a>,<a href="../../../../../../../../../org/apache/beam/sdk/io/gcp/bigtable/changestreams/restriction/StreamProgress.html" title="class in org.apache.beam.sdk.io.gcp.bigtable.changestreams.restriction">StreamProgress</a>&gt;</code></dd>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>streamProgress</code> - position in time of the stream that is being claimed.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>true if claim was successful, otherwise false.</dd>
</dl>
</li>
</ul>
<a name="currentRestriction--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>currentRestriction</h4>
<pre>public&nbsp;<a href="../../../../../../../../../org/apache/beam/sdk/io/gcp/bigtable/changestreams/restriction/StreamProgress.html" title="class in org.apache.beam.sdk.io.gcp.bigtable.changestreams.restriction">StreamProgress</a>&nbsp;currentRestriction()</pre>
<div class="block">Returns the streamProgress that was successfully claimed.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../../../../../../../../../org/apache/beam/sdk/transforms/splittabledofn/RestrictionTracker.html#currentRestriction--">currentRestriction</a></code>&nbsp;in class&nbsp;<code><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/io/gcp/bigtable/changestreams/restriction/StreamProgress.html" title="class in org.apache.beam.sdk.io.gcp.bigtable.changestreams.restriction">StreamProgress</a>,<a href="../../../../../../../../../org/apache/beam/sdk/io/gcp/bigtable/changestreams/restriction/StreamProgress.html" title="class in org.apache.beam.sdk.io.gcp.bigtable.changestreams.restriction">StreamProgress</a>&gt;</code></dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>the streamProgress that was successfully claimed.</dd>
</dl>
</li>
</ul>
<a name="trySplit-double-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>trySplit</h4>
<pre>public&nbsp;<a href="https://static.javadoc.io/org.checkerframework/checker-qual/3.27.0/org/checkerframework/checker/nullness/qual/Nullable.html?is-external=true" title="class or interface in org.checkerframework.checker.nullness.qual">@Nullable</a> <a href="../../../../../../../../../org/apache/beam/sdk/transforms/splittabledofn/SplitResult.html" title="class in org.apache.beam.sdk.transforms.splittabledofn">SplitResult</a>&lt;<a href="../../../../../../../../../org/apache/beam/sdk/io/gcp/bigtable/changestreams/restriction/StreamProgress.html" title="class in org.apache.beam.sdk.io.gcp.bigtable.changestreams.restriction">StreamProgress</a>&gt;&nbsp;trySplit(double&nbsp;fractionOfRemainder)</pre>
<div class="block">Splits the work that's left. Since the position in the stream isn't a contiguous value, we
cannot estimate how much work is left or breakdown the work into smaller chunks. Therefore,
there's no way to split the work. To conform to the API, we return null for the primary split
and then continue the work on the residual split.
<p>Also note that, we only accept checkpoints (fractionOfRemainder = 0). Any other value, we
reject (by returning <code>null</code>) the request to split since StreamProgress cannot be
broken down into fractions.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../../../../../../../../../org/apache/beam/sdk/transforms/splittabledofn/RestrictionTracker.html#trySplit-double-">trySplit</a></code>&nbsp;in class&nbsp;<code><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/io/gcp/bigtable/changestreams/restriction/StreamProgress.html" title="class in org.apache.beam.sdk.io.gcp.bigtable.changestreams.restriction">StreamProgress</a>,<a href="../../../../../../../../../org/apache/beam/sdk/io/gcp/bigtable/changestreams/restriction/StreamProgress.html" title="class in org.apache.beam.sdk.io.gcp.bigtable.changestreams.restriction">StreamProgress</a>&gt;</code></dd>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>fractionOfRemainder</code> - the fraction of work remaining, where 0 is a request to checkpoint
current work.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>split result when fractionOfRemainder = 0, otherwise null.</dd>
</dl>
</li>
</ul>
<a name="toString--">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>toString</h4>
<pre>public&nbsp;java.lang.String&nbsp;toString()</pre>
<dl>
<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
<dd><code>toString</code>&nbsp;in class&nbsp;<code>java.lang.Object</code></dd>
</dl>
</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>Prev&nbsp;Class</li>
<li><a href="../../../../../../../../../org/apache/beam/sdk/io/gcp/bigtable/changestreams/restriction/StreamProgress.html" title="class in org.apache.beam.sdk.io.gcp.bigtable.changestreams.restriction"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
</ul>
<ul class="navList">
<li><a href="../../../../../../../../../index.html?org/apache/beam/sdk/io/gcp/bigtable/changestreams/restriction/ReadChangeStreamPartitionProgressTracker.html" target="_top">Frames</a></li>
<li><a href="ReadChangeStreamPartitionProgressTracker.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><a href="#nested.classes.inherited.from.class.org.apache.beam.sdk.transforms.splittabledofn.RestrictionTracker">Nested</a>&nbsp;|&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li><a href="#constructor.summary">Constr</a>&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><a href="#constructor.detail">Constr</a>&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>