dynamodb-tracking-tables-provisioned-throughput-read-capacity-units

--dynamodb-tracking-tables-provisioned-throughput-read-capacity-units is a global parameter for the Liquibase DynamoDB extension. It specifies how many readCapacityUnits to initially use for the PROVISIONED billing mode for Liquibase tracking tables: DATABASECHANGELOG and DATABASECHANGELOGLOCK. It is ignored if you use the PAY_PER_REQUEST billing mode. The default value is 10.

To use this parameter, you must first set --dynamodb-tracking-tables-billing-mode to PROVISIONED. You should only do this if you can accurately estimate your database's expected load on the Liquibase tracking tables.

Note: If you want to change the provisioned throughput values of the tracking tables after you create them, you must instead use the updateDynamoTable or updateTableProvisionedThroughput Change Type.

Uses

Amazon DynamoDB has two pricing models for the number of read and write operations you perform on tables in your database every second:

  • On-demand (PAY_PER_REQUEST): only pay for requests you actually make
  • Provisioned (PROVISIONED): you pay for a specific maximum number of requests per second

For more information, see Read/write capacity mode.

Liquibase automatically creates internal tracking tables like the DBCL, DBCLL, and DBCLH in your database. It uses these to run commands like update and rollback and record changes to the database's state.

If you use the PROVISIONED billing mode for Liquibase tracking tables, you can use the --dynamodb-tracking-tables-provisioned-throughput-read-capacity-units parameter to control the maximum number of read operations per second Liquibase makes to those tracking tables:

  • If you typically perform many read operations on your database, set a higher value
  • If you typically perform few read operations on your database, set a lower value

Note: If you set a capacity value too low and then exceed it, DynamoDB will throttle your requests.

If you use the PAY_PER_REQUEST billing mode for Liquibase tracking tables, this parameter has no effect.

For more information, see Managing settings on DynamoDB provisioned capacity tables.

Syntax

You can set this parameter in the following ways:

Option Syntax
Liquibase properties file
liquibase.dynamodb.trackingTables.provisionedThroughput.readCapacityUnits: <int>
Global flow file argument (example)
stages:
  Default:
    actions:
      - type: liquibase
        command: update
        globalArgs: { dynamodb-tracking-tables-provisioned-throughput-read-capacity-units: "<int>" }
Global CLI parameter
liquibase
 --dynamodb-tracking-tables-provisioned-throughput-read-capacity-units=<int> update
 --changelog-file=example-changelog.xml

JVM system property (JAVA_OPTS Environment Variable)

JAVA_OPTS=-Dliquibase.dynamodb.trackingTables.provisionedThroughput.readCapacityUnits=<int>
Liquibase Environment Variables
LIQUIBASE_DYNAMODB_TRACKING_TABLES_PROVISIONED_THROUGHPUT_READ_CAPACITY_UNITS=<int>

For more information, see Working with Command Parameters.

Related links