-
Notifications
You must be signed in to change notification settings - Fork 828
Update ring DynamoDB Client to write in a transaction when batching #6987
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: master
Are you sure you want to change the base?
Conversation
Signed-off-by: Anna Tran <[email protected]>
Signed-off-by: Anna Tran <[email protected]>
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thanks for the work.
One last comment talked offline. We can inprove the retry if failed before of condition error.
Signed-off-by: Anna Tran <[email protected]>
@@ -72,6 +72,7 @@ | |||
* [ENHANCEMENT] API: add request ID injection to context to enable tracking requests across downstream services. #6895 | |||
* [ENHANCEMENT] gRPC: Add gRPC Channelz monitoring. #6950 | |||
* [ENHANCEMENT] Upgrade build image and Go version to 1.24.6. #6970 #6976 | |||
* [ENHANCEMENT] Implement versioned transactions for batch writes to Ring DynamoDB. #6986 |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
nit: i would just say "for writes"
putRequests[dynamodbKey{primaryKey: key, sortKey: childKey}] = bytes | ||
putRequests[dynamodbKey{primaryKey: key, sortKey: childKey}] = dynamodbItem{ | ||
data: bytes, | ||
version: resp[childKey].version, |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
When we are adding an instance to the ring I dont think it will be on the resp from query.
What this PR does:
Updates the DynamoDB ring client to use versioning in it's KV store entries. Specifically
dynamodbItem
struct which holds the data from the queried item along with a version. If there is no version from DynamoDB for the item, the version defaults to an empty string.Which issue(s) this PR fixes:
Fixes #6986
Checklist
CHANGELOG.md
updated - the order of entries should be[CHANGE]
,[FEATURE]
,[ENHANCEMENT]
,[BUGFIX]