java.lang.Object
org.apache.polaris.persistence.nosql.quarkus.backend.ObservingBackend
All Implemented Interfaces:
AutoCloseable, org.apache.polaris.persistence.nosql.api.backend.Backend

@ApplicationScoped @Default public class ObservingBackend extends Object implements org.apache.polaris.persistence.nosql.api.backend.Backend
Provides telemetry and tracing for all persistence backend operations.
  • Nested Class Summary

    Nested classes/interfaces inherited from interface org.apache.polaris.persistence.nosql.api.backend.Backend

    org.apache.polaris.persistence.nosql.api.backend.Backend.ObjScanCallback, org.apache.polaris.persistence.nosql.api.backend.Backend.ReferenceScanCallback
  • Field Summary

    Fields
    Modifier and Type
    Field
    Description
    static final String
     
  • Constructor Summary

    Constructors
    Constructor
    Description
    ObservingBackend(org.apache.polaris.persistence.nosql.api.backend.Backend backend)
     
  • Method Summary

    Modifier and Type
    Method
    Description
    void
    batchDeleteObjs(Map<String,Set<org.apache.polaris.persistence.nosql.api.backend.PersistId>> realmObjs)
     
    void
     
    void
     
    boolean
    conditionalDelete(@NonNull String realmId, @NonNull org.apache.polaris.persistence.nosql.api.backend.PersistId persistId, @NonNull String expectedToken)
     
    boolean
    conditionalInsert(@NonNull String realmId, String objTypeId, @NonNull org.apache.polaris.persistence.nosql.api.backend.PersistId persistId, long createdAtMicros, @NonNull String versionToken, @org.jspecify.annotations.NonNull byte[] serializedValue)
     
    boolean
    conditionalUpdate(@NonNull String realmId, String objTypeId, @NonNull org.apache.polaris.persistence.nosql.api.backend.PersistId persistId, long createdAtMicros, @NonNull String updateToken, @NonNull String expectedToken, @org.jspecify.annotations.NonNull byte[] serializedValue)
     
    boolean
    createReference(@NonNull String realmId, @NonNull org.apache.polaris.persistence.nosql.api.ref.Reference newRef)
     
    void
    createReferences(@NonNull String realmId, @NonNull List<org.apache.polaris.persistence.nosql.api.ref.Reference> newRefs)
     
    void
    delete(@NonNull String realmId, @NonNull Set<org.apache.polaris.persistence.nosql.api.backend.PersistId> ids)
     
    void
    deleteRealms(Set<String> realmIds)
     
    @NonNull Map<org.apache.polaris.persistence.nosql.api.backend.PersistId,org.apache.polaris.persistence.nosql.api.backend.FetchedObj>
    fetch(@NonNull String realmId, @NonNull Set<org.apache.polaris.persistence.nosql.api.backend.PersistId> ids)
     
    @NonNull org.apache.polaris.persistence.nosql.api.ref.Reference
    fetchReference(@NonNull String realmId, @NonNull String name)
     
    @NonNull org.apache.polaris.persistence.nosql.api.Persistence
    newPersistence(Function<org.apache.polaris.persistence.nosql.api.backend.Backend,org.apache.polaris.persistence.nosql.api.backend.Backend> backendWrapper, @NonNull org.apache.polaris.persistence.nosql.api.PersistenceParams persistenceParams, String realmId, org.apache.polaris.ids.api.MonotonicClock monotonicClock, org.apache.polaris.ids.api.IdGenerator idGenerator)
     
    io.micrometer.core.instrument.config.MeterFilter
     
    void
    scanBackend(@NonNull org.apache.polaris.persistence.nosql.api.backend.Backend.ReferenceScanCallback referenceConsumer, @NonNull org.apache.polaris.persistence.nosql.api.backend.Backend.ObjScanCallback objConsumer)
     
     
    boolean
     
    @NonNull String
     
    boolean
    updateReference(@NonNull String realmId, @NonNull org.apache.polaris.persistence.nosql.api.ref.Reference updatedRef, @NonNull Optional<org.apache.polaris.persistence.nosql.api.obj.ObjRef> expectedPointer)
     
    void
    write(@NonNull String realmId, @NonNull List<org.apache.polaris.persistence.nosql.api.backend.WriteObj> writes)
     

    Methods inherited from class java.lang.Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
  • Field Details

  • Constructor Details

    • ObservingBackend

      public ObservingBackend(@NotObserved org.apache.polaris.persistence.nosql.api.backend.Backend backend)
  • Method Details

    • type

      public @NonNull String type()
      Specified by:
      type in interface org.apache.polaris.persistence.nosql.api.backend.Backend
    • newPersistence

      public @NonNull org.apache.polaris.persistence.nosql.api.Persistence newPersistence(Function<org.apache.polaris.persistence.nosql.api.backend.Backend,org.apache.polaris.persistence.nosql.api.backend.Backend> backendWrapper, @NonNull org.apache.polaris.persistence.nosql.api.PersistenceParams persistenceParams, String realmId, org.apache.polaris.ids.api.MonotonicClock monotonicClock, org.apache.polaris.ids.api.IdGenerator idGenerator)
      Specified by:
      newPersistence in interface org.apache.polaris.persistence.nosql.api.backend.Backend
    • supportsRealmDeletion

      public boolean supportsRealmDeletion()
      Specified by:
      supportsRealmDeletion in interface org.apache.polaris.persistence.nosql.api.backend.Backend
    • close

      public void close() throws Exception
      Specified by:
      close in interface AutoCloseable
      Throws:
      Exception
    • setupSchema

      public Optional<String> setupSchema()
      Specified by:
      setupSchema in interface org.apache.polaris.persistence.nosql.api.backend.Backend
    • deleteRealms

      public void deleteRealms(Set<String> realmIds)
      Specified by:
      deleteRealms in interface org.apache.polaris.persistence.nosql.api.backend.Backend
    • batchDeleteRefs

      public void batchDeleteRefs(Map<String,Set<String>> realmRefs)
      Specified by:
      batchDeleteRefs in interface org.apache.polaris.persistence.nosql.api.backend.Backend
    • batchDeleteObjs

      public void batchDeleteObjs(Map<String,Set<org.apache.polaris.persistence.nosql.api.backend.PersistId>> realmObjs)
      Specified by:
      batchDeleteObjs in interface org.apache.polaris.persistence.nosql.api.backend.Backend
    • scanBackend

      public void scanBackend(@NonNull org.apache.polaris.persistence.nosql.api.backend.Backend.ReferenceScanCallback referenceConsumer, @NonNull org.apache.polaris.persistence.nosql.api.backend.Backend.ObjScanCallback objConsumer)
      Specified by:
      scanBackend in interface org.apache.polaris.persistence.nosql.api.backend.Backend
    • createReference

      public boolean createReference(@NonNull String realmId, @NonNull org.apache.polaris.persistence.nosql.api.ref.Reference newRef)
      Specified by:
      createReference in interface org.apache.polaris.persistence.nosql.api.backend.Backend
    • createReferences

      public void createReferences(@NonNull String realmId, @NonNull List<org.apache.polaris.persistence.nosql.api.ref.Reference> newRefs)
      Specified by:
      createReferences in interface org.apache.polaris.persistence.nosql.api.backend.Backend
    • updateReference

      public boolean updateReference(@NonNull String realmId, @NonNull org.apache.polaris.persistence.nosql.api.ref.Reference updatedRef, @NonNull Optional<org.apache.polaris.persistence.nosql.api.obj.ObjRef> expectedPointer)
      Specified by:
      updateReference in interface org.apache.polaris.persistence.nosql.api.backend.Backend
    • fetchReference

      public @NonNull org.apache.polaris.persistence.nosql.api.ref.Reference fetchReference(@NonNull String realmId, @NonNull String name)
      Specified by:
      fetchReference in interface org.apache.polaris.persistence.nosql.api.backend.Backend
    • fetch

      public @NonNull Map<org.apache.polaris.persistence.nosql.api.backend.PersistId,org.apache.polaris.persistence.nosql.api.backend.FetchedObj> fetch(@NonNull String realmId, @NonNull Set<org.apache.polaris.persistence.nosql.api.backend.PersistId> ids)
      Specified by:
      fetch in interface org.apache.polaris.persistence.nosql.api.backend.Backend
    • write

      public void write(@NonNull String realmId, @NonNull List<org.apache.polaris.persistence.nosql.api.backend.WriteObj> writes)
      Specified by:
      write in interface org.apache.polaris.persistence.nosql.api.backend.Backend
    • delete

      public void delete(@NonNull String realmId, @NonNull Set<org.apache.polaris.persistence.nosql.api.backend.PersistId> ids)
      Specified by:
      delete in interface org.apache.polaris.persistence.nosql.api.backend.Backend
    • conditionalInsert

      public boolean conditionalInsert(@NonNull String realmId, String objTypeId, @NonNull org.apache.polaris.persistence.nosql.api.backend.PersistId persistId, long createdAtMicros, @NonNull String versionToken, @org.jspecify.annotations.NonNull byte[] serializedValue)
      Specified by:
      conditionalInsert in interface org.apache.polaris.persistence.nosql.api.backend.Backend
    • conditionalUpdate

      public boolean conditionalUpdate(@NonNull String realmId, String objTypeId, @NonNull org.apache.polaris.persistence.nosql.api.backend.PersistId persistId, long createdAtMicros, @NonNull String updateToken, @NonNull String expectedToken, @org.jspecify.annotations.NonNull byte[] serializedValue)
      Specified by:
      conditionalUpdate in interface org.apache.polaris.persistence.nosql.api.backend.Backend
    • conditionalDelete

      public boolean conditionalDelete(@NonNull String realmId, @NonNull org.apache.polaris.persistence.nosql.api.backend.PersistId persistId, @NonNull String expectedToken)
      Specified by:
      conditionalDelete in interface org.apache.polaris.persistence.nosql.api.backend.Backend
    • renameApplicationMeters

      @Produces @Singleton public io.micrometer.core.instrument.config.MeterFilter renameApplicationMeters()