Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Core persistence refactor phase 2 - Distinguish "InCurrentTxn" variations of all BasePersistence methods in TransactionalPersistence #1135

Open
wants to merge 4 commits into
base: main
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from 2 commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -247,7 +247,7 @@ public void runActionInReadTransaction(
* @return new unique entity identifier
*/
@Override
public long generateNewId(@Nonnull PolarisCallContext callCtx) {
public long generateNewIdInCurrentTxn(@Nonnull PolarisCallContext callCtx) {
// This function can be called within a transaction or out of transaction.
// If called out of transaction, create a new transaction, otherwise run in current transaction
return localSession.get() != null
Expand All @@ -257,47 +257,48 @@ public long generateNewId(@Nonnull PolarisCallContext callCtx) {

/** {@inheritDoc} */
@Override
public void writeToEntities(
public void writeToEntitiesInCurrentTxn(
@Nonnull PolarisCallContext callCtx, @Nonnull PolarisBaseEntity entity) {
this.store.writeToEntities(localSession.get(), entity);
}

/** {@inheritDoc} */
@Override
public <T extends PolarisStorageConfigurationInfo> void persistStorageIntegrationIfNeeded(
@Nonnull PolarisCallContext callContext,
@Nonnull PolarisBaseEntity entity,
@Nullable PolarisStorageIntegration<T> storageIntegration) {
public <T extends PolarisStorageConfigurationInfo>
void persistStorageIntegrationIfNeededInCurrentTxn(
@Nonnull PolarisCallContext callContext,
@Nonnull PolarisBaseEntity entity,
@Nullable PolarisStorageIntegration<T> storageIntegration) {
// not implemented for eclipselink store
}

/** {@inheritDoc} */
@Override
public void writeToEntitiesActive(
public void writeToEntitiesActiveInCurrentTxn(
@Nonnull PolarisCallContext callCtx, @Nonnull PolarisBaseEntity entity) {
// write it
this.store.writeToEntitiesActive(localSession.get(), entity);
}

/** {@inheritDoc} */
@Override
public void writeToEntitiesChangeTracking(
public void writeToEntitiesChangeTrackingInCurrentTxn(
@Nonnull PolarisCallContext callCtx, @Nonnull PolarisBaseEntity entity) {
// write it
this.store.writeToEntitiesChangeTracking(localSession.get(), entity);
}

/** {@inheritDoc} */
@Override
public void writeToGrantRecords(
public void writeToGrantRecordsInCurrentTxn(
@Nonnull PolarisCallContext callCtx, @Nonnull PolarisGrantRecord grantRec) {
// write it
this.store.writeToGrantRecords(localSession.get(), grantRec);
}

/** {@inheritDoc} */
@Override
public void deleteFromEntities(
public void deleteFromEntitiesInCurrentTxn(
@Nonnull PolarisCallContext callCtx, @Nonnull PolarisEntityCore entity) {

// delete it
Expand All @@ -306,7 +307,7 @@ public void deleteFromEntities(

/** {@inheritDoc} */
@Override
public void deleteFromEntitiesActive(
public void deleteFromEntitiesActiveInCurrentTxn(
@Nonnull PolarisCallContext callCtx, @Nonnull PolarisEntityCore entity) {
// delete it
this.store.deleteFromEntitiesActive(localSession.get(), new PolarisEntitiesActiveKey(entity));
Expand All @@ -319,22 +320,22 @@ public void deleteFromEntitiesActive(
* @param entity entity record to delete
*/
@Override
public void deleteFromEntitiesChangeTracking(
public void deleteFromEntitiesChangeTrackingInCurrentTxn(
@Nonnull PolarisCallContext callCtx, @Nonnull PolarisEntityCore entity) {
// delete it
this.store.deleteFromEntitiesChangeTracking(localSession.get(), entity);
}

/** {@inheritDoc} */
@Override
public void deleteFromGrantRecords(
public void deleteFromGrantRecordsInCurrentTxn(
@Nonnull PolarisCallContext callCtx, @Nonnull PolarisGrantRecord grantRec) {
this.store.deleteFromGrantRecords(localSession.get(), grantRec);
}

/** {@inheritDoc} */
@Override
public void deleteAllEntityGrantRecords(
public void deleteAllEntityGrantRecordsInCurrentTxn(
@Nonnull PolarisCallContext callCtx,
@Nonnull PolarisEntityCore entity,
@Nonnull List<PolarisGrantRecord> grantsOnGrantee,
Expand All @@ -344,19 +345,19 @@ public void deleteAllEntityGrantRecords(

/** {@inheritDoc} */
@Override
public void deleteAll(@Nonnull PolarisCallContext callCtx) {
public void deleteAllInCurrentTxn(@Nonnull PolarisCallContext callCtx) {
this.store.deleteAll(localSession.get());
}

/** {@inheritDoc} */
@Override
public @Nullable PolarisBaseEntity lookupEntity(
public @Nullable PolarisBaseEntity lookupEntityInCurrentTxn(
@Nonnull PolarisCallContext callCtx, long catalogId, long entityId) {
return ModelEntity.toEntity(this.store.lookupEntity(localSession.get(), catalogId, entityId));
}

@Override
public @Nonnull List<PolarisBaseEntity> lookupEntities(
public @Nonnull List<PolarisBaseEntity> lookupEntitiesInCurrentTxn(
@Nonnull PolarisCallContext callCtx, List<PolarisEntityId> entityIds) {
return this.store.lookupEntities(localSession.get(), entityIds).stream()
.map(ModelEntity::toEntity)
Expand All @@ -365,7 +366,7 @@ public void deleteAll(@Nonnull PolarisCallContext callCtx) {

/** {@inheritDoc} */
@Override
public @Nonnull List<PolarisChangeTrackingVersions> lookupEntityVersions(
public @Nonnull List<PolarisChangeTrackingVersions> lookupEntityVersionsInCurrentTxn(
@Nonnull PolarisCallContext callCtx, List<PolarisEntityId> entityIds) {
Map<PolarisEntityId, ModelEntity> idToEntityMap =
this.store.lookupEntities(localSession.get(), entityIds).stream()
Expand All @@ -388,7 +389,7 @@ public void deleteAll(@Nonnull PolarisCallContext callCtx) {
/** {@inheritDoc} */
@Override
@Nullable
public EntityNameLookupRecord lookupEntityActive(
public EntityNameLookupRecord lookupEntityActiveInCurrentTxn(
@Nonnull PolarisCallContext callCtx, @Nonnull PolarisEntitiesActiveKey entityActiveKey) {
// lookup the active entity slice
return ModelEntityActive.toEntityActive(
Expand All @@ -398,34 +399,35 @@ public EntityNameLookupRecord lookupEntityActive(
/** {@inheritDoc} */
@Override
@Nonnull
public List<EntityNameLookupRecord> lookupEntityActiveBatch(
public List<EntityNameLookupRecord> lookupEntityActiveBatchInCurrentTxn(
@Nonnull PolarisCallContext callCtx,
@Nonnull List<PolarisEntitiesActiveKey> entityActiveKeys) {
// now build a list to quickly verify that nothing has changed
return entityActiveKeys.stream()
.map(entityActiveKey -> this.lookupEntityActive(callCtx, entityActiveKey))
.map(entityActiveKey -> this.lookupEntityActiveInCurrentTxn(callCtx, entityActiveKey))
.collect(Collectors.toList());
}

/** {@inheritDoc} */
@Override
public @Nonnull List<EntityNameLookupRecord> listEntities(
public @Nonnull List<EntityNameLookupRecord> listEntitiesInCurrentTxn(
@Nonnull PolarisCallContext callCtx,
long catalogId,
long parentId,
@Nonnull PolarisEntityType entityType) {
return listEntities(callCtx, catalogId, parentId, entityType, Predicates.alwaysTrue());
return listEntitiesInCurrentTxn(
callCtx, catalogId, parentId, entityType, Predicates.alwaysTrue());
}

@Override
public @Nonnull List<EntityNameLookupRecord> listEntities(
public @Nonnull List<EntityNameLookupRecord> listEntitiesInCurrentTxn(
@Nonnull PolarisCallContext callCtx,
long catalogId,
long parentId,
@Nonnull PolarisEntityType entityType,
@Nonnull Predicate<PolarisBaseEntity> entityFilter) {
// full range scan under the parent for that type
return listEntities(
return listEntitiesInCurrentTxn(
callCtx,
catalogId,
parentId,
Expand All @@ -443,7 +445,7 @@ public List<EntityNameLookupRecord> lookupEntityActiveBatch(
}

@Override
public @Nonnull <T> List<T> listEntities(
public @Nonnull <T> List<T> listEntitiesInCurrentTxn(
@Nonnull PolarisCallContext callCtx,
long catalogId,
long parentId,
Expand All @@ -464,7 +466,7 @@ public List<EntityNameLookupRecord> lookupEntityActiveBatch(

/** {@inheritDoc} */
@Override
public boolean hasChildren(
public boolean hasChildrenInCurrentTxn(
@Nonnull PolarisCallContext callContext,
@Nullable PolarisEntityType entityType,
long catalogId,
Expand All @@ -476,7 +478,7 @@ public boolean hasChildren(

/** {@inheritDoc} */
@Override
public int lookupEntityGrantRecordsVersion(
public int lookupEntityGrantRecordsVersionInCurrentTxn(
@Nonnull PolarisCallContext callCtx, long catalogId, long entityId) {
ModelEntityChangeTracking entity =
this.store.lookupEntityChangeTracking(localSession.get(), catalogId, entityId);
Expand All @@ -487,7 +489,7 @@ public int lookupEntityGrantRecordsVersion(

/** {@inheritDoc} */
@Override
public @Nullable PolarisGrantRecord lookupGrantRecord(
public @Nullable PolarisGrantRecord lookupGrantRecordInCurrentTxn(
@Nonnull PolarisCallContext callCtx,
long securableCatalogId,
long securableId,
Expand All @@ -507,7 +509,7 @@ public int lookupEntityGrantRecordsVersion(

/** {@inheritDoc} */
@Override
public @Nonnull List<PolarisGrantRecord> loadAllGrantRecordsOnSecurable(
public @Nonnull List<PolarisGrantRecord> loadAllGrantRecordsOnSecurableInCurrentTxn(
@Nonnull PolarisCallContext callCtx, long securableCatalogId, long securableId) {
// now fetch all grants for this securable
return this.store
Expand All @@ -519,7 +521,7 @@ public int lookupEntityGrantRecordsVersion(

/** {@inheritDoc} */
@Override
public @Nonnull List<PolarisGrantRecord> loadAllGrantRecordsOnGrantee(
public @Nonnull List<PolarisGrantRecord> loadAllGrantRecordsOnGranteeInCurrentTxn(
@Nonnull PolarisCallContext callCtx, long granteeCatalogId, long granteeId) {
// now fetch all grants assigned to this grantee
return this.store
Expand All @@ -531,15 +533,15 @@ public int lookupEntityGrantRecordsVersion(

/** {@inheritDoc} */
@Override
public @Nullable PolarisPrincipalSecrets loadPrincipalSecrets(
public @Nullable PolarisPrincipalSecrets loadPrincipalSecretsInCurrentTxn(
@Nonnull PolarisCallContext callCtx, @Nonnull String clientId) {
return ModelPrincipalSecrets.toPrincipalSecrets(
this.store.lookupPrincipalSecrets(localSession.get(), clientId));
}

/** {@inheritDoc} */
@Override
public @Nonnull PolarisPrincipalSecrets generateNewPrincipalSecrets(
public @Nonnull PolarisPrincipalSecrets generateNewPrincipalSecretsInCurrentTxn(
@Nonnull PolarisCallContext callCtx, @Nonnull String principalName, long principalId) {
// ensure principal client id is unique
PolarisPrincipalSecrets principalSecrets;
Expand All @@ -563,7 +565,7 @@ public int lookupEntityGrantRecordsVersion(

/** {@inheritDoc} */
@Override
public @Nonnull PolarisPrincipalSecrets rotatePrincipalSecrets(
public @Nonnull PolarisPrincipalSecrets rotatePrincipalSecretsInCurrentTxn(
@Nonnull PolarisCallContext callCtx,
@Nonnull String clientId,
long principalId,
Expand Down Expand Up @@ -610,7 +612,7 @@ public int lookupEntityGrantRecordsVersion(

/** {@inheritDoc} */
@Override
public void deletePrincipalSecrets(
public void deletePrincipalSecretsInCurrentTxn(
@Nonnull PolarisCallContext callCtx, @Nonnull String clientId, long principalId) {
// load the existing secrets
ModelPrincipalSecrets principalSecrets =
Expand Down Expand Up @@ -643,7 +645,7 @@ public void deletePrincipalSecrets(
/** {@inheritDoc} */
@Override
public @Nullable <T extends PolarisStorageConfigurationInfo>
PolarisStorageIntegration<T> createStorageIntegration(
PolarisStorageIntegration<T> createStorageIntegrationInCurrentTxn(
@Nonnull PolarisCallContext callCtx,
long catalogId,
long entityId,
Expand All @@ -655,7 +657,7 @@ PolarisStorageIntegration<T> createStorageIntegration(
/** {@inheritDoc} */
@Override
public @Nullable <T extends PolarisStorageConfigurationInfo>
PolarisStorageIntegration<T> loadPolarisStorageIntegration(
PolarisStorageIntegration<T> loadPolarisStorageIntegrationInCurrentTxn(
@Nonnull PolarisCallContext callCtx, @Nonnull PolarisBaseEntity entity) {
PolarisStorageConfigurationInfo storageConfig =
BaseMetaStoreManager.extractStorageConfiguration(callCtx, entity);
Expand Down
Loading