Interface Backend
- All Superinterfaces:
AutoCloseable
Provides "low-level" access to the database-specific backend.
-
Nested Class Summary
Nested ClassesModifier and TypeInterfaceDescriptionstatic interfaceCallback interface forscanBackend(ReferenceScanCallback, ObjScanCallback).static interfaceCallback interface forscanBackend(ReferenceScanCallback, ObjScanCallback). -
Method Summary
Modifier and TypeMethodDescriptionvoidbatchDeleteObjs(Map<String, Set<PersistId>> realmObjs) Bulk object-part deletion, grouped by realm.voidbatchDeleteRefs(Map<String, Set<String>> realmRefs) Bulk reference deletion, grouped by realm.booleanconditionalDelete(String realmId, PersistId persistId, String expectedToken) booleanconditionalInsert(String realmId, String objTypeId, PersistId persistId, long createdAtMicros, String versionToken, byte[] serializedValue) booleanconditionalUpdate(String realmId, String objTypeId, PersistId persistId, long createdAtMicros, String updateToken, String expectedToken, byte[] serializedValue) booleancreateReference(String realmId, Reference newRef) voidcreateReferences(String realmId, List<Reference> newRefs) voidvoiddeleteRealms(Set<String> realmIds) Delete the given realms.fetchReference(String realmId, String name) newPersistence(Function<Backend, Backend> backendWrapper, PersistenceParams persistenceParams, String realmId, org.apache.polaris.ids.api.MonotonicClock monotonicClock, org.apache.polaris.ids.api.IdGenerator idGenerator) voidscanBackend(Backend.ReferenceScanCallback referenceConsumer, Backend.ObjScanCallback objConsumer) Scan the whole backend database and return each discovered reference and object-part via the provided callbacks.Called to set up the database schema.booleanWhether the implementation supportsdeleteRealms(Set).type()Name of this backend.booleanupdateReference(String realmId, Reference updatedRef, Optional<ObjRef> expectedPointer) voidMethods inherited from interface java.lang.AutoCloseable
close
-
Method Details
-
type
Name of this backend. This value serves as an identifier to select the correct backend. -
setupSchema
Called to set up the database schema.- Returns:
- optional, human-readable information
-
newPersistence
@Nonnull Persistence newPersistence(Function<Backend, Backend> backendWrapper, @Nonnull PersistenceParams persistenceParams, String realmId, org.apache.polaris.ids.api.MonotonicClock monotonicClock, org.apache.polaris.ids.api.IdGenerator idGenerator) -
supportsRealmDeletion
boolean supportsRealmDeletion()Whether the implementation supportsdeleteRealms(Set). -
deleteRealms
Delete the given realms.This function works, if
supportsRealmDeletion()yieldstrue.Throws an
UnsupportedOperationException, ifsupportsRealmDeletion()yieldsfalse. -
batchDeleteRefs
Bulk reference deletion, grouped by realm. This functionality is primarily needed for the maintenance service. -
batchDeleteObjs
Bulk object-part deletion, grouped by realm. This functionality is primarily needed for the maintenance service. -
scanBackend
void scanBackend(@Nonnull Backend.ReferenceScanCallback referenceConsumer, @Nonnull Backend.ObjScanCallback objConsumer) Scan the whole backend database and return each discovered reference and object-part via the provided callbacks. This functionality is primarily needed for the maintenance service. -
createReference
-
createReferences
-
updateReference
-
fetchReference
-
fetch
-
write
-
delete
-
conditionalInsert
-
conditionalUpdate
-
conditionalDelete
-