You are viewing a plain text version of this content. The canonical link for it is here.
Posted to github@beam.apache.org by "tkaymak (via GitHub)" <gi...@apache.org> on 2026/08/01 05:27:20 UTC

[PR] [Spark 4] Streaming runner proof of concept, unbounded sources, windowed GBK and stateful ParDo on transformWithState [beam]

tkaymak opened a new pull request, #39576:
URL: https://github.com/apache/beam/pull/39576

   **Draft, opened for design discussion rather than for merging as one lump.** See "How I would like to split this" at the bottom.
   
   Addresses #36841.
   
   ## What this is
   
   The Spark 4 runner merged in #38255 is batch only. `SparkStructuredStreamingRunner` rejects streaming outright. This branch is a proof of concept that Spark 4's `transformWithState` can host the Beam streaming model, and it turns out it can, including several chained stateful operators inside a single Structured Streaming query with a watermark that propagates correctly across them.
   
   I would like to agree on the approach before splitting this into reviewable pieces.
   
   ## Approach
   
   **Dispatch seam.** The shared base gains `translation/PipelineTranslatorFactory.create(boolean streaming)`, which throws for streaming and names the Spark 4 module. `runners/spark/4/src` shadows that one file through the existing source override copy and returns a streaming translator instead. Every piece of `transformWithState`, `StreamingQuery` and DataSourceV2 streaming code lives only under `runners/spark/4/src`, because the shared base still compiles against Spark 3.5 where `transformWithState` does not exist. All shared base edits are behaviour preserving for Spark 3.
   
   **Source.** A DataSourceV2 `TableProvider` wrapping any `UnboundedSource`. Offsets are opaque epoch counters, the driver never reads them. Executor side `PartitionReader`s hold `UnboundedReader`s in a static cache and resume from a locally cached `CheckpointMark`, in the style of the legacy `MicrobatchSource`. The row schema is `payload BINARY` plus `eventTimestamp TIMESTAMP`, so no new Catalyst encoder work was needed.
   
   **Watermark.** Declared exactly once, in the read translator, on the raw rows before the typed decode. Spark forbids re-declaring it. The `EventTimeWatermark` plan node survives the projection and the typed map, which was the main thing I was unsure about going in. There is a test that asserts this at both the plan level and at runtime.
   
   **Stateful execution.** One generic `transformWithState` operator, `StatefulProcessor<byte[], byte[], byte[]>` with `Encoders.BINARY()` throughout, hosting any `DoFn` through `DoFnRunners`. Stateful ParDo goes through `simpleRunner` plus `defaultStatefulDoFnRunner`, GBK through `GroupAlsoByWindowViaWindowSetNewDoFn` plus `SystemReduceFn.buffering` and `KeyedWorkItems`, which follows the Flink `WindowDoFnOperator` recipe. State is a port of the legacy `SparkStateInternals` onto a single `MapState<String, byte[]>` keyed by namespace plus tag. That layout is the only one I found that can host `ReduceFnRunner`'s dynamically created system tags. Per `@StateId` column families would be faster and are an obvious follow up.
   
   **Lifecycle.** `StreamingEvaluationContext` starts one query per leaf against the `noop` sink and blocks until all are terminal. `cancel()` reaches it through an `AtomicReference` set by the async translate task. Tests terminate through an idle stop listener that gracefully stops a query after N consecutive empty micro batches.
   
   ## Results
   
   | Suite | Tests | Failures | Skipped |
   |---|---|---|---|
   | `:runners:spark:3:test` | 200 | 0 | 7 |
   | `:runners:spark:4:test` | 226 | 0 | 5 |
   
   121 of the Spark 4 tests are structured streaming. The streaming suite was run four separate times with identical results.
   
   Asserted end to end: stateless ParDo, fixed and sliding window GBK, late data dropping, stateful dedup with an event time timer, chained stateful then windowed sum, and pipeline lifecycle through RUNNING, DONE and CANCELLED.
   
   The chained case is the one that matters, and it is asserted against Spark's own `StreamingQueryProgress` rather than only against the computed values: one query id across every batch, exactly two `transformWithStateExec` operators per batch, and four strictly increasing watermarks. That rules out two separate queries that happen to sum correctly, and it rules out everything landing in one batch where all data is trivially on time.
   
   ## One finding worth flagging on its own
   
   Spark expires a `transformWithState` wake up at `expiry <= batchWatermark`. Beam fires an event time timer only once the watermark is **strictly** past it, and `AfterWatermark.pastEndOfWindow` is strict as well. Handing Beam a timer one millisecond early is therefore not merely early, it is destructive: the trigger declines, the runner is entitled to assume the timer will not be redelivered, and the on time pane is silently lost with no error anywhere. The end of window timer of a fixed window sits at exactly `window.maxTimestamp()`, so this hits most windows.
   
   Fixed by bounding the fire set at `min(firedExpiry, watermark - 1)` and re-arming the withheld timer at `firedExpiry + 1`. Anyone else bridging Beam timers onto `transformWithState` will hit this.
   
   ## Rejected at translation time, with a named message
   
   Merging and session windows, custom triggers including `AfterWatermark` with early or late firings, accumulating panes, processing time timers, `@OnWindowExpiration`, `@RequiresTimeSortedInput`, side inputs on a stateful ParDo, non deterministic key coders.
   
   ## Known limitations
   
   1. **No `PAssert` on the streaming path.** No source emits a final positive infinity watermark, so panes never finalise. Streaming tests assert against a static collector after `waitUntilFinish`. I would like input on what reviewers expect here, since this is the biggest departure from how the rest of Beam tests runners.
   2. **Weak checkpoint recovery.** Readers resume from a per JVM static cache and the source id is a fresh UUID per translation, so restart from a previous run's checkpoint is not supported. Accepted POC scope, but it is the largest gap between this and something shippable.
   3. **One micro batch of timer latency.** The watermark inside a stateful operator is the batch start watermark, so an end of window timer fires one micro batch after the data crossed the window end. A latency floor, not a correctness issue.
   4. **`stop()` does not drain.** An in flight micro batch finishes, anything not yet pulled is left unprocessed.
   5. Out of scope by design: session windows, custom triggers, accumulating panes, streaming side inputs, Kafka, continuous mode, portability, streaming `Combine.PerKey`.
   
   ## Two smaller things in here
   
   `SparkSessionFactory` now registers `StateSchemaMetadata` and `MemoryWriterCommitMessage` with Kryo, by name since the shared base also compiles against Spark 3. Spark 4 broadcasts a `StateSchemaMetadata` for every `transformWithState` query, so without this any stateful streaming pipeline dies on its first micro batch under `spark.kryo.registrationRequired=true`.
   
   `runners/spark/4/build.gradle` narrows `exclude "**/translation/streaming/**"` to `exclude "**/runners/spark/translation/streaming/**"`. The old glob also matched `structuredstreaming/translation/streaming`, so it would have silently dropped every new test in this branch from the Spark 4 module.
   
   ## Not done yet, deliberately
   
   - No CHANGES.md entry, waiting on the outcome of this discussion.
   - Four tests in the shared base still carry `@Ignore("TODO: Reactivate with streaming.")`. They cannot be un-ignored in place, since the shared base test tree is compiled by both modules and Spark 3 still correctly throws. Reactivating them means moving them into the Spark 4 override tree. Happy to do that, it just needs a decision on where they should live.
   
   ## How I would like to split this
   
   Assuming the approach is acceptable, five PRs, each independently green:
   
   1. Dispatch seam, options, lifecycle hooks, build glob fix. Shared base only, no behaviour change for Spark 3.
   2. Kryo registrations for Spark's streaming internals. Independent and self justifying.
   3. DataSourceV2 micro batch source plus tests.
   4. State and timer bridge plus unit tests. This one carries the timer fix described above and deserves its own attention.
   5. Translators, streaming evaluation context, end to end tests.
   
   Slices 4 and 5 would benefit from a reviewer who knows Spark's Structured Streaming internals, not only Beam.
   


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: github-unsubscribe@beam.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


Re: [PR] [Spark 4] Streaming runner proof of concept, unbounded sources, windowed GBK and stateful ParDo on transformWithState [beam]

Posted by "tkaymak (via GitHub) via github" <gi...@beam.apache.org>.
tkaymak commented on PR #39576:
URL: https://github.com/apache/beam/pull/39576#issuecomment-6636631909

   Everything from this proof of concept is upstreamed in #40766, #40932, #40967 and the earlier slices, closing. Remaining gaps are tracked in #36841.


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: github-unsubscribe@beam.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


Re: [PR] [Spark 4] Streaming runner proof of concept, unbounded sources, windowed GBK and stateful ParDo on transformWithState [beam]

Posted by "tkaymak (via GitHub)" <gi...@apache.org>.
tkaymak commented on PR #39576:
URL: https://github.com/apache/beam/pull/39576#issuecomment-5356251845

   Update for reviewers, two rounds of changes since the review request.
   
   First, the four remarks from my own review pass are addressed: the Kryo registrations for Spark's streaming internals moved to the end of the registrator so auto assigned ids stay identical across Spark 3 and 4, the fallback temporary checkpoint directory is cleaned up after evaluation, the throwing checks in the stateful streaming translator now live in a named rejectUnsupported method with the contract documented, and awaitTermination polls the leaf queries round robin so a failing query surfaces immediately and stops its siblings.
   
   Second, the biggest known gap is closed: checkpoint recovery is now durable. The source id is derived deterministically from the read transform's full name, the first run pins its split list under the checkpoint location (Beam sources do not guarantee deterministic splitting), each partition reader persists its checkpoint mark per batch epoch atomically through the Hadoop filesystem, and a restarted run resumes from the newest mark at or before its batch start epoch. Semantics are at least once, a mark is written when a batch finishes reading rather than transactionally with Spark's commit, that caveat is documented on BeamReaderCache. A new end to end test restarts a pipeline against the same checkpoint location with a cleared reader cache and proves it resumes instead of re reading.
   
   Full suite locally: 234 tests, 0 failures, 5 pre existing skips.


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: github-unsubscribe@beam.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


Re: [PR] [Spark 4] Streaming runner proof of concept, unbounded sources, windowed GBK and stateful ParDo on transformWithState [beam]

Posted by "tkaymak (via GitHub)" <gi...@apache.org>.
tkaymak commented on PR #39576:
URL: https://github.com/apache/beam/pull/39576#issuecomment-5363115976

   Run Java_Spark_Versions PreCommit


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: github-unsubscribe@beam.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


Re: [PR] [Spark 4] Streaming runner proof of concept, unbounded sources, windowed GBK and stateful ParDo on transformWithState [beam]

Posted by "tkaymak (via GitHub)" <gi...@apache.org>.
tkaymak commented on PR #39576:
URL: https://github.com/apache/beam/pull/39576#issuecomment-5341463035

   Hi @Eliaaazzz, happy to share where this is heading.
   
   The thinking behind the POC: Spark 4 added transformWithState, and it turned out flexible enough to host the Beam streaming model directly. The POC proves the core claim, two chained Beam stateful operators run inside a single Structured Streaming query with a watermark that propagates correctly between them. So yes, this is the intended direction, and I would not build new work on the DStream path.
   
   Once there is agreement on the approach, the plan is to split this branch into five smaller PRs: the dispatch seam and options, the Kryo registrations, the DataSourceV2 unbounded source, the state and timer bridge, and the translators with the end to end tests.
   
   Concrete places where help would be useful right now:
   
   1. Tests. The shared base has four tests marked "TODO: Reactivate with streaming." plus SimpleSourceTest.testUnboundedSource. They cannot be enabled in place because Spark 3 compiles the same test tree and still correctly rejects streaming. Moving them into the Spark 4 override tree is a nice contained task.
   2. The PAssert story. No source emits a final infinity watermark, so panes never finalize and PAssert does not work on this path. All streaming tests currently assert against a static collector. Reviewers will ask about this, so ideas or a prototype here would be valuable.
   3. Checkpoint recovery. Readers currently resume from a per JVM cache, so restarting from a checkpoint written by an earlier run is not supported. This is the biggest gap between the POC and something shippable.
   
   Streaming side inputs, your original interest, are deliberately out of scope for the POC, but they are a natural follow up phase once this foundation is agreed. Session windows and full trigger support are planned as later phases too. If you want to start somewhere, I would suggest number 1, it is contained and it teaches you the test setup you would need for anything bigger.


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: github-unsubscribe@beam.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


Re: [PR] [Spark 4] Streaming runner proof of concept, unbounded sources, windowed GBK and stateful ParDo on transformWithState [beam]

Posted by "tkaymak (via GitHub)" <gi...@apache.org>.
tkaymak commented on PR #39576:
URL: https://github.com/apache/beam/pull/39576#issuecomment-5639386681

   Slice 4 merged as #40090. Next cuts from this branch are the state package and the GroupByKey and stateful ParDo translators. The branch stays frozen as the reference, its io layer and evaluation context are superseded by master.


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: github-unsubscribe@beam.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


Re: [PR] [Spark 4] Streaming runner proof of concept, unbounded sources, windowed GBK and stateful ParDo on transformWithState [beam]

Posted by "tkaymak (via GitHub)" <gi...@apache.org>.
tkaymak commented on PR #39576:
URL: https://github.com/apache/beam/pull/39576#issuecomment-5483311479

   Slice 1 is merged, thank you @Abacn, and good to see the roadmap page now naming complete Structured Streaming support. Slice 2 is out: #39939, the Kryo registrations for Spark's streaming internals, including the id parity reasoning. Slice 3, the DataSourceV2 unbounded source, is next.


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: github-unsubscribe@beam.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


Re: [PR] [Spark 4] Streaming runner proof of concept, unbounded sources, windowed GBK and stateful ParDo on transformWithState [beam]

Posted by "tkaymak (via GitHub)" <gi...@apache.org>.
tkaymak commented on PR #39576:
URL: https://github.com/apache/beam/pull/39576#issuecomment-5438465052

   Run Java PreCommit


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: github-unsubscribe@beam.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


Re: [PR] [Spark 4] Streaming runner proof of concept, unbounded sources, windowed GBK and stateful ParDo on transformWithState [beam]

Posted by "tkaymak (via GitHub)" <gi...@apache.org>.
tkaymak commented on PR #39576:
URL: https://github.com/apache/beam/pull/39576#issuecomment-5362273244

   PAssert update. Streaming PAssert now works in non global windows too, commit e991c5d7712.
   
   The earlier commit made PAssert resolve in the global window by emitting an end of stream sentinel that advances the watermark to TIMESTAMP_MAX_VALUE. Non global windows still failed with an empty assertion iterable. The cause was not the fixed windows themselves, PAssert rewindows everything into the global window and chains two GroupByKeys, and the late data filter in front of the second one judged the global window expired because LateDataUtils truncates garbage collection times to the end of the global window while the sentinel watermark sits one day past it. The pane flushed by the first GroupByKey was dropped on arrival at the second.
   
   The fix clamps the watermark used for arrival side expiry decisions to the end of the global window, through a delegating TimerInternals view in the step context. Timer firing and the ReduceFnRunner triggers keep the real watermark. Late data semantics for finite windows are unchanged, the clamp only takes effect once the watermark is already past the end of the global window, which only the sentinel can cause.
   
   Tests: the fixed windows PAssert case is restored, and both window modes now have negative tests proving a wrong expectation genuinely fails the pipeline. Full local streaming suites, 61 tests, 0 failures.
   
   Known remaining gap, documented rather than hidden: chained groupings in finite windows that are flushed only by the final sentinel would still drop their in flight panes. PAssert never builds that shape, it always rewindows to global first. The clean general solution is per operator output watermark holds, which is on the roadmap for the productionization phase.


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: github-unsubscribe@beam.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


Re: [PR] [Spark 4] Streaming runner proof of concept, unbounded sources, windowed GBK and stateful ParDo on transformWithState [beam]

Posted by "gemini-code-assist[bot] (via GitHub)" <gi...@apache.org>.
gemini-code-assist[bot] commented on PR #39576:
URL: https://github.com/apache/beam/pull/39576#issuecomment-5149983542

   > [!CAUTION]
   > The consumer version of Gemini Code Assist on GitHub has been sunset. All code review activity has officially ceased.
   


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: github-unsubscribe@beam.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


Re: [PR] [Spark 4] Streaming runner proof of concept, unbounded sources, windowed GBK and stateful ParDo on transformWithState [beam]

Posted by "tkaymak (via GitHub)" <gi...@apache.org>.
tkaymak commented on PR #39576:
URL: https://github.com/apache/beam/pull/39576#issuecomment-5341477524

   R: @Abacn for the runner and build mechanics, you reviewed the Spark 4 batch runner PRs this builds on.
   
   R: @kennknowles for the Beam model side, watermark propagation, trigger semantics and the state and timer bridge on transformWithState. The most interesting finding for you is probably the timer off by one described in the PR, Spark fires a wake up at expiry equal to the watermark while the Beam model requires the watermark to be strictly past the timer, which silently dropped the on time pane until we bounded the fire set.
   
   This is a draft to get agreement on the direction first, the plan is to split it into five smaller PRs afterwards.


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: github-unsubscribe@beam.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


Re: [PR] [Spark 4] Streaming runner proof of concept, unbounded sources, windowed GBK and stateful ParDo on transformWithState [beam]

Posted by "tkaymak (via GitHub)" <gi...@apache.org>.
tkaymak commented on PR #39576:
URL: https://github.com/apache/beam/pull/39576#issuecomment-5363115813

   Run Java PreCommit


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: github-unsubscribe@beam.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


Re: [PR] [Spark 4] Streaming runner proof of concept, unbounded sources, windowed GBK and stateful ParDo on transformWithState [beam]

Posted by "Eliaaazzz (via GitHub)" <gi...@apache.org>.
Eliaaazzz commented on PR #39576:
URL: https://github.com/apache/beam/pull/39576#issuecomment-5217598039

     Hi @tkaymak, I found this PR while looking into Spark streaming work.
   
     I had been planning to work on Spark portable streaming state and side inputs via #20396 and
     #20395, but it looks like new streaming work is moving toward the Spark 4 Structured Streaming
     runner rather than the older DStream path.
   
     I’m reading through this POC now so I do not duplicate work or build against the wrong runner
     path. If this approach is still the intended direction, is there a smaller slice where outside
     help would be useful?
   
     My initial interest was state/side-input support, but I see this POC already covers stateful
     ParDo and deliberately leaves streaming side inputs out of scope. I’d be happy to help with
     tests, extracting one of the proposed smaller PRs, or another piece that would be useful.


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: github-unsubscribe@beam.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


Re: [PR] [Spark 4] Streaming runner proof of concept, unbounded sources, windowed GBK and stateful ParDo on transformWithState [beam]

Posted by "tkaymak (via GitHub)" <gi...@apache.org>.
tkaymak commented on PR #39576:
URL: https://github.com/apache/beam/pull/39576#issuecomment-5509037956

   Slice 3 is out: #39971, the DataSourceV2 unbounded source with durable checkpoint recovery. It consumes the maxRecordsPerBatch option from #39952 with values below 1 meaning no limit. Two slices remain, the state and timer bridge and the translators with the end to end tests.


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: github-unsubscribe@beam.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


Re: [PR] [Spark 4] Streaming runner proof of concept, unbounded sources, windowed GBK and stateful ParDo on transformWithState [beam]

Posted by "tkaymak (via GitHub) via github" <gi...@beam.apache.org>.
tkaymak closed pull request #39576: [Spark 4] Streaming runner proof of concept, unbounded sources, windowed GBK and stateful ParDo on transformWithState
URL: https://github.com/apache/beam/pull/39576


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: github-unsubscribe@beam.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


Re: [PR] [Spark 4] Streaming runner proof of concept, unbounded sources, windowed GBK and stateful ParDo on transformWithState [beam]

Posted by "tkaymak (via GitHub)" <gi...@apache.org>.
tkaymak commented on PR #39576:
URL: https://github.com/apache/beam/pull/39576#issuecomment-5438673902

   Status update. This POC branch is now feature frozen, no more commits beyond the trigger and lateness support that landed this week. The runner now covers allowed lateness, late firings via AfterPane.elementCountAtLeast(1), accumulating panes, durable checkpoint restart and PAssert in global and non global windows, each guarded by tests that prove the unsupported shapes still fail loudly.
   
   Next step is the split announced in the description. The first slice, the streaming dispatch seam, changes nothing for Spark 3 and is coming as a regular PR shortly. I will link it here. This draft stays open as the end to end evidence for the discussion.


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: github-unsubscribe@beam.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


Re: [PR] [Spark 4] Streaming runner proof of concept, unbounded sources, windowed GBK and stateful ParDo on transformWithState [beam]

Posted by "tkaymak (via GitHub)" <gi...@apache.org>.
tkaymak commented on PR #39576:
URL: https://github.com/apache/beam/pull/39576#issuecomment-5439809022

   The first slice is out: #39906, the streaming dispatch seam. No behavior change for either Spark version, full local gates green. The remaining slices follow in the order listed there once it lands.


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: github-unsubscribe@beam.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


Re: [PR] [Spark 4] Streaming runner proof of concept, unbounded sources, windowed GBK and stateful ParDo on transformWithState [beam]

Posted by "tkaymak (via GitHub)" <gi...@apache.org>.
tkaymak commented on PR #39576:
URL: https://github.com/apache/beam/pull/39576#issuecomment-5617747372

   Slice 4, the stateless streaming translator, is #40090. The io/streaming layout on this branch predates the consolidation merged in #39971, the source there is the reference now. This branch stays as the end to end reference for the remaining slice and gets rebased once the translator lands.


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: github-unsubscribe@beam.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


Re: [PR] [Spark 4] Streaming runner proof of concept, unbounded sources, windowed GBK and stateful ParDo on transformWithState [beam]

Posted by "tkaymak (via GitHub)" <gi...@apache.org>.
tkaymak commented on PR #39576:
URL: https://github.com/apache/beam/pull/39576#issuecomment-5356504844

   Run Java_Spark_Versions PreCommit


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: github-unsubscribe@beam.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


Re: [PR] [Spark 4] Streaming runner proof of concept, unbounded sources, windowed GBK and stateful ParDo on transformWithState [beam]

Posted by "github-actions[bot] (via GitHub)" <gi...@apache.org>.
github-actions[bot] commented on PR #39576:
URL: https://github.com/apache/beam/pull/39576#issuecomment-5341493372

   Stopping reviewer notifications for this pull request: review requested by someone other than the bot, ceding control. If you'd like to restart, comment `assign set of reviewers`


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: github-unsubscribe@beam.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


Re: [PR] [Spark 4] Streaming runner proof of concept, unbounded sources, windowed GBK and stateful ParDo on transformWithState [beam]

Posted by "tkaymak (via GitHub)" <gi...@apache.org>.
tkaymak commented on PR #39576:
URL: https://github.com/apache/beam/pull/39576#issuecomment-5341417632

   Hi @Eliaaazzz - so far I have not found someone else to review this, yet. I was building it on-top of the new Structured Streaming as it looks closer to the Beam Model in my view. (And DStream is kind of the old way of doing it like you said.) I would need someone from the streaming side of things take a look at this to see if there is an agreement.


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: github-unsubscribe@beam.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org