You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@lucene.apache.org by gu...@apache.org on 2023/10/10 05:42:25 UTC
[lucene] branch main updated: DeletedTerms#clear should reset ByteBlockPool (#12630)
This is an automated email from the ASF dual-hosted git repository.
guofeng pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/lucene.git
The following commit(s) were added to refs/heads/main by this push:
new e20e245f476 DeletedTerms#clear should reset ByteBlockPool (#12630)
e20e245f476 is described below
commit e20e245f4763e5aa53b34caa23cf515d516ba5b7
Author: gf2121 <52...@users.noreply.github.com>
AuthorDate: Tue Oct 10 00:42:17 2023 -0500
DeletedTerms#clear should reset ByteBlockPool (#12630)
---
.../src/java/org/apache/lucene/index/BufferedUpdates.java | 14 ++++++++++++++
.../test/org/apache/lucene/index/TestBufferedUpdates.java | 7 ++++++-
2 files changed, 20 insertions(+), 1 deletion(-)
diff --git a/lucene/core/src/java/org/apache/lucene/index/BufferedUpdates.java b/lucene/core/src/java/org/apache/lucene/index/BufferedUpdates.java
index f6a30e3e733..3dfe00b5e37 100644
--- a/lucene/core/src/java/org/apache/lucene/index/BufferedUpdates.java
+++ b/lucene/core/src/java/org/apache/lucene/index/BufferedUpdates.java
@@ -230,6 +230,7 @@ class BufferedUpdates implements Accountable {
}
void clear() {
+ pool.reset(false, false);
bytesUsed.addAndGet(-bytesUsed.get());
deleteTerms.clear();
termsSize = 0;
@@ -280,10 +281,23 @@ class BufferedUpdates implements Accountable {
}
}
+ /** Visible for testing. */
+ ByteBlockPool getPool() {
+ return pool;
+ }
+
@Override
public long ramBytesUsed() {
return bytesUsed.get();
}
+
+ /** Used for {@link BufferedUpdates#VERBOSE_DELETES}. */
+ @Override
+ public String toString() {
+ return keySet().stream()
+ .map(t -> t + "=" + get(t))
+ .collect(Collectors.joining(", ", "{", "}"));
+ }
}
private static class BytesRefIntMap {
diff --git a/lucene/core/src/test/org/apache/lucene/index/TestBufferedUpdates.java b/lucene/core/src/test/org/apache/lucene/index/TestBufferedUpdates.java
index af24088e4aa..6196dcd5e5b 100644
--- a/lucene/core/src/test/org/apache/lucene/index/TestBufferedUpdates.java
+++ b/lucene/core/src/test/org/apache/lucene/index/TestBufferedUpdates.java
@@ -61,10 +61,10 @@ public class TestBufferedUpdates extends LuceneTestCase {
public void testDeletedTerms() {
int iters = atLeast(10);
String[] fields = new String[] {"a", "b", "c"};
+ BufferedUpdates.DeletedTerms actual = new BufferedUpdates.DeletedTerms();
for (int iter = 0; iter < iters; iter++) {
Map<Term, Integer> expected = new HashMap<>();
- BufferedUpdates.DeletedTerms actual = new BufferedUpdates.DeletedTerms();
assertTrue(actual.isEmpty());
int termCount = atLeast(5000);
@@ -95,6 +95,11 @@ public class TestBufferedUpdates extends LuceneTestCase {
}));
assertEquals(expectedSorted, actualSorted);
+
+ actual.clear();
+ assertEquals(0, actual.size());
+ assertEquals(0, actual.ramBytesUsed());
+ assertNull(actual.getPool().buffer);
}
}
}