Skip to content

Commit

Permalink
Use variable for DynomoDB batch size
Browse files Browse the repository at this point in the history
  • Loading branch information
danie1sullivan committed Nov 9, 2023
1 parent b83935b commit 5469ab6
Showing 1 changed file with 6 additions and 4 deletions.
10 changes: 6 additions & 4 deletions registry/dynamodb.go
Original file line number Diff line number Diff line change
Expand Up @@ -68,6 +68,9 @@ type DynamoDBRegistry struct {

const dynamodbAttributeMigrate = "dynamodb/needs-migration"

// DynamoDB allows a maximum batch size of 25 items.
var dynamodbMaxBatchSize uint8 = 25

// NewDynamoDBRegistry returns a new DynamoDBRegistry object.
func NewDynamoDBRegistry(provider provider.Provider, ownerID string, dynamodbAPI DynamoDBAPI, table string, txtPrefix, txtSuffix, txtWildcardReplacement string, managedRecordTypes, excludeRecordTypes []string, txtEncryptAESKey []byte, cacheInterval time.Duration) (*DynamoDBRegistry, error) {
if ownerID == "" {
Expand Down Expand Up @@ -477,10 +480,9 @@ func (im *DynamoDBRegistry) appendDelete(statements []*dynamodb.BatchStatementRe
func (im *DynamoDBRegistry) executeStatements(ctx context.Context, statements []*dynamodb.BatchStatementRequest, handleErr func(request *dynamodb.BatchStatementRequest, response *dynamodb.BatchStatementResponse) error) error {
for len(statements) > 0 {
var chunk []*dynamodb.BatchStatementRequest
// DynamoDB allows a maximum batch size of 25 items.
if len(statements) > 25 {
chunk = statements[:25]
statements = statements[25:]
if len(statements) > int(dynamodbMaxBatchSize) {
chunk = statements[:dynamodbMaxBatchSize]
statements = statements[dynamodbMaxBatchSize:]
} else {
chunk = statements
statements = nil
Expand Down

0 comments on commit 5469ab6

Please sign in to comment.