Skip to content

fix: only require barrier mode if more than one partition is trained on - #1912

Closed
Markus Cozowicz (eisber) wants to merge 2 commits into
microsoft:masterfrom
eisber:marcozo/barrier-fix
Closed

fix: only require barrier mode if more than one partition is trained on#1912
Markus Cozowicz (eisber) wants to merge 2 commits into
microsoft:masterfrom
eisber:marcozo/barrier-fix

Conversation

@eisber

Copy link
Copy Markdown
Collaborator

What changes are proposed in this pull request?

only require barrier mode if more than one partition is trained on

@eisber

Copy link
Copy Markdown
Collaborator Author

/azp run

@github-actions

Copy link
Copy Markdown

Hey Markus Cozowicz (@eisber) 👋!
Thank you so much for contributing to our repository 🙌.
Someone from SynapseML Team will be reviewing this pull request soon.

We use semantic commit messages to streamline the release process.
Before your pull request can be merged, you should make sure your first commit and PR title start with a semantic prefix.
This helps us to create release messages and credit you for your hard work!

Examples of commit messages with semantic prefixes:

  • fix: Fix LightGBM crashes with empty partitions
  • feat: Make HTTP on Spark back-offs configurable
  • docs: Update Spark Serving usage
  • build: Add codecov support
  • perf: improve LightGBM memory usage
  • refactor: make python code generation rely on classes
  • style: Remove nulls from CNTKModel
  • test: Add test coverage for CNTKModel

To test your commit locally, please follow our guild on building from source.
Check out the developer guide for additional guidance on testing your change.

@azure-pipelines

Copy link
Copy Markdown
Azure Pipelines successfully started running 1 pipeline(s).

@codecov-commenter

Codecov Comments Bot (codecov-commenter) commented Apr 11, 2023

Copy link
Copy Markdown

Codecov Report

Merging #1912 (ba4856b) into master (3c09702) will decrease coverage by 0.55%.
The diff coverage is 100.00%.

@@            Coverage Diff             @@
##           master    #1912      +/-   ##
==========================================
- Coverage   86.81%   86.27%   -0.55%     
==========================================
  Files         301      301              
  Lines       15783    15783              
  Branches      848      842       -6     
==========================================
- Hits        13702    13616      -86     
- Misses       2081     2167      +86     
Impacted Files Coverage Δ
.../azure/synapse/ml/vw/VowpalWabbitBaseLearner.scala 86.20% <100.00%> (ø)

... and 10 files with indirect coverage changes

Help us with your feedback. Take ten seconds to tell us how you rate us. Have a feature suggestion? Share it here.

@mhamilton723

Copy link
Copy Markdown
Contributor

/azp run

@azure-pipelines

Copy link
Copy Markdown
Azure Pipelines successfully started running 1 pipeline(s).

Rana Singh (ranadeepsingh) added a commit to ranadeepsingh/SynapseML that referenced this pull request Aug 1, 2026
## Summary
Use barrier execution only when VowpalWabbit training enables it and the prepared dataset has more than one partition. Add Spark-stage execution-path assertions for enabled multi-partition, disabled multi-partition, and enabled single-partition training.

## Prompting Intent
Revalidate the current VowpalWabbitBaseLearner behavior, restore the minimal source-compatible rule proposed by the ancient PR, prove it through TDD and targeted VW validation, and keep the change isolated from LightGBM.

## Linked Sources
- Original proposal: microsoft#1912
- Initial CI failure: https://msdata.visualstudio.com/b9b2accc-2d1c-45b3-9d24-0eb5d78cc47f/_build/results?buildId=229206650
- Repository review guidance: .github/skills/code-review/SKILL.md
- Local validation guidance: .github/skills/synapseml-local-setup/SKILL.md

## Rationale
Keep the public API and multi-partition synchronization behavior unchanged with a short-circuit partition-count guard. Observe Spark stage metadata rather than adding a test-only PipelineStage subclass, and use a marker job to drain asynchronous listener events deterministically; this proves the selected execution path without entering global stage discovery.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Rana Singh (ranadeepsingh) added a commit to ranadeepsingh/SynapseML that referenced this pull request Aug 7, 2026
## Summary
Use barrier execution only when VowpalWabbit training enables it and the prepared dataset has more than one partition. Add Spark-stage execution-path assertions for enabled multi-partition, disabled multi-partition, and enabled single-partition training.

## Prompting Intent
Revalidate the current VowpalWabbitBaseLearner behavior, restore the minimal source-compatible rule proposed by the ancient PR, prove it through TDD and targeted VW validation, and keep the change isolated from LightGBM.

## Linked Sources
- Original proposal: microsoft#1912
- Initial CI failure: https://msdata.visualstudio.com/b9b2accc-2d1c-45b3-9d24-0eb5d78cc47f/_build/results?buildId=229206650
- Repository review guidance: .github/skills/code-review/SKILL.md
- Local validation guidance: .github/skills/synapseml-local-setup/SKILL.md

## Rationale
Keep the public API and multi-partition synchronization behavior unchanged with a short-circuit partition-count guard. Observe Spark stage metadata rather than adding a test-only PipelineStage subclass, and use a marker job to drain asynchronous listener events deterministically; this proves the selected execution path without entering global stage discovery.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Rana Singh (ranadeepsingh) added a commit that referenced this pull request Aug 7, 2026
## Summary
Use barrier execution only when VowpalWabbit training enables it and the prepared dataset has more than one partition. Add Spark-stage execution-path assertions for enabled multi-partition, disabled multi-partition, and enabled single-partition training.

## Prompting Intent
Revalidate the current VowpalWabbitBaseLearner behavior, restore the minimal source-compatible rule proposed by the ancient PR, prove it through TDD and targeted VW validation, and keep the change isolated from LightGBM.

## Linked Sources
- Original proposal: #1912
- Initial CI failure: https://msdata.visualstudio.com/b9b2accc-2d1c-45b3-9d24-0eb5d78cc47f/_build/results?buildId=229206650
- Repository review guidance: .github/skills/code-review/SKILL.md
- Local validation guidance: .github/skills/synapseml-local-setup/SKILL.md

## Rationale
Keep the public API and multi-partition synchronization behavior unchanged with a short-circuit partition-count guard. Observe Spark stage metadata rather than adding a test-only PipelineStage subclass, and use a marker job to drain asynchronous listener events deterministically; this proves the selected execution path without entering global stage discovery.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
@ranadeepsingh

Copy link
Copy Markdown
Collaborator

Superseded by #2592, which rebased this behavior onto current master, added targeted single- and multi-partition regression coverage, passed validation, and has now merged. Closing this historical PR to avoid duplicate work.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

6 participants