huaxingao opened a new pull request, #4397: URL: https://github.com/apache/polaris/pull/4397
<!-- ๐ Describe what changes you're proposing, especially breaking or user-facing changes. ๐ See https://github.com/apache/polaris/blob/main/CONTRIBUTING.md for more. --> Refactor the persistence SPIs so `BasePersistence`, `PolicyMappingPersistence`, `MetricsPersistence`, and `IntegrationPersistence` are disjoint top-level interfaces instead of `BasePersistence` being an aggregator. Concrete backends (JDBC, NoSQL) multi-inherit the ones they support, and `TransactionalPersistence` aggregates them where atomic semantics are needed. Changes - `BasePersistence` no longer extends `PolicyMappingPersistence` or `MetricsPersistence`. - `TransactionalPersistence` now extends all four SPIs directly. - `JdbcBasePersistenceImpl` and `NonFunctionalBasePersistence` implement all four SPIs. - `MetaStoreManagerFactory`: rename `getOrCreateSession` โ `getOrCreateBasePersistence`; add `getOrCreate{PolicyMapping,Metrics,Integration}Persistence`. - `PolarisCallContext`: rename `getMetaStore` โ `getBasePersistence`; add `get{PolicyMapping,Metrics,Integration}Persistence`. - Replace `((IntegrationPersistence) ms)` blind casts in `AtomicOperationMetaStoreManager` with `callCtx.getIntegrationPersistence()`. ## Checklist - [ ] ๐ก๏ธ Don't disclose security issues! (contact [email protected]) - [ ] ๐ Clearly explained why the changes are needed, or linked related issues: Fixes # - [ ] ๐งช Added/updated tests with good coverage, or manually tested (and explained how) - [ ] ๐ก Added comments for complex logic - [ ] ๐งพ Updated `CHANGELOG.md` (if needed) - [ ] ๐ Updated documentation in `site/content/in-dev/unreleased` (if needed) -- 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]
