This is an automated email from the ASF dual-hosted git repository. ddanielr pushed a commit to branch main in repository https://gitbox.apache.org/repos/asf/accumulo.git
commit 3792630c867b2affb4f16efc9f537a04ca66cf3e Merge: b8869fb72e d973179452 Author: Daniel Roberts <ddani...@gmail.com> AuthorDate: Thu Dec 28 04:08:36 2023 +0000 Merge branch '2.1' .../accumulo/server/metadata/ServerAmpleImpl.java | 18 ++++++++++++++---- .../accumulo/test/functional/GarbageCollectorIT.java | 18 +++++++++++++++--- 2 files changed, 29 insertions(+), 7 deletions(-) diff --cc server/base/src/main/java/org/apache/accumulo/server/metadata/ServerAmpleImpl.java index 0e4fa2c478,ef02f22b4d..7aa6ecb6e1 --- a/server/base/src/main/java/org/apache/accumulo/server/metadata/ServerAmpleImpl.java +++ b/server/base/src/main/java/org/apache/accumulo/server/metadata/ServerAmpleImpl.java @@@ -227,13 -226,23 +227,23 @@@ public class ServerAmpleImpl extends Am } try (BatchWriter writer = context.createBatchWriter(level.metaTable())) { - for (GcCandidate candidate : candidates) { - Mutation m = new Mutation(DeletesSection.encodeRow(candidate.getPath())); - m.putDelete(EMPTY_TEXT, EMPTY_TEXT, candidate.getUid()); - writer.addMutation(m); + if (type == GcCandidateType.VALID) { + for (GcCandidate candidate : candidates) { + Mutation m = new Mutation(DeletesSection.encodeRow(candidate.getPath())); + // Removes all versions of the candidate to avoid reprocessing deleted file entries + m.putDelete(EMPTY_TEXT, EMPTY_TEXT); + writer.addMutation(m); + } + } else { + for (GcCandidate candidate : candidates) { + Mutation m = new Mutation(DeletesSection.encodeRow(candidate.getPath())); + // Removes this and older versions while allowing newer candidate versions to persist + m.putDelete(EMPTY_TEXT, EMPTY_TEXT, candidate.getUid()); + writer.addMutation(m); + } } } catch (MutationsRejectedException | TableNotFoundException e) { - throw new RuntimeException(e); + throw new IllegalStateException(e); } } diff --cc test/src/main/java/org/apache/accumulo/test/functional/GarbageCollectorIT.java index 82c657e1a5,1776bc4c03..01ca7b8f5d --- a/test/src/main/java/org/apache/accumulo/test/functional/GarbageCollectorIT.java +++ b/test/src/main/java/org/apache/accumulo/test/functional/GarbageCollectorIT.java @@@ -497,11 -510,10 +506,11 @@@ public class GarbageCollectorIT extend GcCandidate deleteCandidate = candidates.get(0); assertNotNull(deleteCandidate); - ample.putGcCandidates(tableId, List.of(new StoredTabletFile(deleteCandidate.getPath()))); + ample.putGcCandidates(tableId, + List.of(StoredTabletFile.of(new Path(deleteCandidate.getPath())))); log.debug("Deleting Candidate {}", deleteCandidate); - ample.deleteGcCandidates(datalevel, List.of(deleteCandidate), Ample.GcCandidateType.INUSE); + ample.deleteGcCandidates(datalevel, List.of(deleteCandidate), type); candidate = ample.getGcCandidates(datalevel);