This is an automated email from the ASF dual-hosted git repository.

git-site-role pushed a commit to branch asf-site
in repository https://gitbox.apache.org/repos/asf/beam.git


The following commit(s) were added to refs/heads/asf-site by this push:
     new 38b8d68  Publishing website 2020/11/19 00:02:12 at commit 774185b
38b8d68 is described below

commit 38b8d681df72f80c0a6fa127d1330c753cc70f62
Author: jenkins <[email protected]>
AuthorDate: Thu Nov 19 00:02:13 2020 +0000

    Publishing website 2020/11/19 00:02:12 at commit 774185b
---
 website/generated-content/documentation/index.xml  | 80 ++++++++++++++++++----
 .../documentation/programming-guide/index.html     | 45 ++++++++----
 website/generated-content/sitemap.xml              |  2 +-
 3 files changed, 102 insertions(+), 25 deletions(-)

diff --git a/website/generated-content/documentation/index.xml 
b/website/generated-content/documentation/index.xml
index 12ffbfe..455fcc5 100644
--- a/website/generated-content/documentation/index.xml
+++ b/website/generated-content/documentation/index.xml
@@ -7007,15 +7007,68 @@ restriction pairs.&lt;/li>
 &lt;p>&lt;img src="/images/sdf_high_level_overview.svg" alt="Diagram of steps 
that an SDF is composed of">&lt;/p>
 &lt;h4 id="a-basic-sdf">12.1.1. A basic SDF&lt;/h4>
 &lt;p>A basic SDF is composed of three parts: a restriction, a restriction 
provider, and a
-restriction tracker. The restriction is used to represent a subset of work for 
a given element.
-The restriction provider lets SDF authors override default implementations for 
splitting, sizing,
-watermark estimation, and so forth. In &lt;a 
href="https://github.com/apache/beam/blob/f4c2734261396858e388ebef2eef50e7d48231a8/sdks/java/core/src/main/java/org/apache/beam/sdk/transforms/DoFn.java#L92";>Java&lt;/a>
+restriction tracker. If you want to control the watermark, especially in a 
streaming
+pipeline, two more components are needed: a watermark estimator provider and a 
watermark estimator.&lt;/p>
+&lt;p>The restriction is a user-defined object that is used to represent a 
subset of
+work for a given element. For example, we defined 
&lt;code>OffsetRange&lt;/code> as a restriction to represent offset
+positions in &lt;a 
href="https://beam.apache.org/releases/javadoc/current/org/apache/beam/sdk/io/range/OffsetRange.html";>Java&lt;/a>
+and &lt;a 
href="https://beam.apache.org/releases/pydoc/current/apache_beam.io.restriction_trackers.html#apache_beam.io.restriction_trackers.OffsetRange";>Python&lt;/a>.&lt;/p>
+&lt;p>The restriction provider lets SDF authors override default 
implementations, including the ones for
+splitting and sizing. In &lt;a 
href="https://beam.apache.org/releases/javadoc/current/org/apache/beam/sdk/transforms/DoFn.ProcessElement.html";>Java&lt;/a>
 and &lt;a 
href="https://github.com/apache/beam/blob/0f466e6bcd4ac8677c2bd9ecc8e6af3836b7f3b8/sdks/go/pkg/beam/pardo.go#L226";>Go&lt;/a>,
-this is the &lt;code>DoFn&lt;/code>. &lt;a 
href="https://github.com/apache/beam/blob/f4c2734261396858e388ebef2eef50e7d48231a8/sdks/python/apache_beam/transforms/core.py#L213";>Python&lt;/a>
-has a dedicated RestrictionProvider type. The restriction tracker is 
responsible for tracking
-what subset of the restriction has been completed during processing.&lt;/p>
+this is the &lt;code>DoFn&lt;/code>. &lt;a 
href="https://beam.apache.org/releases/pydoc/current/apache_beam.transforms.core.html#apache_beam.transforms.core.RestrictionProvider";>Python&lt;/a>
+has a dedicated &lt;code>RestrictionProvider&lt;/code> type.&lt;/p>
+&lt;p>The restriction tracker is responsible for tracking which subset of the 
restriction has been
+completed during processing. For APIs details, read the &lt;a 
href="https://beam.apache.org/releases/javadoc/current/org/apache/beam/sdk/transforms/splittabledofn/RestrictionTracker.html";>Java&lt;/a>
+and &lt;a 
href="https://beam.apache.org/releases/pydoc/current/apache_beam.io.iobase.html#apache_beam.io.iobase.RestrictionTracker";>Python&lt;/a>
+reference documentation.&lt;/p>
+&lt;p>There are some built-in &lt;code>RestrictionTracker&lt;/code> 
implementations defined in Java:&lt;/p>
+&lt;ol>
+&lt;li>&lt;a 
href="https://beam.apache.org/releases/javadoc/current/org/apache/beam/sdk/transforms/splittabledofn/OffsetRangeTracker.html";>OffsetRangeTracker&lt;/a>&lt;/li>
+&lt;li>&lt;a 
href="https://beam.apache.org/releases/javadoc/current/org/apache/beam/sdk/transforms/splittabledofn/GrowableOffsetRangeTracker.html";>GrowableOffsetRangeTracker&lt;/a>&lt;/li>
+&lt;li>&lt;a 
href="https://beam.apache.org/releases/javadoc/current/org/apache/beam/sdk/transforms/splittabledofn/ByteKeyRangeTracker.html";>ByteKeyRangeTracker&lt;/a>&lt;/li>
+&lt;/ol>
+&lt;p>The SDF also has a built-in &lt;code>RestrictionTracker&lt;/code> 
implementation in Python:&lt;/p>
+&lt;ol>
+&lt;li>&lt;a 
href="https://beam.apache.org/releases/pydoc/current/apache_beam.io.restriction_trackers.html#apache_beam.io.restriction_trackers.OffsetRestrictionTracker";>OffsetRangeTracker&lt;/a>&lt;/li>
+&lt;/ol>
+&lt;p>The watermark state is a user-defined object which is used to create a 
&lt;code>WatermarkEstimator&lt;/code> from a
+&lt;code>WatermarkEstimatorProvider&lt;/code>. The simplest watermark state 
could be a &lt;code>timestamp&lt;/code>.&lt;/p>
+&lt;p>The watermark estimator provider lets SDF authors define how to 
initialize the watermark state and
+create a watermark estimator. In &lt;a 
href="https://beam.apache.org/releases/javadoc/current/org/apache/beam/sdk/transforms/DoFn.ProcessElement.html";>Java&lt;/a>
+this is the &lt;code>DoFn&lt;/code>. &lt;a 
href="https://beam.apache.org/releases/pydoc/current/apache_beam.transforms.core.html#apache_beam.transforms.core.WatermarkEstimatorProvider";>Python&lt;/a>
+has a dedicated &lt;code>WatermarkEstimatorProvider&lt;/code> type.&lt;/p>
+&lt;p>The watermark estimator tracks the watermark when an element-restriction 
pair is in progress.
+For APIs details, read the &lt;a 
href="https://beam.apache.org/releases/javadoc/current/org/apache/beam/sdk/transforms/splittabledofn/WatermarkEstimator.html";>Java&lt;/a>
+and &lt;a 
href="https://beam.apache.org/releases/pydoc/current/apache_beam.io.iobase.html#apache_beam.io.iobase.WatermarkEstimator";>Python&lt;/a>
+reference documentation.&lt;/p>
+&lt;p>There are some built-in &lt;code>WatermarkEstimator&lt;/code> 
implementations in Java:&lt;/p>
+&lt;ol>
+&lt;li>&lt;a 
href="https://beam.apache.org/releases/javadoc/current/org/apache/beam/sdk/transforms/splittabledofn/WatermarkEstimators.Manual.html";>Manual&lt;/a>&lt;/li>
+&lt;li>&lt;a 
href="https://beam.apache.org/releases/javadoc/current/org/apache/beam/sdk/transforms/splittabledofn/WatermarkEstimators.MonotonicallyIncreasing.html";>MonotonicallyIncreasing&lt;/a>&lt;/li>
+&lt;li>&lt;a 
href="https://beam.apache.org/releases/javadoc/current/org/apache/beam/sdk/transforms/splittabledofn/WatermarkEstimators.WallTime.html";>WallTime&lt;/a>&lt;/li>
+&lt;/ol>
+&lt;p>Along with the default &lt;code>WatermarkEstimatorProvider&lt;/code>, 
there are the same set of built-in
+&lt;code>WatermarkEstimator&lt;/code> implementations in Python:&lt;/p>
+&lt;ol>
+&lt;li>&lt;a 
href="https://beam.apache.org/releases/pydoc/current/apache_beam.io.watermark_estimators.html#apache_beam.io.watermark_estimators.ManualWatermarkEstimator";>ManualWatermarkEstimator&lt;/a>&lt;/li>
+&lt;li>&lt;a 
href="https://beam.apache.org/releases/pydoc/current/apache_beam.io.watermark_estimators.html#apache_beam.io.watermark_estimators.MonotonicWatermarkEstimator";>MonotonicWatermarkEstimator&lt;/a>&lt;/li>
+&lt;li>&lt;a 
href="https://beam.apache.org/releases/pydoc/current/apache_beam.io.watermark_estimators.html#apache_beam.io.watermark_estimators.WalltimeWatermarkEstimator";>WalltimeWatermarkEstimator&lt;/a>&lt;/li>
+&lt;/ol>
 &lt;p>To define an SDF, you must choose whether the SDF is bounded (default) or
-unbounded and define a way to initialize an initial restriction for an 
element.&lt;/p>
+unbounded and define a way to initialize an initial restriction for an 
element. The distinction is
+based on how the amount of work is represented:&lt;/p>
+&lt;ul>
+&lt;li>Bounded DoFns are those where the work represented by an element is 
well-known beforehand and has
+an end. Examples of bounded elements include a file or group of files.&lt;/li>
+&lt;li>Unbounded DoFns are those where the amount of work does not have a 
specific end or the
+amount of work is not known befrehand. Examples of unbounded elements include 
a Kafka or a PubSub
+topic.&lt;/li>
+&lt;/ul>
+&lt;p>In Java, you can use &lt;a 
href="https://beam.apache.org/releases/javadoc/current/index.html?org/apache/beam/sdk/transforms/DoFn.UnboundedPerElement.html";>@UnboundedPerElement&lt;/a>
+or &lt;a 
href="https://beam.apache.org/releases/javadoc/current/index.html?org/apache/beam/sdk/transforms/DoFn.BoundedPerElement.html";>@BoundedPerElement&lt;/a>
+to annotate your &lt;code>DoFn&lt;/code>. In Python, you can use &lt;a 
href="https://beam.apache.org/releases/pydoc/current/apache_beam.transforms.core.html#apache_beam.transforms.core.DoFn.unbounded_per_element";>@unbounded_per_element&lt;/a>
+to annotate the &lt;code>DoFn&lt;/code>.&lt;/p>
 &lt;div class=language-java>
 &lt;div class="highlight">&lt;pre class="chroma">&lt;code 
class="language-java" data-lang="java">&lt;span 
class="nd">@BoundedPerElement&lt;/span>
 &lt;span class="kd">private&lt;/span> &lt;span class="kd">static&lt;/span> 
&lt;span class="kd">class&lt;/span> &lt;span class="nc">FileToWordsFn&lt;/span> 
&lt;span class="kd">extends&lt;/span> &lt;span class="n">DoFn&lt;/span>&lt;span 
class="o">&amp;lt;&lt;/span>&lt;span class="n">String&lt;/span>&lt;span 
class="o">,&lt;/span> &lt;span class="n">Integer&lt;/span>&lt;span 
class="o">&amp;gt;&lt;/span> &lt;span class="o">{&lt;/span>
@@ -7235,10 +7288,13 @@ resource utilization.&lt;/p>
 &lt;p>A runner at any time may attempt to split a restriction while it is 
being processed. This allows the
 runner to either pause processing of the restriction so that other work may be 
done (common for
 unbounded restrictions to limit the amount of output and/or improve latency) 
or split the restriction
-into two pieces, increasing the available parallelism within the system. It is 
important to author a
-SDF with this in mind since the end of the restriction may change. Thus when 
writing the
-processing loop, it is important to use the result from trying to claim a 
piece of the restriction
-instead of assuming one can process till the end.&lt;/p>
+into two pieces, increasing the available parallelism within the system. 
Different runners (e.g.,
+Dataflow, Flink, Spark) have different strategies to issue splits under batch 
and streaming
+execution.&lt;/p>
+&lt;p>Author an SDF with this in mind since the end of the restriction may 
change. When writing the
+processing loop, use the result from trying to claim a piece of the 
restriction instead of assuming
+you can process until the end.&lt;/p>
+&lt;p>One incorrect example could be:&lt;/p>
 &lt;div class=language-java>
 &lt;div class="highlight">&lt;pre class="chroma">&lt;code 
class="language-java" data-lang="java">&lt;span 
class="nd">@ProcessElement&lt;/span>
 &lt;span class="kd">public&lt;/span> &lt;span class="kt">void&lt;/span> 
&lt;span class="nf">badTryClaimLoop&lt;/span>&lt;span class="o">(&lt;/span>
@@ -7322,7 +7378,7 @@ Timestamp observing watermark estimators use the output 
timestamp of each record
 estimate while external clock observing watermark estimators control the 
watermark by using a clock that
 is not associated to any individual output, such as the local clock of the 
machine or a clock exposed
 through an external service.&lt;/p>
-&lt;p>The restriction provider lets you override the default watermark 
estimation logic and use an existing
+&lt;p>The watermark estimator provider lets you override the default watermark 
estimation logic and use an existing
 watermark estimator implementation. You can also provide your own watermark 
estimator implementation.&lt;/p>
 &lt;div class=language-java>
 &lt;div class="highlight">&lt;pre class="chroma">&lt;code 
class="language-java" data-lang="java"> &lt;span class="c1">// (Optional) 
Define a custom watermark state type to save information between bundle
diff --git 
a/website/generated-content/documentation/programming-guide/index.html 
b/website/generated-content/documentation/programming-guide/index.html
index 6595d9e..d541799 100644
--- a/website/generated-content/documentation/programming-guide/index.html
+++ b/website/generated-content/documentation/programming-guide/index.html
@@ -2772,14 +2772,34 @@ restriction represents a subset of work that would have 
been necessary to have b
 processing the element.</p><p>Executing an SDF follows the following 
steps:</p><ol><li>Each element is paired with a restriction (e.g. filename is 
paired with offset range representing the whole file).</li><li>Each element and 
restriction pair is split (e.g. offset ranges are broken up into smaller 
pieces).</li><li>The runner redistributes the element and restriction pairs to 
several workers.</li><li>Element and restriction pairs are processed in 
parallel (e.g. the file is read). Within  [...]
 the element and restriction pair can pause its own processing and/or be split 
into further element and
 restriction pairs.</li></ol><p><img src=/images/sdf_high_level_overview.svg 
alt="Diagram of steps that an SDF is composed of"></p><h4 
id=a-basic-sdf>12.1.1. A basic SDF</h4><p>A basic SDF is composed of three 
parts: a restriction, a restriction provider, and a
-restriction tracker. The restriction is used to represent a subset of work for 
a given element.
-The restriction provider lets SDF authors override default implementations for 
splitting, sizing,
-watermark estimation, and so forth. In <a 
href=https://github.com/apache/beam/blob/f4c2734261396858e388ebef2eef50e7d48231a8/sdks/java/core/src/main/java/org/apache/beam/sdk/transforms/DoFn.java#L92>Java</a>
+restriction tracker. If you want to control the watermark, especially in a 
streaming
+pipeline, two more components are needed: a watermark estimator provider and a 
watermark estimator.</p><p>The restriction is a user-defined object that is 
used to represent a subset of
+work for a given element. For example, we defined <code>OffsetRange</code> as 
a restriction to represent offset
+positions in <a 
href=https://beam.apache.org/releases/javadoc/current/org/apache/beam/sdk/io/range/OffsetRange.html>Java</a>
+and <a 
href=https://beam.apache.org/releases/pydoc/current/apache_beam.io.restriction_trackers.html#apache_beam.io.restriction_trackers.OffsetRange>Python</a>.</p><p>The
 restriction provider lets SDF authors override default implementations, 
including the ones for
+splitting and sizing. In <a 
href=https://beam.apache.org/releases/javadoc/current/org/apache/beam/sdk/transforms/DoFn.ProcessElement.html>Java</a>
 and <a 
href=https://github.com/apache/beam/blob/0f466e6bcd4ac8677c2bd9ecc8e6af3836b7f3b8/sdks/go/pkg/beam/pardo.go#L226>Go</a>,
-this is the <code>DoFn</code>. <a 
href=https://github.com/apache/beam/blob/f4c2734261396858e388ebef2eef50e7d48231a8/sdks/python/apache_beam/transforms/core.py#L213>Python</a>
-has a dedicated RestrictionProvider type. The restriction tracker is 
responsible for tracking
-what subset of the restriction has been completed during processing.</p><p>To 
define an SDF, you must choose whether the SDF is bounded (default) or
-unbounded and define a way to initialize an initial restriction for an 
element.</p><div class=language-java><div class=highlight><pre 
class=chroma><code class=language-java data-lang=java><span 
class=nd>@BoundedPerElement</span>
+this is the <code>DoFn</code>. <a 
href=https://beam.apache.org/releases/pydoc/current/apache_beam.transforms.core.html#apache_beam.transforms.core.RestrictionProvider>Python</a>
+has a dedicated <code>RestrictionProvider</code> type.</p><p>The restriction 
tracker is responsible for tracking which subset of the restriction has been
+completed during processing. For APIs details, read the <a 
href=https://beam.apache.org/releases/javadoc/current/org/apache/beam/sdk/transforms/splittabledofn/RestrictionTracker.html>Java</a>
+and <a 
href=https://beam.apache.org/releases/pydoc/current/apache_beam.io.iobase.html#apache_beam.io.iobase.RestrictionTracker>Python</a>
+reference documentation.</p><p>There are some built-in 
<code>RestrictionTracker</code> implementations defined in Java:</p><ol><li><a 
href=https://beam.apache.org/releases/javadoc/current/org/apache/beam/sdk/transforms/splittabledofn/OffsetRangeTracker.html>OffsetRangeTracker</a></li><li><a
 
href=https://beam.apache.org/releases/javadoc/current/org/apache/beam/sdk/transforms/splittabledofn/GrowableOffsetRangeTracker.html>GrowableOffsetRangeTracker</a></li><li><a
 href=https://beam.apache.o [...]
+<code>WatermarkEstimatorProvider</code>. The simplest watermark state could be 
a <code>timestamp</code>.</p><p>The watermark estimator provider lets SDF 
authors define how to initialize the watermark state and
+create a watermark estimator. In <a 
href=https://beam.apache.org/releases/javadoc/current/org/apache/beam/sdk/transforms/DoFn.ProcessElement.html>Java</a>
+this is the <code>DoFn</code>. <a 
href=https://beam.apache.org/releases/pydoc/current/apache_beam.transforms.core.html#apache_beam.transforms.core.WatermarkEstimatorProvider>Python</a>
+has a dedicated <code>WatermarkEstimatorProvider</code> type.</p><p>The 
watermark estimator tracks the watermark when an element-restriction pair is in 
progress.
+For APIs details, read the <a 
href=https://beam.apache.org/releases/javadoc/current/org/apache/beam/sdk/transforms/splittabledofn/WatermarkEstimator.html>Java</a>
+and <a 
href=https://beam.apache.org/releases/pydoc/current/apache_beam.io.iobase.html#apache_beam.io.iobase.WatermarkEstimator>Python</a>
+reference documentation.</p><p>There are some built-in 
<code>WatermarkEstimator</code> implementations in Java:</p><ol><li><a 
href=https://beam.apache.org/releases/javadoc/current/org/apache/beam/sdk/transforms/splittabledofn/WatermarkEstimators.Manual.html>Manual</a></li><li><a
 
href=https://beam.apache.org/releases/javadoc/current/org/apache/beam/sdk/transforms/splittabledofn/WatermarkEstimators.MonotonicallyIncreasing.html>MonotonicallyIncreasing</a></li><li><a
 href=https://beam.apache [...]
+<code>WatermarkEstimator</code> implementations in Python:</p><ol><li><a 
href=https://beam.apache.org/releases/pydoc/current/apache_beam.io.watermark_estimators.html#apache_beam.io.watermark_estimators.ManualWatermarkEstimator>ManualWatermarkEstimator</a></li><li><a
 
href=https://beam.apache.org/releases/pydoc/current/apache_beam.io.watermark_estimators.html#apache_beam.io.watermark_estimators.MonotonicWatermarkEstimator>MonotonicWatermarkEstimator</a></li><li><a
 href=https://beam.apache. [...]
+unbounded and define a way to initialize an initial restriction for an 
element. The distinction is
+based on how the amount of work is represented:</p><ul><li>Bounded DoFns are 
those where the work represented by an element is well-known beforehand and has
+an end. Examples of bounded elements include a file or group of 
files.</li><li>Unbounded DoFns are those where the amount of work does not have 
a specific end or the
+amount of work is not known befrehand. Examples of unbounded elements include 
a Kafka or a PubSub
+topic.</li></ul><p>In Java, you can use <a 
href=https://beam.apache.org/releases/javadoc/current/index.html?org/apache/beam/sdk/transforms/DoFn.UnboundedPerElement.html>@UnboundedPerElement</a>
+or <a 
href=https://beam.apache.org/releases/javadoc/current/index.html?org/apache/beam/sdk/transforms/DoFn.BoundedPerElement.html>@BoundedPerElement</a>
+to annotate your <code>DoFn</code>. In Python, you can use <a 
href=https://beam.apache.org/releases/pydoc/current/apache_beam.transforms.core.html#apache_beam.transforms.core.DoFn.unbounded_per_element>@unbounded_per_element</a>
+to annotate the <code>DoFn</code>.</p><div class=language-java><div 
class=highlight><pre class=chroma><code class=language-java 
data-lang=java><span class=nd>@BoundedPerElement</span>
 <span class=kd>private</span> <span class=kd>static</span> <span 
class=kd>class</span> <span class=nc>FileToWordsFn</span> <span 
class=kd>extends</span> <span class=n>DoFn</span><span class=o>&lt;</span><span 
class=n>String</span><span class=o>,</span> <span class=n>Integer</span><span 
class=o>&gt;</span> <span class=o>{</span>
   <span class=nd>@GetInitialRestriction</span>
   <span class=kd>public</span> <span class=n>OffsetRange</span> <span 
class=nf>getInitialRestriction</span><span class=o>(</span><span 
class=nd>@Element</span> <span class=n>String</span> <span 
class=n>fileName</span><span class=o>)</span> <span class=kd>throws</span> 
<span class=n>IOException</span> <span class=o>{</span>
@@ -2965,10 +2985,11 @@ resource utilization.</p><div class=language-java><div 
class=highlight><pre clas
         <span class=k>return</span></code></pre></div></div><h3 
id=runner-initiated-split>12.4. Runner-initiated split</h3><p>A runner at any 
time may attempt to split a restriction while it is being processed. This 
allows the
 runner to either pause processing of the restriction so that other work may be 
done (common for
 unbounded restrictions to limit the amount of output and/or improve latency) 
or split the restriction
-into two pieces, increasing the available parallelism within the system. It is 
important to author a
-SDF with this in mind since the end of the restriction may change. Thus when 
writing the
-processing loop, it is important to use the result from trying to claim a 
piece of the restriction
-instead of assuming one can process till the end.</p><div 
class=language-java><div class=highlight><pre class=chroma><code 
class=language-java data-lang=java><span class=nd>@ProcessElement</span>
+into two pieces, increasing the available parallelism within the system. 
Different runners (e.g.,
+Dataflow, Flink, Spark) have different strategies to issue splits under batch 
and streaming
+execution.</p><p>Author an SDF with this in mind since the end of the 
restriction may change. When writing the
+processing loop, use the result from trying to claim a piece of the 
restriction instead of assuming
+you can process until the end.</p><p>One incorrect example could be:</p><div 
class=language-java><div class=highlight><pre class=chroma><code 
class=language-java data-lang=java><span class=nd>@ProcessElement</span>
 <span class=kd>public</span> <span class=kt>void</span> <span 
class=nf>badTryClaimLoop</span><span class=o>(</span>
     <span class=nd>@Element</span> <span class=n>String</span> <span 
class=n>fileName</span><span class=o>,</span>
     <span class=n>RestrictionTracker</span><span class=o>&lt;</span><span 
class=n>OffsetRange</span><span class=o>,</span> <span class=n>Long</span><span 
class=o>&gt;</span> <span class=n>tracker</span><span class=o>,</span>
@@ -3034,7 +3055,7 @@ this SDF to configure which watermark estimator to 
use.</li><li>Any data produce
 Timestamp observing watermark estimators use the output timestamp of each 
record to compute the watermark
 estimate while external clock observing watermark estimators control the 
watermark by using a clock that
 is not associated to any individual output, such as the local clock of the 
machine or a clock exposed
-through an external service.</p><p>The restriction provider lets you override 
the default watermark estimation logic and use an existing
+through an external service.</p><p>The watermark estimator provider lets you 
override the default watermark estimation logic and use an existing
 watermark estimator implementation. You can also provide your own watermark 
estimator implementation.</p><div class=language-java><div class=highlight><pre 
class=chroma><code class=language-java data-lang=java>      <span class=c1>// 
(Optional) Define a custom watermark state type to save information between 
bundle
 </span><span class=c1></span>      <span class=c1>// processing rounds.
 </span><span class=c1></span>      <span class=kd>public</span> <span 
class=kd>static</span> <span class=kd>class</span> <span 
class=nc>MyCustomWatermarkState</span> <span class=o>{</span>
diff --git a/website/generated-content/sitemap.xml 
b/website/generated-content/sitemap.xml
index 5f9c1ee..5ad153d 100644
--- a/website/generated-content/sitemap.xml
+++ b/website/generated-content/sitemap.xml
@@ -1 +1 @@
-<?xml version="1.0" encoding="utf-8" standalone="yes"?><urlset 
xmlns="http://www.sitemaps.org/schemas/sitemap/0.9"; 
xmlns:xhtml="http://www.w3.org/1999/xhtml";><url><loc>/blog/beam-2.25.0/</loc><lastmod>2020-10-29T14:08:19-07:00</lastmod></url><url><loc>/categories/blog/</loc><lastmod>2020-10-29T14:08:19-07:00</lastmod></url><url><loc>/blog/</loc><lastmod>2020-10-29T14:08:19-07:00</lastmod></url><url><loc>/categories/</loc><lastmod>2020-10-29T14:08:19-07:00</lastmod></url><url><loc>/blog/b
 [...]
\ No newline at end of file
+<?xml version="1.0" encoding="utf-8" standalone="yes"?><urlset 
xmlns="http://www.sitemaps.org/schemas/sitemap/0.9"; 
xmlns:xhtml="http://www.w3.org/1999/xhtml";><url><loc>/blog/beam-2.25.0/</loc><lastmod>2020-10-29T14:08:19-07:00</lastmod></url><url><loc>/categories/blog/</loc><lastmod>2020-10-29T14:08:19-07:00</lastmod></url><url><loc>/blog/</loc><lastmod>2020-10-29T14:08:19-07:00</lastmod></url><url><loc>/categories/</loc><lastmod>2020-10-29T14:08:19-07:00</lastmod></url><url><loc>/blog/b
 [...]
\ No newline at end of file

Reply via email to