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

yhu pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/beam.git


The following commit(s) were added to refs/heads/master by this push:
     new bc42bb9d3ef Create MemoryMonitorOptions class for GC thrashing 
parameter  (#27867)
bc42bb9d3ef is described below

commit bc42bb9d3ef985c2790a3f3477b634bcc7fae4d3
Author: Bruno Volpato <bvolp...@google.com>
AuthorDate: Tue Aug 8 16:00:20 2023 -0400

    Create MemoryMonitorOptions class for GC thrashing parameter  (#27867)
    
    * Create a separate class MemoryMonitorOptions for 
GCThrashingPercentagePerPeriod
    
    * Fix typo
    
    * Remove unnecessary MemoryMonitorOptions in the context here
---
 .../options/DataflowPipelineDebugOptions.java      |  4 ++-
 .../beam/sdk/options/MemoryMonitorOptions.java     | 39 ++++++++++++++++++++++
 .../apache/beam/sdk/options/SdkHarnessOptions.java | 18 +---------
 3 files changed, 43 insertions(+), 18 deletions(-)

diff --git 
a/runners/google-cloud-dataflow-java/src/main/java/org/apache/beam/runners/dataflow/options/DataflowPipelineDebugOptions.java
 
b/runners/google-cloud-dataflow-java/src/main/java/org/apache/beam/runners/dataflow/options/DataflowPipelineDebugOptions.java
index 3cebd3eb653..709009f8c80 100644
--- 
a/runners/google-cloud-dataflow-java/src/main/java/org/apache/beam/runners/dataflow/options/DataflowPipelineDebugOptions.java
+++ 
b/runners/google-cloud-dataflow-java/src/main/java/org/apache/beam/runners/dataflow/options/DataflowPipelineDebugOptions.java
@@ -28,6 +28,7 @@ import org.apache.beam.sdk.options.DefaultValueFactory;
 import org.apache.beam.sdk.options.Description;
 import org.apache.beam.sdk.options.ExperimentalOptions;
 import org.apache.beam.sdk.options.Hidden;
+import org.apache.beam.sdk.options.MemoryMonitorOptions;
 import org.apache.beam.sdk.options.PipelineOptions;
 import org.apache.beam.sdk.util.InstanceBuilder;
 
@@ -39,7 +40,8 @@ import org.apache.beam.sdk.util.InstanceBuilder;
     "[Internal] Options used to control execution of the Dataflow SDK for "
         + "debugging and testing purposes.")
 @Hidden
-public interface DataflowPipelineDebugOptions extends ExperimentalOptions, 
PipelineOptions {
+public interface DataflowPipelineDebugOptions
+    extends ExperimentalOptions, MemoryMonitorOptions, PipelineOptions {
 
   /**
    * The root URL for the Dataflow API. {@code dataflowEndpoint} can override 
this value if it
diff --git 
a/sdks/java/core/src/main/java/org/apache/beam/sdk/options/MemoryMonitorOptions.java
 
b/sdks/java/core/src/main/java/org/apache/beam/sdk/options/MemoryMonitorOptions.java
new file mode 100644
index 00000000000..fc9bd3bc800
--- /dev/null
+++ 
b/sdks/java/core/src/main/java/org/apache/beam/sdk/options/MemoryMonitorOptions.java
@@ -0,0 +1,39 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.beam.sdk.options;
+
+/** Options that are used to control the Memory Monitor. */
+@Description("Options that are used to control the Memory Monitor.")
+public interface MemoryMonitorOptions extends PipelineOptions {
+
+  /**
+   * The GC thrashing threshold percentage. A given period of time is 
considered "thrashing" if this
+   * percentage of CPU time is spent in garbage collection. Harness will force 
fail tasks after
+   * sustained periods of thrashing.
+   *
+   * <p>If {@literal 100} is given as the value, MemoryMonitor will be 
disabled.
+   */
+  @Description(
+      "The GC thrashing threshold percentage. A given period of time is 
considered \"thrashing\" if this "
+          + "percentage of CPU time is spent in garbage collection. Dataflow 
will force fail tasks after "
+          + "sustained periods of thrashing.")
+  @Default.Double(50.0)
+  Double getGCThrashingPercentagePerPeriod();
+
+  void setGCThrashingPercentagePerPeriod(Double value);
+}
diff --git 
a/sdks/java/core/src/main/java/org/apache/beam/sdk/options/SdkHarnessOptions.java
 
b/sdks/java/core/src/main/java/org/apache/beam/sdk/options/SdkHarnessOptions.java
index d1ccaa22c85..5d0c52e8a65 100644
--- 
a/sdks/java/core/src/main/java/org/apache/beam/sdk/options/SdkHarnessOptions.java
+++ 
b/sdks/java/core/src/main/java/org/apache/beam/sdk/options/SdkHarnessOptions.java
@@ -35,7 +35,7 @@ import org.checkerframework.checker.index.qual.NonNegative;
 
 /** Options that are used to control configuration of the SDK harness. */
 @Description("Options that are used to control configuration of the SDK 
harness.")
-public interface SdkHarnessOptions extends PipelineOptions {
+public interface SdkHarnessOptions extends PipelineOptions, 
MemoryMonitorOptions {
   /** The set of log levels that can be used in the SDK harness. */
   enum LogLevel {
     /** Special level used to turn off logging. */
@@ -193,22 +193,6 @@ public interface SdkHarnessOptions extends PipelineOptions 
{
 
   void setMaxCacheMemoryUsageMbClass(Class<? extends MaxCacheMemoryUsageMb> 
kls);
 
-  /**
-   * The GC thrashing threshold percentage. A given period of time is 
considered "thrashing" if this
-   * percentage of CPU time is spent in garbage collection. Harness will force 
fail tasks after
-   * sustained periods of thrashing.
-   *
-   * <p>If {@literal 100} is given as the value, MemoryMonitor will be 
disabled.
-   */
-  @Description(
-      "The GC thrashing threshold percentage. A given period of time is 
considered \"thrashing\" if this "
-          + "percentage of CPU time is spent in garbage collection. Dataflow 
will force fail tasks after "
-          + "sustained periods of thrashing.")
-  @Default.Double(50.0)
-  Double getGCThrashingPercentagePerPeriod();
-
-  void setGCThrashingPercentagePerPeriod(Double value);
-
   /**
    * A {@link DefaultValueFactory} which constructs an instance of the class 
specified by {@link
    * #getMaxCacheMemoryUsageMbClass maxCacheMemoryUsageMbClass} to compute the 
maximum amount of

Reply via email to