DynamoDB Atomic Counters

0

Greetings!

I have an application that utilizes a DynamoDB table to manage counters. When we update the value of the counter, we consume the returned value - this returned value is the old value of the counter. This counter is then used to retrieve a value in an array, it is effectively an index.

I currently increment these counters with Lambda functions - it's highly likely that many Lambdas may attempt to update the value of a given counter at the same time. It's important that each Lambda function receives a different value of the counter.

Utilizing DynamoDB atomic counters, can I expect that each Lambda function will receive a different value for the counter?

Example:

  • 10 Lambdas attempt to update value of a counter where its current value is 0
  • The Update Expression is "ADD count :incr" where ":incr" is 1
  • Each Lambdas update is processed
  • The returned value from each update is unique per Lambda and the values are 0 - 9
  • The final value of the counter is 10
질문됨 2년 전5609회 조회
1개 답변
2

Yes, this is exactly how atomic counters work. You can find more info here

profile pictureAWS
전문가
Uri
답변함 2년 전
profile pictureAWS
전문가
검토됨 2년 전

로그인하지 않았습니다. 로그인해야 답변을 게시할 수 있습니다.

좋은 답변은 질문에 명확하게 답하고 건설적인 피드백을 제공하며 질문자의 전문적인 성장을 장려합니다.

질문 답변하기에 대한 가이드라인

관련 콘텐츠