Class DynamoDbLockManager

  • All Implemented Interfaces:
    java.lang.AutoCloseable, org.apache.iceberg.LockManager

    public class DynamoDbLockManager
    extends org.apache.iceberg.util.LockManagers.BaseLockManager
    DynamoDB implementation for the lock manager.
    • Constructor Summary

      Constructors 
      Constructor Description
      DynamoDbLockManager()
      constructor for dynamic initialization, initialize(Map) must be called later.
      DynamoDbLockManager​(software.amazon.awssdk.services.dynamodb.DynamoDbClient dynamo, java.lang.String lockTableName)
      constructor used for testing purpose
    • Method Summary

      All Methods Static Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      boolean acquire​(java.lang.String entityId, java.lang.String ownerId)  
      void close()  
      void initialize​(java.util.Map<java.lang.String,​java.lang.String> properties)  
      static java.util.List<software.amazon.awssdk.services.dynamodb.model.AttributeDefinition> lockTableColDefinitions()
      The lock table column definition, for users who whould like to create the table separately
      static java.util.List<software.amazon.awssdk.services.dynamodb.model.KeySchemaElement> lockTableSchema()
      The lock table schema, for users who would like to create the table separately
      boolean release​(java.lang.String entityId, java.lang.String ownerId)  
      • Methods inherited from class org.apache.iceberg.util.LockManagers.BaseLockManager

        acquireIntervalMs, acquireTimeoutMs, heartbeatIntervalMs, heartbeatThreads, heartbeatTimeoutMs, scheduler
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • Constructor Detail

      • DynamoDbLockManager

        public DynamoDbLockManager()
        constructor for dynamic initialization, initialize(Map) must be called later.
      • DynamoDbLockManager

        public DynamoDbLockManager​(software.amazon.awssdk.services.dynamodb.DynamoDbClient dynamo,
                                   java.lang.String lockTableName)
        constructor used for testing purpose
        Parameters:
        dynamo - dynamo client
        lockTableName - lock table name
    • Method Detail

      • initialize

        public void initialize​(java.util.Map<java.lang.String,​java.lang.String> properties)
        Specified by:
        initialize in interface org.apache.iceberg.LockManager
        Overrides:
        initialize in class org.apache.iceberg.util.LockManagers.BaseLockManager
      • acquire

        public boolean acquire​(java.lang.String entityId,
                               java.lang.String ownerId)
      • release

        public boolean release​(java.lang.String entityId,
                               java.lang.String ownerId)
      • close

        public void close()
                   throws java.lang.Exception
        Specified by:
        close in interface java.lang.AutoCloseable
        Overrides:
        close in class org.apache.iceberg.util.LockManagers.BaseLockManager
        Throws:
        java.lang.Exception
      • lockTableSchema

        public static java.util.List<software.amazon.awssdk.services.dynamodb.model.KeySchemaElement> lockTableSchema()
        The lock table schema, for users who would like to create the table separately
        Returns:
        lock table schema
      • lockTableColDefinitions

        public static java.util.List<software.amazon.awssdk.services.dynamodb.model.AttributeDefinition> lockTableColDefinitions()
        The lock table column definition, for users who whould like to create the table separately
        Returns:
        lock table column definition