blob: f576433e12c4b04614fb3bd8b9461075bba4b8af [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>MetadataTableDao (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="MetadataTableDao (Apache Beam 2.47.0)";
}
}
catch(err) {
}
//-->
var methods = {"i0":10,"i1":10,"i2":10,"i3":10,"i4":10,"i5":10,"i6":10,"i7":10,"i8":10,"i9":10,"i10":10,"i11":10,"i12":10,"i13":10,"i14":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><a href="../../../../../../../../../org/apache/beam/sdk/io/gcp/bigtable/changestreams/dao/MetadataTableAdminDao.html" title="class in org.apache.beam.sdk.io.gcp.bigtable.changestreams.dao"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
<li>Next&nbsp;Class</li>
</ul>
<ul class="navList">
<li><a href="../../../../../../../../../index.html?org/apache/beam/sdk/io/gcp/bigtable/changestreams/dao/MetadataTableDao.html" target="_top">Frames</a></li>
<li><a href="MetadataTableDao.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><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.dao</div>
<h2 title="Class MetadataTableDao" class="title">Class MetadataTableDao</h2>
</div>
<div class="contentContainer">
<ul class="inheritance">
<li>java.lang.Object</li>
<li>
<ul class="inheritance">
<li>org.apache.beam.sdk.io.gcp.bigtable.changestreams.dao.MetadataTableDao</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">MetadataTableDao</span>
extends java.lang.Object</pre>
<div class="block">Data access object for managing the state of the metadata Bigtable table.
<p>Metadata table is shared across many beam jobs. Each beam job uses a specific prefix to
identify itself which is used as the row prefix.</div>
</li>
</ul>
</div>
<div class="summary">
<ul class="blockList">
<li class="blockList">
<!-- ======== 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/dao/MetadataTableDao.html#MetadataTableDao-com.google.cloud.bigtable.data.v2.BigtableDataClient-java.lang.String-com.google.protobuf.ByteString-">MetadataTableDao</a></span>(com.google.cloud.bigtable.data.v2.BigtableDataClient&nbsp;dataClient,
java.lang.String&nbsp;tableId,
com.google.protobuf.ByteString&nbsp;changeStreamNamePrefix)</code>&nbsp;</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>com.google.cloud.bigtable.data.v2.models.Range.ByteStringRange</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../../../../org/apache/beam/sdk/io/gcp/bigtable/changestreams/dao/MetadataTableDao.html#convertNewPartitionRowKeyToPartition-com.google.protobuf.ByteString-">convertNewPartitionRowKeyToPartition</a></span>(com.google.protobuf.ByteString&nbsp;rowKey)</code>
<div class="block">Convert new partition row key to partition to process metadata read from Bigtable.</div>
</td>
</tr>
<tr id="i1" class="rowColor">
<td class="colFirst"><code>com.google.protobuf.ByteString</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../../../../org/apache/beam/sdk/io/gcp/bigtable/changestreams/dao/MetadataTableDao.html#convertPartitionToNewPartitionRowKey-com.google.cloud.bigtable.data.v2.models.Range.ByteStringRange-">convertPartitionToNewPartitionRowKey</a></span>(com.google.cloud.bigtable.data.v2.models.Range.ByteStringRange&nbsp;partition)</code>
<div class="block">Convert partition to a New Partition row key to query for partitions ready to be streamed as
the result of splits and merges.</div>
</td>
</tr>
<tr id="i2" class="altColor">
<td class="colFirst"><code>com.google.protobuf.ByteString</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../../../../org/apache/beam/sdk/io/gcp/bigtable/changestreams/dao/MetadataTableDao.html#convertPartitionToStreamPartitionRowKey-com.google.cloud.bigtable.data.v2.models.Range.ByteStringRange-">convertPartitionToStreamPartitionRowKey</a></span>(com.google.cloud.bigtable.data.v2.models.Range.ByteStringRange&nbsp;partition)</code>
<div class="block">Convert partition to a Stream Partition row key to query for metadata of partitions that are
currently being streamed.</div>
</td>
</tr>
<tr id="i3" class="rowColor">
<td class="colFirst"><code>com.google.cloud.bigtable.data.v2.models.Range.ByteStringRange</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../../../../org/apache/beam/sdk/io/gcp/bigtable/changestreams/dao/MetadataTableDao.html#convertStreamPartitionRowKeyToPartition-com.google.protobuf.ByteString-">convertStreamPartitionRowKeyToPartition</a></span>(com.google.protobuf.ByteString&nbsp;rowKey)</code>
<div class="block">Convert stream partition row key to partition to process metadata read from Bigtable.</div>
</td>
</tr>
<tr id="i4" 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/dao/MetadataTableDao.html#deleteRowKey-com.google.protobuf.ByteString-">deleteRowKey</a></span>(com.google.protobuf.ByteString&nbsp;rowKey)</code>
<div class="block">Delete the row.</div>
</td>
</tr>
<tr id="i5" class="rowColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../../../../org/apache/beam/sdk/io/gcp/bigtable/changestreams/dao/MetadataTableDao.html#deleteStreamPartitionRow-com.google.cloud.bigtable.data.v2.models.Range.ByteStringRange-">deleteStreamPartitionRow</a></span>(com.google.cloud.bigtable.data.v2.models.Range.ByteStringRange&nbsp;partition)</code>
<div class="block">Delete the row key represented by the partition.</div>
</td>
</tr>
<tr id="i6" class="altColor">
<td class="colFirst"><code>com.google.protobuf.ByteString</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../../../../org/apache/beam/sdk/io/gcp/bigtable/changestreams/dao/MetadataTableDao.html#getChangeStreamNamePrefix--">getChangeStreamNamePrefix</a></span>()</code>&nbsp;</td>
</tr>
<tr id="i7" class="rowColor">
<td class="colFirst"><code>boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../../../../org/apache/beam/sdk/io/gcp/bigtable/changestreams/dao/MetadataTableDao.html#lockPartition-com.google.cloud.bigtable.data.v2.models.Range.ByteStringRange-java.lang.String-">lockPartition</a></span>(com.google.cloud.bigtable.data.v2.models.Range.ByteStringRange&nbsp;partition,
java.lang.String&nbsp;uuid)</code>
<div class="block">Lock the partition in the metadata table for the DoFn streaming it.</div>
</td>
</tr>
<tr id="i8" class="altColor">
<td class="colFirst"><code>java.util.HashMap&lt;com.google.cloud.bigtable.data.v2.models.Range.ByteStringRange,java.lang.Long&gt;</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../../../../org/apache/beam/sdk/io/gcp/bigtable/changestreams/dao/MetadataTableDao.html#readDetectNewPartitionMissingPartitions--">readDetectNewPartitionMissingPartitions</a></span>()</code>
<div class="block">Read and deserialize missing partition and how long they have been missing from the metadata
table.</div>
</td>
</tr>
<tr id="i9" class="rowColor">
<td class="colFirst"><code>com.google.api.gax.rpc.ServerStream&lt;com.google.cloud.bigtable.data.v2.models.Row&gt;</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../../../../org/apache/beam/sdk/io/gcp/bigtable/changestreams/dao/MetadataTableDao.html#readFromMdTableStreamPartitionsWithWatermark--">readFromMdTableStreamPartitionsWithWatermark</a></span>()</code>&nbsp;</td>
</tr>
<tr id="i10" class="altColor">
<td class="colFirst"><code>com.google.api.gax.rpc.ServerStream&lt;com.google.cloud.bigtable.data.v2.models.Row&gt;</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../../../../org/apache/beam/sdk/io/gcp/bigtable/changestreams/dao/MetadataTableDao.html#readNewPartitions--">readNewPartitions</a></span>()</code>&nbsp;</td>
</tr>
<tr id="i11" class="rowColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../../../../org/apache/beam/sdk/io/gcp/bigtable/changestreams/dao/MetadataTableDao.html#updateWatermark-com.google.cloud.bigtable.data.v2.models.Range.ByteStringRange-org.joda.time.Instant-com.google.cloud.bigtable.data.v2.models.ChangeStreamContinuationToken-">updateWatermark</a></span>(com.google.cloud.bigtable.data.v2.models.Range.ByteStringRange&nbsp;partition,
<a href="https://static.javadoc.io/joda-time/joda-time/2.10.10/org/joda/time/Instant.html?is-external=true" title="class or interface in org.joda.time">Instant</a>&nbsp;watermark,
com.google.cloud.bigtable.data.v2.models.ChangeStreamContinuationToken&nbsp;currentToken)</code>
<div class="block">Update the metadata for the row key represented by the partition.</div>
</td>
</tr>
<tr id="i12" 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/dao/MetadataTableDao.html#writeDetectNewPartitionMissingPartitions-java.util.HashMap-">writeDetectNewPartitionMissingPartitions</a></span>(java.util.HashMap&lt;com.google.cloud.bigtable.data.v2.models.Range.ByteStringRange,java.lang.Long&gt;&nbsp;missingPartitionDurations)</code>
<div class="block">Write to metadata table serialized missing partitions and how long they have been missing.</div>
</td>
</tr>
<tr id="i13" class="rowColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../../../../org/apache/beam/sdk/io/gcp/bigtable/changestreams/dao/MetadataTableDao.html#writeDetectNewPartitionVersion--">writeDetectNewPartitionVersion</a></span>()</code>
<div class="block">Set the version number for DetectNewPartition.</div>
</td>
</tr>
<tr id="i14" 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/dao/MetadataTableDao.html#writeNewPartition-com.google.cloud.bigtable.data.v2.models.Range.ByteStringRange-com.google.cloud.bigtable.data.v2.models.ChangeStreamContinuationToken-com.google.cloud.bigtable.data.v2.models.Range.ByteStringRange-org.joda.time.Instant-">writeNewPartition</a></span>(com.google.cloud.bigtable.data.v2.models.Range.ByteStringRange&nbsp;newPartition,
com.google.cloud.bigtable.data.v2.models.ChangeStreamContinuationToken&nbsp;changeStreamContinuationToken,
com.google.cloud.bigtable.data.v2.models.Range.ByteStringRange&nbsp;parentPartition,
<a href="https://static.javadoc.io/joda-time/joda-time/2.10.10/org/joda/time/Instant.html?is-external=true" title="class or interface in org.joda.time">Instant</a>&nbsp;lowWatermark)</code>
<div class="block">After a split or merge from a close stream, write the new partition's information to the
metadata table.</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, toString, 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="MetadataTableDao-com.google.cloud.bigtable.data.v2.BigtableDataClient-java.lang.String-com.google.protobuf.ByteString-">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>MetadataTableDao</h4>
<pre>public&nbsp;MetadataTableDao(com.google.cloud.bigtable.data.v2.BigtableDataClient&nbsp;dataClient,
java.lang.String&nbsp;tableId,
com.google.protobuf.ByteString&nbsp;changeStreamNamePrefix)</pre>
</li>
</ul>
</li>
</ul>
<!-- ============ METHOD DETAIL ========== -->
<ul class="blockList">
<li class="blockList"><a name="method.detail">
<!-- -->
</a>
<h3>Method Detail</h3>
<a name="getChangeStreamNamePrefix--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getChangeStreamNamePrefix</h4>
<pre>public&nbsp;com.google.protobuf.ByteString&nbsp;getChangeStreamNamePrefix()</pre>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>the prefix that is prepended to every row belonging to this beam job.</dd>
</dl>
</li>
</ul>
<a name="convertStreamPartitionRowKeyToPartition-com.google.protobuf.ByteString-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>convertStreamPartitionRowKeyToPartition</h4>
<pre>public&nbsp;com.google.cloud.bigtable.data.v2.models.Range.ByteStringRange&nbsp;convertStreamPartitionRowKeyToPartition(com.google.protobuf.ByteString&nbsp;rowKey)
throws com.google.protobuf.InvalidProtocolBufferException</pre>
<div class="block">Convert stream partition row key to partition to process metadata read from Bigtable.
<p>RowKey should be directly from Cloud Bigtable and not altered in any way.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>rowKey</code> - row key from Cloud Bigtable</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>partition extracted from rowKey</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code>com.google.protobuf.InvalidProtocolBufferException</code> - if conversion from rowKey to partition fails</dd>
</dl>
</li>
</ul>
<a name="convertPartitionToStreamPartitionRowKey-com.google.cloud.bigtable.data.v2.models.Range.ByteStringRange-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>convertPartitionToStreamPartitionRowKey</h4>
<pre>public&nbsp;com.google.protobuf.ByteString&nbsp;convertPartitionToStreamPartitionRowKey(com.google.cloud.bigtable.data.v2.models.Range.ByteStringRange&nbsp;partition)</pre>
<div class="block">Convert partition to a Stream Partition row key to query for metadata of partitions that are
currently being streamed.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>partition</code> - convert to row key</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>row key to insert to Cloud Bigtable.</dd>
</dl>
</li>
</ul>
<a name="convertNewPartitionRowKeyToPartition-com.google.protobuf.ByteString-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>convertNewPartitionRowKeyToPartition</h4>
<pre>public&nbsp;com.google.cloud.bigtable.data.v2.models.Range.ByteStringRange&nbsp;convertNewPartitionRowKeyToPartition(com.google.protobuf.ByteString&nbsp;rowKey)
throws com.google.protobuf.InvalidProtocolBufferException</pre>
<div class="block">Convert new partition row key to partition to process metadata read from Bigtable.
<p>RowKey should be directly from Cloud Bigtable and not altered in any way.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>rowKey</code> - row key from Cloud Bigtable</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>partition extracted from rowKey</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code>com.google.protobuf.InvalidProtocolBufferException</code> - if conversion from rowKey to partition fails</dd>
</dl>
</li>
</ul>
<a name="convertPartitionToNewPartitionRowKey-com.google.cloud.bigtable.data.v2.models.Range.ByteStringRange-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>convertPartitionToNewPartitionRowKey</h4>
<pre>public&nbsp;com.google.protobuf.ByteString&nbsp;convertPartitionToNewPartitionRowKey(com.google.cloud.bigtable.data.v2.models.Range.ByteStringRange&nbsp;partition)</pre>
<div class="block">Convert partition to a New Partition row key to query for partitions ready to be streamed as
the result of splits and merges.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>partition</code> - convert to row key</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>row key to insert to Cloud Bigtable.</dd>
</dl>
</li>
</ul>
<a name="readNewPartitions--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>readNewPartitions</h4>
<pre>public&nbsp;com.google.api.gax.rpc.ServerStream&lt;com.google.cloud.bigtable.data.v2.models.Row&gt;&nbsp;readNewPartitions()</pre>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>stream of all the new partitions resulting from splits and merges waiting to be
streamed.</dd>
</dl>
</li>
</ul>
<a name="writeNewPartition-com.google.cloud.bigtable.data.v2.models.Range.ByteStringRange-com.google.cloud.bigtable.data.v2.models.ChangeStreamContinuationToken-com.google.cloud.bigtable.data.v2.models.Range.ByteStringRange-org.joda.time.Instant-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>writeNewPartition</h4>
<pre>public&nbsp;void&nbsp;writeNewPartition(com.google.cloud.bigtable.data.v2.models.Range.ByteStringRange&nbsp;newPartition,
com.google.cloud.bigtable.data.v2.models.ChangeStreamContinuationToken&nbsp;changeStreamContinuationToken,
com.google.cloud.bigtable.data.v2.models.Range.ByteStringRange&nbsp;parentPartition,
<a href="https://static.javadoc.io/joda-time/joda-time/2.10.10/org/joda/time/Instant.html?is-external=true" title="class or interface in org.joda.time">Instant</a>&nbsp;lowWatermark)</pre>
<div class="block">After a split or merge from a close stream, write the new partition's information to the
metadata table.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>newPartition</code> - the new partition</dd>
<dd><code>changeStreamContinuationToken</code> - the token that can be used to pick up from where the
parent left off</dd>
<dd><code>parentPartition</code> - the parent that stopped and split or merged</dd>
<dd><code>lowWatermark</code> - the low watermark of the parent stream</dd>
</dl>
</li>
</ul>
<a name="readFromMdTableStreamPartitionsWithWatermark--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>readFromMdTableStreamPartitionsWithWatermark</h4>
<pre>public&nbsp;com.google.api.gax.rpc.ServerStream&lt;com.google.cloud.bigtable.data.v2.models.Row&gt;&nbsp;readFromMdTableStreamPartitionsWithWatermark()</pre>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>stream of partitions currently being streamed by the beam job that have set a
watermark.</dd>
</dl>
</li>
</ul>
<a name="updateWatermark-com.google.cloud.bigtable.data.v2.models.Range.ByteStringRange-org.joda.time.Instant-com.google.cloud.bigtable.data.v2.models.ChangeStreamContinuationToken-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>updateWatermark</h4>
<pre>public&nbsp;void&nbsp;updateWatermark(com.google.cloud.bigtable.data.v2.models.Range.ByteStringRange&nbsp;partition,
<a href="https://static.javadoc.io/joda-time/joda-time/2.10.10/org/joda/time/Instant.html?is-external=true" title="class or interface in org.joda.time">Instant</a>&nbsp;watermark,
<a href="https://static.javadoc.io/com.google.code.findbugs/jsr305/3.0.2/javax/annotation/Nullable.html?is-external=true" title="class or interface in javax.annotation">@Nullable</a>
com.google.cloud.bigtable.data.v2.models.ChangeStreamContinuationToken&nbsp;currentToken)</pre>
<div class="block">Update the metadata for the row key represented by the partition.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>partition</code> - forms the row key of the row to update</dd>
<dd><code>watermark</code> - watermark value to set for the cell</dd>
<dd><code>currentToken</code> - continuation token to set for the cell</dd>
</dl>
</li>
</ul>
<a name="deleteStreamPartitionRow-com.google.cloud.bigtable.data.v2.models.Range.ByteStringRange-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>deleteStreamPartitionRow</h4>
<pre>public&nbsp;void&nbsp;deleteStreamPartitionRow(com.google.cloud.bigtable.data.v2.models.Range.ByteStringRange&nbsp;partition)</pre>
<div class="block">Delete the row key represented by the partition. This represents that the partition will no
longer be streamed.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>partition</code> - forms the row key of the row to delete</dd>
</dl>
</li>
</ul>
<a name="deleteRowKey-com.google.protobuf.ByteString-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>deleteRowKey</h4>
<pre>public&nbsp;void&nbsp;deleteRowKey(com.google.protobuf.ByteString&nbsp;rowKey)</pre>
<div class="block">Delete the row.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>rowKey</code> - row key of the row to delete</dd>
</dl>
</li>
</ul>
<a name="lockPartition-com.google.cloud.bigtable.data.v2.models.Range.ByteStringRange-java.lang.String-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>lockPartition</h4>
<pre>public&nbsp;boolean&nbsp;lockPartition(com.google.cloud.bigtable.data.v2.models.Range.ByteStringRange&nbsp;partition,
java.lang.String&nbsp;uuid)</pre>
<div class="block">Lock the partition in the metadata table for the DoFn streaming it. Only one DoFn is allowed to
stream a specific partition at any time. Each DoFn has an uuid and will try to lock the
partition at the very start of the stream. If another DoFn has already locked the partition
(i.e. the uuid in the cell for the partition belongs to the DoFn), any future DoFn trying to
lock the same partition will and terminate.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>partition</code> - form the row key in the metadata table to lock</dd>
<dd><code>uuid</code> - id of the DoFn</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>true if uuid holds the lock, otherwise false.</dd>
</dl>
</li>
</ul>
<a name="writeDetectNewPartitionVersion--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>writeDetectNewPartitionVersion</h4>
<pre>public&nbsp;void&nbsp;writeDetectNewPartitionVersion()</pre>
<div class="block">Set the version number for DetectNewPartition. This value can be checked later to verify that
the existing metadata table is compatible with current beam connector code.</div>
</li>
</ul>
<a name="readDetectNewPartitionMissingPartitions--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>readDetectNewPartitionMissingPartitions</h4>
<pre>public&nbsp;java.util.HashMap&lt;com.google.cloud.bigtable.data.v2.models.Range.ByteStringRange,java.lang.Long&gt;&nbsp;readDetectNewPartitionMissingPartitions()</pre>
<div class="block">Read and deserialize missing partition and how long they have been missing from the metadata
table.</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>deserialized missing partitions and duration.</dd>
</dl>
</li>
</ul>
<a name="writeDetectNewPartitionMissingPartitions-java.util.HashMap-">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>writeDetectNewPartitionMissingPartitions</h4>
<pre>public&nbsp;void&nbsp;writeDetectNewPartitionMissingPartitions(java.util.HashMap&lt;com.google.cloud.bigtable.data.v2.models.Range.ByteStringRange,java.lang.Long&gt;&nbsp;missingPartitionDurations)</pre>
<div class="block">Write to metadata table serialized missing partitions and how long they have been missing.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>missingPartitionDurations</code> - missing partitions and duration.</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><a href="../../../../../../../../../org/apache/beam/sdk/io/gcp/bigtable/changestreams/dao/MetadataTableAdminDao.html" title="class in org.apache.beam.sdk.io.gcp.bigtable.changestreams.dao"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
<li>Next&nbsp;Class</li>
</ul>
<ul class="navList">
<li><a href="../../../../../../../../../index.html?org/apache/beam/sdk/io/gcp/bigtable/changestreams/dao/MetadataTableDao.html" target="_top">Frames</a></li>
<li><a href="MetadataTableDao.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><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>