- Notifications
You must be signed in to change notification settings - Fork 408
Description
Is your feature request related to a problem? Please describe.
Currently, Polaris JDBC uses a single global DataSource for all operations. This creates two issues: * Internal Interference: Heavy metrics/events traffic can saturate the connection pool and slow down core metadata operations. * Deployment Rigidity: There is no programmatic way to route specific realms/tenants to dedicated physical databases without separate JVM clusters.
Describe the solution you'd like
Introduce a DataSourceResolverSPI that resolutions the correct DataSource based onRealmContextandStoreType (METASTORE, METRICS, EVENTS).
Objectives: * Workload Isolation: Enable dedicated connection pools for isolated telemetry and metadata workloads. * Stateless Scaling: Allow operators to dynamically shard or migrate tenants at runtime via a custom resolver.
Describe alternatives you've considered
Separate JVM clusters (inefficient for multi-tenancy) or static configs (too rigid for dynamic sharding maps).
Additional context
Foundation for PR #3960. It specifically resolves transactional consistency concerns by partitioning isolated workloads (Metrics/Events) that do not require cross-database joins.