zhangshenghang opened a new pull request, #11500:
URL: https://github.com/apache/seatunnel/pull/11500

   ## Changes
   
   This PR contains two changes:
   
   ### 1. [Zeta] Default slot mode: dynamic -> static (breaking)
   
   Flip `dynamic-slot` default from `true` to `false` so Zeta defaults to 
**static slots** (worker pre-creates a fixed count at startup, default `2 × 
availableProcessors()` when `slot-num` is unset) instead of on-demand minting.
   
   - Code: `ServerConfigOptions.DYNAMIC_SLOT` default flipped; 
`SlotServiceConfig` inherits automatically.
   - Shipped YAMLs flipped to `dynamic-slot: false`: `seatunnel-engine-common`, 
`config/`, `deploy/kubernetes/`.
   - Docs (en + zh): static as default, dynamic as opt-in 
(separated/hybrid-cluster-deployment, resource-management, k8s-configuration).
   - Added `### Engine / Zeta` entry to `incompatible-changes.md` (en + zh) 
with migration guide.
   
   **Why `slot-num` default (`2 × CPU`) is unchanged:** in static mode 
`slot-num` only caps concurrent task groups per worker — static slots don't 
truly partition CPU/memory (each slot is a soft accounting slice of the heap; 
tasks request `CPU=0, Memory=0`, so the slice never binds matching). A fixed 
number oversubscribes small pods / underutilizes large boxes; a memory formula 
has no fixed denominator.
   
   **Breaking:**
   - Jobs relying on unbounded on-demand slots may now hit 
`NoEnoughResourceException` under the fixed cap (fails at submit under default 
`job-schedule-strategy: REJECT`).
   - `job-schedule-strategy: WAIT` now takes effect instead of being silently 
overridden to `REJECT` (which happened whenever `dynamic-slot: true`).
   - Rolling restart of a mixed dynamic/static cluster may schedule 
inconsistently; prefer a coordinated restart.
   - Audit packaged/helm/docker `seatunnel.yaml` that may hardcode 
`dynamic-slot: true`.
   
   Migration: set `seatunnel.engine.slot-service.dynamic-slot: true` to keep 
old behavior.
   
   > Community-level default change — happy to discuss on the dev mailing list 
before merge.
   
   ### 2. [Connector-V2] Remove duplicate `setNullToStatementByDataType`
   
   `AbstractJdbcRowConverter` declared two identical 
`setNullToStatementByDataType` methods (same signature and body), which caused 
a compilation error. Removed the duplicate. Unrelated to the slot change — can 
split into a separate PR if reviewers prefer.
   
   ## Verification
   - `./mvnw spotless:apply` — BUILD SUCCESS
   - `./mvnw -pl seatunnel-engine/seatunnel-engine-common -am -DskipTests 
verify` — PASS
   - `./mvnw install -DskipTests -pl seatunnel-connectors-v2/connector-jdbc 
-am` — PASS (after the fix)
   - grep confirmed no test asserts the old dynamic default without an explicit 
yaml override; all shipped YAMLs flipped to `false`.
   
   🤖 Generated with [Claude Code](https://claude.com/claude-code)


-- 
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: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]

Reply via email to