ATLAS-5317: Resilient bulk purge with pre-validation, worker batches,…#704
Open
sheetalshah1007 wants to merge 1 commit into
Open
ATLAS-5317: Resilient bulk purge with pre-validation, worker batches,…#704sheetalshah1007 wants to merge 1 commit into
sheetalshah1007 wants to merge 1 commit into
Conversation
… partial-success responses, and runId-correlated admin audit APIs Fix addEntity() duplicate check in EntityMutationResponse.
sheetalshah1007
force-pushed
the
ATLAS-5317
branch
from
July 25, 2026 06:39
9073ad6 to
159bfcb
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
… partial-success responses, and runId-correlated admin audit APIs
Fix addEntity() duplicate check in EntityMutationResponse.
Attachments
ATLAS-5317-Resilient-Bulk-Purge-In-Atlas-IMPLEMENTATION_NOTES.md
Summary
This PR implements resilient bulk purge according to the Resilient Bulk Purge in Atlas Using Transaction Batching design spec. It replaces the old, single-transaction REST bulk purge with a pre-validated, worker-batch processing model that is now shared by both REST and scheduled (cron) purges.
What changes were proposed in this pull request?
Key changes
failedEntities.atlas.purge.api.max.request.size(default 1000).PurgeBatchOrchestrator/WorkItemManager(atlas.purge.worker.batch.size=100,atlas.purge.workers.count=2).failedEntities+PurgeSummary(runId, dependency counts,executionFailed).addEntity()with an O(1) GUID Set per operation; rebuild onsetMutatedEntities().purgefailure.log, linked by indexedrunIdandauditRowKind./purgedEntities,/batches, and/detailsdrill-down on summary and batch rows.accumulateDeletionCandidates()returns GUIDs;DeleteHandlerV1skips already-removed vertices (ATLAS-4766).AUTO_PURGE,runId, andaudit_row_kindon__AtlasAuditEntry(typedef patches 009/010).Compatibility notes
accumulateDeletionCandidates()returnsSet<String>(notSet<AtlasVertex>).failedEntities, not silently dropped.See
ATLAS-5317-Resilient-Bulk-Purge-In-Atlas-IMPLEMENTATION_NOTES.mdfor flow, config, audit details, and design deviations.How was this patch tested?
PurgeTestPurgeBatchOrchestratorTest,PurgeBatchExecutorTestAtlasEntityStoreV2Test,DeleteHandlerV1TestAdminResourceTestAtlasClientV2TestPerformance testing
Load: 1,000
hive_tableentities (2 columns each) — 5,000 entities total (tables + columns + storage-desc + ddl ).workers.count=2workers.count=1Regarding
atlas.purge.workers.countDefault = 2 — Cron purge historically used 2 workers; the new design keeps that. One batch can commit while another runs — solid speed-up without overwhelming the database.