Uploaded image for project: 'Beam'
  1. Beam
  2. BEAM-11326

Enforce deadlines during splitAtFraction in BigQueryStorageStreamSource

Details

    • Bug
    • Status: Resolved
    • P2
    • Resolution: Fixed
    • 2.25.0
    • 2.29.0
    • io-java-gcp
    • None

    Description

      In the [BigQueryStorageStreamSource](https://github.com/apache/beam/blob/3bb232fb098700de408f574585dfe74bbaff7230/sdks/java/io/google-cloud-platform/src/main/java/org/apache/beam/sdk/io/gcp/bigquery/BigQueryStorageStreamSource.java#L279), we perform two RPCs during splitAtFraction: one to split the current stream into primary and residual child streams, and a second to validate the reader's current offset within the primary stream to ensure that the reader has not advanced beyond the split point during the split process. For sufficiently large streams – particularly when combined with selective predicate filters – this process can take longer than the 2 minute limit beyond which the Dataflow runtime will consider the worker to be lost and can ultimately cause pipeline execution failures.

      The short-term solution is to implement a consistent deadline for both RPCs which will fail the split operation if it takes too long. This does not address the potential for sub-optimal parallelism and dynamic work rebalancing, but it should at least prevent pipeline execution failures.

      Attachments

        Issue Links

          Activity

            People

              kjung520 Kenneth Jung
              kjung520 Kenneth Jung
              Votes:
              0 Vote for this issue
              Watchers:
              3 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved:

                Time Tracking

                  Estimated:
                  Original Estimate - Not Specified
                  Not Specified
                  Remaining:
                  Remaining Estimate - 0h
                  0h
                  Logged:
                  Time Spent - 2.5h
                  2.5h