Enable efficient chord when using dynamicdb as backend store #8783
Enable efficient chord when using dynamicdb as backend store #8783auvipy merged 5 commits intocelery:mainfrom
chord when using dynamicdb as backend store #8783Conversation
Codecov ReportAll modified and coverable lines are covered by tests ✅
Additional details and impacted files@@ Coverage Diff @@
## main #8783 +/- ##
==========================================
+ Coverage 81.19% 81.21% +0.01%
==========================================
Files 148 148
Lines 18523 18542 +19
Branches 3165 3165
==========================================
+ Hits 15039 15058 +19
Misses 3196 3196
Partials 288 288
Flags with carried forward coverage won't be shown. Click here to find out more. ☔ View full report in Codecov by Sentry. |
Nusnus
left a comment
There was a problem hiding this comment.
Nice addition!
- Please add automatic tests.
- Optionally, also add type hints where it makes sense.
Thank you!
680afb4 to
8851a25
Compare
Thanks for a quick review. I added some unit tests. |
Unfortunately I am less familiar with it too, maybe @auvipy can assist here? Besides the PR looks good; have you done some manual tests maybe with a real environment? |
@Nusnus I only tested it with local-dynamodb installation. I will do a test soon with a real AWS account. |
That will very useful!! P.S |
|
Hi @Nusnus, Below is the testing result with a real AWS account. code is below client side logs are server side logs are Also, this is the screenshot of dyanmodb query result showing that |
auvipy
left a comment
There was a problem hiding this comment.
can you please improve unit test coverage for this backend?
7d9da79 to
61fd597
Compare
4a1785d to
2e43ace
Compare
for more information, see https://pre-commit.ci
@auvipy Yes sure. I added one more unit test and codecov score looks good now. But one test matrix |
|
it was all green! welcome aboard! |

Description
For
canvas::chord, only Redis and Memcached currently use an atomic counter to join the parallel tasks. Other backends use a recurring task to poll the completion of the group every second, which is inefficient.DynamoDB, on the other hand, supports atomic counter. See ref. So in principle, we can use the same technique as Redis backend store to make
chordmore efficient in Dynamodb. This PR adds this support for DynamoDB backend.