terrymanu commented on issue #37738:
URL:
https://github.com/apache/shardingsphere/issues/37738#issuecomment-3763160252
Problem Understanding
- Using ShardingSphere-JDBC (Standalone + HikariCP) with ~20 physical data
sources; one is unreachable at startup, causing ShardingSphereDataSource
initialization to fail. Expectation: other shards keep working, and only
requests routed to the
failed shard should error at runtime.
Root Cause
- Current design performs connectivity and metadata checks on all
configured physical data sources during startup; any failure triggers fail-fast
to avoid building incomplete ContextManager/MetaDataContexts and inconsistent
routing rules.
Every configured data source is treated as a required dependency.
Analysis
- During bootstrap, each data source is created and validated; a failure
throws an exception and stops context construction (see official data source
config doc:
https://shardingsphere.apache.org/document/current/cn/user-manual/shardingsphere-
jdbc/yaml-config/data-source/).
- Routing and metadata generation rely on all storage nodes (database
type, schema, etc.). Allowing missing nodes would leave shards in the rules
that cannot execute, putting the system into a partially routable state, which
conflicts with the
“start with consistent availability” design principle.
- Therefore, the implementation deliberately enforces an all-or-nothing
strategy to keep rules, metadata, and underlying resources consistent and
predictable.
Conclusion
- This is expected behavior in current ShardingSphere-JDBC, not a defect.
“Partial initialization / degraded startup” is not supported today and would
require a new feature (e.g., explicit handling of missing nodes with matching
metadata/
routing degradation strategies), which the framework does not currently
provide.
--
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]