René's URL Explorer Experiment


Title: fix(dynamodb): Avoid tag race condition by using diff-based tag updates by HarshSharma1112 · Pull Request #6479 · feast-dev/feast · GitHub

Open Graph Title: fix(dynamodb): Avoid tag race condition by using diff-based tag updates by HarshSharma1112 · Pull Request #6479 · feast-dev/feast

X Title: fix(dynamodb): Avoid tag race condition by using diff-based tag updates by HarshSharma1112 · Pull Request #6479 · feast-dev/feast

Description: What this PR does / why we need it: DynamoDB's TagResource and UntagResource are eventually consistent. The old implementation removed all tags then re-added all desired tags immediately, creating a race window where repeated store.apply() calls would leave tables without any tags. Fix: compute a diff between current and desired tags, then: Only remove keys that are truly obsolete (not in new config) Only add/update tags whose value is new or has changed If nothing changed, make zero API calls (idempotent) This eliminates the race condition and also reduces unnecessary API calls on repeated store.apply() with unchanged configuration. Adds 7 unit tests covering: idempotency, add-only, remove-only, value change, full replace, clear-all, and empty-both cases. Which issue(s) this PR fixes: Fixes #6418 Checks I've made sure the tests are passing. My commits are signed off (git commit -s) My PR title follows conventional commits format Testing Strategy Unit tests Integration tests Manual tests Testing is not required for this change Misc

Open Graph Description: What this PR does / why we need it: DynamoDB's TagResource and UntagResource are eventually consistent. The old implementation removed all tags then re-added all desired tags immediately, creat...

X Description: What this PR does / why we need it: DynamoDB's TagResource and UntagResource are eventually consistent. The old implementation removed all tags then re-added all desired tags immediately, c...

Opengraph URL: https://github.com/feast-dev/feast/pull/6479

X: @github

direct link

Domain: github.com

route-pattern/:user_id/:repository/pull/:id/files(.:format)
route-controllerpull_requests
route-actionfiles
fetch-noncev2:65f249d7-0ea5-135b-df0c-50f8acaa1b87
current-catalog-service-hashae870bc5e265a340912cde392f23dad3671a0a881730ffdadd82f2f57d81641b
request-idB958:B97C3:2627036:346262F:6A4EEBC4
html-safe-nonce91540eada7d58bea26b344609f85f11c036dd7f7a8cb560a4c3be1bb2da6bb78
visitor-payloadeyJyZWZlcnJlciI6IiIsInJlcXVlc3RfaWQiOiJCOTU4OkI5N0MzOjI2MjcwMzY6MzQ2MjYyRjo2QTRFRUJDNCIsInZpc2l0b3JfaWQiOiI2MzYyNjU4MTU3NDY3MzUwNDQiLCJyZWdpb25fZWRnZSI6ImlhZCIsInJlZ2lvbl9yZW5kZXIiOiJpYWQifQ==
visitor-hmace8176566b42ab32fc1a18a30aac790e7ce9107e8c4d262766484ac70b7b7245d
hovercard-subject-tagpull_request:3823450820
github-keyboard-shortcutsrepository,pull-request-list,pull-request-conversation,pull-request-files-changed,copilot
google-site-verificationApib7-x98H0j5cPqHWwSMm6dNU4GmODRoqxLiDzdx9I
octolytics-urlhttps://collector.github.com/github/collect
analytics-location///pull_requests/show/files
fb:app_id1401488693436528
apple-itunes-appapp-id=1477376905, app-argument=https://github.com/feast-dev/feast/pull/6479/files
twitter:imagehttps://avatars.githubusercontent.com/u/219297112?s=400&v=4
twitter:cardsummary_large_image
og:imagehttps://avatars.githubusercontent.com/u/219297112?s=400&v=4
og:image:altWhat this PR does / why we need it: DynamoDB's TagResource and UntagResource are eventually consistent. The old implementation removed all tags then re-added all desired tags immediately, creat...
og:site_nameGitHub
og:typeobject
hostnamegithub.com
expected-hostnamegithub.com
Noned12176b31601daf8d3de9a378cbbcf7dac6f33d990d1faedcb9c9b9ff3cbb1ed
turbo-cache-controlno-preview
diff-viewunified
go-importgithub.com/feast-dev/feast git https://github.com/feast-dev/feast.git
octolytics-dimension-user_id57027613
octolytics-dimension-user_loginfeast-dev
octolytics-dimension-repository_id161133770
octolytics-dimension-repository_nwofeast-dev/feast
octolytics-dimension-repository_publictrue
octolytics-dimension-repository_is_forkfalse
octolytics-dimension-repository_network_root_id161133770
octolytics-dimension-repository_network_root_nwofeast-dev/feast
turbo-body-classeslogged-out env-production page-responsive full-width
disable-turbotrue
browser-stats-urlhttps://api.github.com/_private/browser/stats
browser-errors-urlhttps://api.github.com/_private/browser/errors
release9420180b23897f48b04b8d47ee8b1a9341197b64
ui-targetfull
theme-color#1e2327
color-schemelight dark

Links:

Skip to contenthttps://github.com/feast-dev/feast/pull/6479/files#start-of-content
https://github.com/
Sign in https://github.com/login?return_to=https%3A%2F%2Fgithub.com%2Ffeast-dev%2Ffeast%2Fpull%2F6479%2Ffiles
GitHub CopilotWrite better code with AIhttps://github.com/features/copilot
GitHub Copilot appDirect agents from issue to mergehttps://github.com/features/ai/github-app
MCP RegistryNewIntegrate external toolshttps://github.com/mcp
ActionsAutomate any workflowhttps://github.com/features/actions
CodespacesInstant dev environmentshttps://github.com/features/codespaces
IssuesPlan and track workhttps://github.com/features/issues
Code ReviewManage code changeshttps://github.com/features/code-review
GitHub Advanced SecurityFind and fix vulnerabilitieshttps://github.com/security/advanced-security
Code securitySecure your code as you buildhttps://github.com/security/advanced-security/code-security
Secret protectionStop leaks before they starthttps://github.com/security/advanced-security/secret-protection
Why GitHubhttps://github.com/why-github
Documentationhttps://docs.github.com
Bloghttps://github.blog
Changeloghttps://github.blog/changelog
Marketplacehttps://github.com/marketplace
View all featureshttps://github.com/features
Enterpriseshttps://github.com/enterprise
Small and medium teamshttps://github.com/team
Startupshttps://github.com/enterprise/startups
Nonprofitshttps://github.com/solutions/industry/nonprofits
App Modernizationhttps://github.com/solutions/use-case/app-modernization
DevSecOpshttps://github.com/solutions/use-case/devsecops
DevOpshttps://github.com/solutions/use-case/devops
CI/CDhttps://github.com/solutions/use-case/ci-cd
View all use caseshttps://github.com/solutions/use-case
Healthcarehttps://github.com/solutions/industry/healthcare
Financial serviceshttps://github.com/solutions/industry/financial-services
Manufacturinghttps://github.com/solutions/industry/manufacturing
Governmenthttps://github.com/solutions/industry/government
View all industrieshttps://github.com/solutions/industry
View all solutionshttps://github.com/solutions
AIhttps://github.com/resources/articles?topic=ai
Software Developmenthttps://github.com/resources/articles?topic=software-development
DevOpshttps://github.com/resources/articles?topic=devops
Securityhttps://github.com/resources/articles?topic=security
View all topicshttps://github.com/resources/articles
Customer storieshttps://github.com/customer-stories
Events & webinarshttps://github.com/resources/events
Ebooks & reportshttps://github.com/resources/whitepapers
Business insightshttps://github.com/solutions/executive-insights
GitHub Skillshttps://skills.github.com
Documentationhttps://docs.github.com
Customer supporthttps://support.github.com
Community forumhttps://github.com/orgs/community/discussions
Trust centerhttps://github.com/trust-center
Partnershttps://github.com/partners
View all resourceshttps://github.com/resources
GitHub SponsorsFund open source developershttps://github.com/open-source/sponsors
Security Labhttps://securitylab.github.com
Maintainer Communityhttps://maintainers.github.com
Acceleratorhttps://github.com/open-source/accelerator
GitHub Starshttps://stars.github.com
Archive Programhttps://archiveprogram.github.com
Topicshttps://github.com/topics
Trendinghttps://github.com/trending
Collectionshttps://github.com/collections
Enterprise platformAI-powered developer platformhttps://github.com/enterprise
GitHub Advanced SecurityEnterprise-grade security featureshttps://github.com/security/advanced-security
Copilot for BusinessEnterprise-grade AI featureshttps://github.com/features/copilot/copilot-business
Premium SupportEnterprise-grade 24/7 supporthttps://github.com/enterprise/premium-support
Pricinghttps://github.com/pricing
Search syntax tipshttps://docs.github.com/search-github/github-code-search/understanding-github-code-search-syntax
documentationhttps://docs.github.com/search-github/github-code-search/understanding-github-code-search-syntax
Sign in https://github.com/login?return_to=https%3A%2F%2Fgithub.com%2Ffeast-dev%2Ffeast%2Fpull%2F6479%2Ffiles
Sign up https://github.com/signup?ref_cta=Sign+up&ref_loc=header+logged+out&ref_page=%2F%3Cuser-name%3E%2F%3Crepo-name%3E%2Fpull_requests%2Fshow%2Ffiles&source=header-repo&source_repo=feast-dev%2Ffeast
Reloadhttps://github.com/feast-dev/feast/pull/6479/files
Reloadhttps://github.com/feast-dev/feast/pull/6479/files
Reloadhttps://github.com/feast-dev/feast/pull/6479/files
Please reload this pagehttps://github.com/feast-dev/feast/pull/6479/files
feast-dev https://github.com/feast-dev
feasthttps://github.com/feast-dev/feast
Notifications https://github.com/login?return_to=%2Ffeast-dev%2Ffeast
Fork 1.4k https://github.com/login?return_to=%2Ffeast-dev%2Ffeast
Star 7.1k https://github.com/login?return_to=%2Ffeast-dev%2Ffeast
Code https://github.com/feast-dev/feast
Issues 212 https://github.com/feast-dev/feast/issues
Pull requests 171 https://github.com/feast-dev/feast/pulls
Discussions https://github.com/feast-dev/feast/discussions
Actions https://github.com/feast-dev/feast/actions
Security and quality 1 https://github.com/feast-dev/feast/security
Insights https://github.com/feast-dev/feast/pulse
Code https://github.com/feast-dev/feast
Issues https://github.com/feast-dev/feast/issues
Pull requests https://github.com/feast-dev/feast/pulls
Discussions https://github.com/feast-dev/feast/discussions
Actions https://github.com/feast-dev/feast/actions
Security and quality https://github.com/feast-dev/feast/security
Insights https://github.com/feast-dev/feast/pulse
Sign up for GitHub https://github.com/signup?return_to=%2Ffeast-dev%2Ffeast%2Fissues%2Fnew%2Fchoose
terms of servicehttps://docs.github.com/terms
privacy statementhttps://docs.github.com/privacy
Sign inhttps://github.com/login?return_to=%2Ffeast-dev%2Ffeast%2Fissues%2Fnew%2Fchoose
ntkatholehttps://github.com/ntkathole
feast-dev:masterhttps://github.com/feast-dev/feast/tree/master
HarshSharma1112:harshhttps://github.com/HarshSharma1112/feast/tree/harsh
Conversation 2 https://github.com/feast-dev/feast/pull/6479
Commits 4 https://github.com/feast-dev/feast/pull/6479/commits
Checks 37 https://github.com/feast-dev/feast/pull/6479/checks
Files changed 2 https://github.com/feast-dev/feast/pull/6479/files
fix(dynamodb): Avoid tag race condition by using diff-based tag updates https://github.com/feast-dev/feast/pull/6479/files#top
Show all changes 4 commits https://github.com/feast-dev/feast/pull/6479/files
21951fb fix(dynamodb): Avoid tag race condition by using diff-based tag updates HarshSharma1112 Jun 8, 2026 https://github.com/feast-dev/feast/pull/6479/commits/21951fb531425fd43d974595245c664309b20adb
aff3696 Merge branch 'master' into harsh HarshSharma1112 Jun 8, 2026 https://github.com/feast-dev/feast/pull/6479/commits/aff369679d26b062cb37a2b904a32ca8869899e8
22a8fda style: run ruff auto-formatter to fix linting issues HarshSharma1112 Jun 9, 2026 https://github.com/feast-dev/feast/pull/6479/commits/22a8fda984c32255cf42cafbceafb0a87a32e805
a5cc7fa Merge branch 'harsh' of https://github.com/HarshSharma1112/feast into… HarshSharma1112 Jun 9, 2026 https://github.com/feast-dev/feast/pull/6479/commits/a5cc7faf0b72baab20e271d899aab45acfc86ac1
Clear filters https://github.com/feast-dev/feast/pull/6479/files
Please reload this pagehttps://github.com/feast-dev/feast/pull/6479/files
Please reload this pagehttps://github.com/feast-dev/feast/pull/6479/files
dynamodb.py https://github.com/feast-dev/feast/pull/6479/files#diff-331463f3d098d2af5805022abb43e80c4600f21f18126825bb2e3bebf1c6ea47
test_dynamodb_online_store.py https://github.com/feast-dev/feast/pull/6479/files#diff-47a1e36609372d7f10ad3cb7c2052999e3940d2f50d6f26b2df5473528cd93cd
https://github.com/feast-dev/feast/blob/master/CODEOWNERS#L10
sdk/python/feast/infra/online_stores/dynamodb.pyhttps://github.com/feast-dev/feast/pull/6479/files#diff-331463f3d098d2af5805022abb43e80c4600f21f18126825bb2e3bebf1c6ea47
View file https://github.com/HarshSharma1112/feast/blob/a5cc7faf0b72baab20e271d899aab45acfc86ac1/sdk/python/feast/infra/online_stores/dynamodb.py
Open in desktop https://desktop.github.com
https://github.co/hiddenchars
https://github.com/feast-dev/feast/pull/6479/{{ revealButtonHref }}
https://github.com/feast-dev/feast/pull/6479/files#diff-331463f3d098d2af5805022abb43e80c4600f21f18126825bb2e3bebf1c6ea47
https://github.com/feast-dev/feast/pull/6479/files#diff-331463f3d098d2af5805022abb43e80c4600f21f18126825bb2e3bebf1c6ea47
https://github.com/feast-dev/feast/blob/master/CODEOWNERS#L10
sdk/python/tests/unit/infra/online_store/test_dynamodb_online_store.pyhttps://github.com/feast-dev/feast/pull/6479/files#diff-47a1e36609372d7f10ad3cb7c2052999e3940d2f50d6f26b2df5473528cd93cd
View file https://github.com/HarshSharma1112/feast/blob/a5cc7faf0b72baab20e271d899aab45acfc86ac1/sdk/python/tests/unit/infra/online_store/test_dynamodb_online_store.py
Open in desktop https://desktop.github.com
https://github.co/hiddenchars
https://github.com/feast-dev/feast/pull/6479/{{ revealButtonHref }}
https://github.com/feast-dev/feast/pull/6479/files#diff-47a1e36609372d7f10ad3cb7c2052999e3940d2f50d6f26b2df5473528cd93cd
Please reload this pagehttps://github.com/feast-dev/feast/pull/6479/files
https://github.com
Termshttps://docs.github.com/site-policy/github-terms/github-terms-of-service
Privacyhttps://docs.github.com/site-policy/privacy-policies/github-privacy-statement
Securityhttps://github.com/security
Statushttps://www.githubstatus.com/
Communityhttps://github.community/
Docshttps://docs.github.com/
Contacthttps://support.github.com?tags=dotcom-footer

Viewport: width=device-width


URLs of crawlers that visited me.