This is an automated email from the ASF dual-hosted git repository. timoninmaxim pushed a commit to branch ignite-2.16 in repository https://gitbox.apache.org/repos/asf/ignite.git
commit 369644c989e85aa4c889d89a2a9de69cf8124f05 Author: Maksim Timonin <timoninma...@apache.org> AuthorDate: Fri Dec 8 15:23:42 2023 +0300 IGNITE-21041 Make FilteredRecord local for RecordSerializer (#11082) --- .../apache/ignite/internal/pagemem/wal/record/FilteredRecord.java | 3 --- .../cache/persistence/wal/reader/StandaloneWalRecordsIterator.java | 5 ++++- .../cache/persistence/wal/serializer/RecordV1Serializer.java | 5 ++++- .../cache/persistence/wal/serializer/RecordV2Serializer.java | 5 ++++- 4 files changed, 12 insertions(+), 6 deletions(-) diff --git a/modules/core/src/main/java/org/apache/ignite/internal/pagemem/wal/record/FilteredRecord.java b/modules/core/src/main/java/org/apache/ignite/internal/pagemem/wal/record/FilteredRecord.java index e077e5accc2..519e825953d 100644 --- a/modules/core/src/main/java/org/apache/ignite/internal/pagemem/wal/record/FilteredRecord.java +++ b/modules/core/src/main/java/org/apache/ignite/internal/pagemem/wal/record/FilteredRecord.java @@ -24,9 +24,6 @@ import org.apache.ignite.internal.processors.cache.persistence.wal.AbstractWalRe * {@link AbstractWalRecordsIterator}. */ public class FilteredRecord extends WALRecord { - /** Instance. */ - public static final FilteredRecord INSTANCE = new FilteredRecord(); - /** {@inheritDoc} */ @Override public RecordType type() { return null; diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/persistence/wal/reader/StandaloneWalRecordsIterator.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/persistence/wal/reader/StandaloneWalRecordsIterator.java index c7582b7cf14..26dd7c3e647 100644 --- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/persistence/wal/reader/StandaloneWalRecordsIterator.java +++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/persistence/wal/reader/StandaloneWalRecordsIterator.java @@ -96,6 +96,9 @@ class StandaloneWalRecordsIterator extends AbstractWalRecordsIterator { /** Replay from bound include. */ private final WALPointer lowBound; + /** Singleton instance of {@link FilteredRecord} */ + private final WALRecord filteredRecord = new FilteredRecord(); + /** * Creates iterator in file-by-file iteration mode. Directory * @@ -286,7 +289,7 @@ class StandaloneWalRecordsIterator extends AbstractWalRecordsIterator { return tup; if (!checkBounds(tup.get1())) - return new T2<>(tup.get1(), FilteredRecord.INSTANCE); // FilteredRecord for mark as filtered. + return new T2<>(tup.get1(), filteredRecord); // FilteredRecord for mark as filtered. return tup; } diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/persistence/wal/serializer/RecordV1Serializer.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/persistence/wal/serializer/RecordV1Serializer.java index 295e174abf8..52c360d47eb 100644 --- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/persistence/wal/serializer/RecordV1Serializer.java +++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/persistence/wal/serializer/RecordV1Serializer.java @@ -98,6 +98,9 @@ public class RecordV1Serializer implements RecordSerializer { */ private final boolean marshalledMode; + /** Singleton instance of {@link FilteredRecord} */ + private final FilteredRecord filteredRecord = new FilteredRecord(); + /** Thread-local heap byte buffer. */ private final ThreadLocal<ByteBuffer> heapTlb = new ThreadLocal<ByteBuffer>() { @Override protected ByteBuffer initialValue() { @@ -148,7 +151,7 @@ public class RecordV1Serializer implements RecordSerializer { if (recType.purpose() != WALRecord.RecordPurpose.INTERNAL && recordFilter != null && !recordFilter.apply(rec.type(), ptr)) - return FilteredRecord.INSTANCE; + return filteredRecord; else if (marshalledMode) { ByteBuffer buf = heapTlb.get(); diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/persistence/wal/serializer/RecordV2Serializer.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/persistence/wal/serializer/RecordV2Serializer.java index 60c68c13f7c..21aa52a91ba 100644 --- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/persistence/wal/serializer/RecordV2Serializer.java +++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/persistence/wal/serializer/RecordV2Serializer.java @@ -74,6 +74,9 @@ public class RecordV2Serializer implements RecordSerializer { /** Skip position check flag. Should be set for reading compacted wal file with skipped physical records. */ private final boolean skipPositionCheck; + /** Singleton instance of {@link FilteredRecord} */ + private final FilteredRecord filteredRecord = new FilteredRecord(); + /** Thread-local heap byte buffer. */ private final ThreadLocal<ByteBuffer> heapTlb = ThreadLocal.withInitial(() -> ByteBuffer.allocate(4096).order(GridUnsafe.NATIVE_BYTE_ORDER)); @@ -143,7 +146,7 @@ public class RecordV2Serializer implements RecordSerializer { if (in.skipBytes(toSkip) < toSkip) throw new EOFException("Reached end of file while reading record: " + ptr); - return FilteredRecord.INSTANCE; + return filteredRecord; } else if (marshalledMode) { ByteBuffer buf = heapTlb.get();