Skip to content

Commit ca85339

Browse files
authored
Rework getOrCreateSessionSupplier (#2161)
note how all the caller immediately called `get` on the returned `Supplier`. it seems like the `Supplier` was an leaking implementation detail of the `MetaStoreManagerFactor` implementations.
1 parent d44bf1a commit ca85339

File tree

20 files changed

+32
-43
lines changed

20 files changed

+32
-43
lines changed

persistence/relational-jdbc/src/main/java/org/apache/polaris/persistence/relational/jdbc/JdbcMetaStoreManagerFactory.java

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -175,7 +175,7 @@ public Map<String, BaseResult> purgeRealms(Iterable<String> realms) {
175175
for (String realm : realms) {
176176
RealmContext realmContext = () -> realm;
177177
PolarisMetaStoreManager metaStoreManager = getOrCreateMetaStoreManager(realmContext);
178-
BasePersistence session = getOrCreateSessionSupplier(realmContext).get();
178+
BasePersistence session = getOrCreateSession(realmContext);
179179

180180
PolarisCallContext callContext = new PolarisCallContext(realmContext, session, diagServices);
181181
BaseResult result = metaStoreManager.purge(callContext);
@@ -200,14 +200,13 @@ public synchronized PolarisMetaStoreManager getOrCreateMetaStoreManager(
200200
}
201201

202202
@Override
203-
public synchronized Supplier<BasePersistence> getOrCreateSessionSupplier(
204-
RealmContext realmContext) {
203+
public synchronized BasePersistence getOrCreateSession(RealmContext realmContext) {
205204
if (!sessionSupplierMap.containsKey(realmContext.getRealmIdentifier())) {
206205
DatasourceOperations datasourceOperations = getDatasourceOperations();
207206
initializeForRealm(datasourceOperations, realmContext, null);
208207
}
209208
checkPolarisServiceBootstrappedForRealm(realmContext);
210-
return sessionSupplierMap.get(realmContext.getRealmIdentifier());
209+
return sessionSupplierMap.get(realmContext.getRealmIdentifier()).get();
211210
}
212211

213212
@Override

polaris-core/src/main/java/org/apache/polaris/core/persistence/LocalPolarisMetaStoreManagerFactory.java

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -130,7 +130,7 @@ public Map<String, BaseResult> purgeRealms(Iterable<String> realms) {
130130
for (String realm : realms) {
131131
RealmContext realmContext = () -> realm;
132132
PolarisMetaStoreManager metaStoreManager = getOrCreateMetaStoreManager(realmContext);
133-
TransactionalPersistence session = getOrCreateSessionSupplier(realmContext).get();
133+
TransactionalPersistence session = getOrCreateSession(realmContext);
134134

135135
PolarisCallContext callContext = new PolarisCallContext(realmContext, session, diagServices);
136136
BaseResult result = metaStoreManager.purge(callContext);
@@ -155,13 +155,12 @@ public synchronized PolarisMetaStoreManager getOrCreateMetaStoreManager(
155155
}
156156

157157
@Override
158-
public synchronized Supplier<TransactionalPersistence> getOrCreateSessionSupplier(
159-
RealmContext realmContext) {
158+
public synchronized TransactionalPersistence getOrCreateSession(RealmContext realmContext) {
160159
if (!sessionSupplierMap.containsKey(realmContext.getRealmIdentifier())) {
161160
initializeForRealm(realmContext, null);
162161
}
163162
checkPolarisServiceBootstrappedForRealm(realmContext);
164-
return sessionSupplierMap.get(realmContext.getRealmIdentifier());
163+
return sessionSupplierMap.get(realmContext.getRealmIdentifier()).get();
165164
}
166165

167166
@Override

polaris-core/src/main/java/org/apache/polaris/core/persistence/MetaStoreManagerFactory.java

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,6 @@
1919
package org.apache.polaris.core.persistence;
2020

2121
import java.util.Map;
22-
import java.util.function.Supplier;
2322
import org.apache.polaris.core.config.RealmConfig;
2423
import org.apache.polaris.core.context.RealmContext;
2524
import org.apache.polaris.core.persistence.bootstrap.BootstrapOptions;
@@ -33,7 +32,7 @@ public interface MetaStoreManagerFactory {
3332

3433
PolarisMetaStoreManager getOrCreateMetaStoreManager(RealmContext realmContext);
3534

36-
Supplier<? extends BasePersistence> getOrCreateSessionSupplier(RealmContext realmContext);
35+
BasePersistence getOrCreateSession(RealmContext realmContext);
3736

3837
EntityCache getOrCreateEntityCache(RealmContext realmContext, RealmConfig realmConfig);
3938

runtime/service/src/main/java/org/apache/polaris/service/quarkus/config/QuarkusProducers.java

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -155,8 +155,7 @@ public CallContext polarisCallContext(
155155
PolarisConfigurationStore configurationStore,
156156
MetaStoreManagerFactory metaStoreManagerFactory,
157157
Clock clock) {
158-
BasePersistence metaStoreSession =
159-
metaStoreManagerFactory.getOrCreateSessionSupplier(realmContext).get();
158+
BasePersistence metaStoreSession = metaStoreManagerFactory.getOrCreateSession(realmContext);
160159
return new PolarisCallContext(
161160
realmContext, metaStoreSession, diagServices, configurationStore, clock);
162161
}
@@ -384,7 +383,7 @@ public UserSecretsManager userSecretsManager(
384383
@RequestScoped
385384
public BasePersistence polarisMetaStoreSession(
386385
RealmContext realmContext, MetaStoreManagerFactory metaStoreManagerFactory) {
387-
return metaStoreManagerFactory.getOrCreateSessionSupplier(realmContext).get();
386+
return metaStoreManagerFactory.getOrCreateSession(realmContext);
388387
}
389388

390389
@Produces

runtime/service/src/test/java/org/apache/polaris/service/quarkus/admin/ManagementServiceTest.java

Lines changed: 2 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -79,10 +79,7 @@ public void setup() {
7979
PolarisCallContext polarisCallContext =
8080
new PolarisCallContext(
8181
fakeServices.realmContext(),
82-
fakeServices
83-
.metaStoreManagerFactory()
84-
.getOrCreateSessionSupplier(fakeServices.realmContext())
85-
.get(),
82+
fakeServices.metaStoreManagerFactory().getOrCreateSession(fakeServices.realmContext()),
8683
fakeServices.polarisDiagnostics(),
8784
fakeServices.configurationStore(),
8885
Mockito.mock(Clock.class));
@@ -197,7 +194,7 @@ private PolarisCallContext setupCallContext(PolarisMetaStoreManager metaStoreMan
197194
RealmContext realmContext = services.realmContext();
198195
return new PolarisCallContext(
199196
realmContext,
200-
metaStoreManagerFactory.getOrCreateSessionSupplier(realmContext).get(),
197+
metaStoreManagerFactory.getOrCreateSession(realmContext),
201198
services.polarisDiagnostics());
202199
}
203200

runtime/service/src/test/java/org/apache/polaris/service/quarkus/admin/PolarisAuthzTestBase.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -236,7 +236,7 @@ public void before(TestInfo testInfo) {
236236
polarisContext =
237237
new PolarisCallContext(
238238
realmContext,
239-
managerFactory.getOrCreateSessionSupplier(realmContext).get(),
239+
managerFactory.getOrCreateSession(realmContext),
240240
diagServices,
241241
configurationStore,
242242
clock);

runtime/service/src/test/java/org/apache/polaris/service/quarkus/catalog/AbstractIcebergCatalogTest.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -277,7 +277,7 @@ public void before(TestInfo testInfo) {
277277
polarisContext =
278278
new PolarisCallContext(
279279
realmContext,
280-
metaStoreManagerFactory.getOrCreateSessionSupplier(realmContext).get(),
280+
metaStoreManagerFactory.getOrCreateSession(realmContext),
281281
diagServices,
282282
configurationStore,
283283
Clock.systemDefaultZone());

runtime/service/src/test/java/org/apache/polaris/service/quarkus/catalog/AbstractIcebergCatalogViewTest.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -162,7 +162,7 @@ public void before(TestInfo testInfo) {
162162
polarisContext =
163163
new PolarisCallContext(
164164
realmContext,
165-
metaStoreManagerFactory.getOrCreateSessionSupplier(realmContext).get(),
165+
metaStoreManagerFactory.getOrCreateSession(realmContext),
166166
diagServices,
167167
configurationStore,
168168
Clock.systemDefaultZone());

runtime/service/src/test/java/org/apache/polaris/service/quarkus/catalog/AbstractPolarisGenericTableCatalogTest.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -153,7 +153,7 @@ public void before(TestInfo testInfo) {
153153
polarisContext =
154154
new PolarisCallContext(
155155
realmContext,
156-
metaStoreManagerFactory.getOrCreateSessionSupplier(realmContext).get(),
156+
metaStoreManagerFactory.getOrCreateSession(realmContext),
157157
diagServices,
158158
configurationStore,
159159
Clock.systemDefaultZone());

runtime/service/src/test/java/org/apache/polaris/service/quarkus/catalog/AbstractPolicyCatalogTest.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -176,7 +176,7 @@ public void before(TestInfo testInfo) {
176176
polarisContext =
177177
new PolarisCallContext(
178178
realmContext,
179-
metaStoreManagerFactory.getOrCreateSessionSupplier(realmContext).get(),
179+
metaStoreManagerFactory.getOrCreateSession(realmContext),
180180
diagServices,
181181
configurationStore,
182182
Clock.systemDefaultZone());

0 commit comments

Comments
 (0)