@@ -14,6 +14,12 @@ import (
14
14
"github.com/go-kit/log"
15
15
)
16
16
17
+ const (
18
+ // DdbBatchSizeLimit Current limit of 25 actions per batch
19
+ // https://docs.aws.amazon.com/amazondynamodb/latest/APIReference/API_BatchWriteItem.html
20
+ DdbBatchSizeLimit = 25
21
+ )
22
+
17
23
type dynamodbKey struct {
18
24
primaryKey string
19
25
sortKey string
@@ -177,11 +183,9 @@ func (kv dynamodbKV) Batch(ctx context.Context, put map[dynamodbKey][]byte, dele
177
183
return nil
178
184
}
179
185
180
- // Current limit of 25 actions per batch
181
- // https://docs.aws.amazon.com/amazondynamodb/latest/APIReference/API_BatchWriteItem.html
182
- writeRequestsSlices := make ([][]* dynamodb.WriteRequest , int (math .Ceil (float64 (writeRequestSize )/ 25.0 )))
186
+ writeRequestsSlices := make ([][]* dynamodb.WriteRequest , int (math .Ceil (float64 (writeRequestSize )/ float64 (DdbBatchSizeLimit ))))
183
187
for i := 0 ; i < len (writeRequestsSlices ); i ++ {
184
- writeRequestsSlices [i ] = make ([]* dynamodb.WriteRequest , 0 , 25 )
188
+ writeRequestsSlices [i ] = make ([]* dynamodb.WriteRequest , 0 , DdbBatchSizeLimit )
185
189
}
186
190
187
191
currIdx := 0
@@ -192,7 +196,7 @@ func (kv dynamodbKV) Batch(ctx context.Context, put map[dynamodbKey][]byte, dele
192
196
Item : item ,
193
197
},
194
198
})
195
- if len (writeRequestsSlices [currIdx ]) == 25 {
199
+ if len (writeRequestsSlices [currIdx ]) == DdbBatchSizeLimit {
196
200
currIdx ++
197
201
}
198
202
}
@@ -204,7 +208,7 @@ func (kv dynamodbKV) Batch(ctx context.Context, put map[dynamodbKey][]byte, dele
204
208
Key : item ,
205
209
},
206
210
})
207
- if len (writeRequestsSlices [currIdx ]) == 25 {
211
+ if len (writeRequestsSlices [currIdx ]) == DdbBatchSizeLimit {
208
212
currIdx ++
209
213
}
210
214
}
0 commit comments