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();

Reply via email to