Improve segmented journal actor metrics
[controller.git] / opendaylight / md-sal / sal-distributed-datastore / src / main / java / org / opendaylight / controller / cluster / datastore / FrontendHistoryMetadataBuilder.java
index b00d25da685f3d2adb8820f2d4c290226310e155..f869e7ac5ac679658ca146ab38685ebf91d65947 100644 (file)
@@ -18,14 +18,12 @@ import org.opendaylight.controller.cluster.access.concepts.ClientIdentifier;
 import org.opendaylight.controller.cluster.access.concepts.LocalHistoryIdentifier;
 import org.opendaylight.controller.cluster.access.concepts.TransactionIdentifier;
 import org.opendaylight.controller.cluster.datastore.persisted.FrontendHistoryMetadata;
+import org.opendaylight.controller.cluster.datastore.utils.ImmutableUnsignedLongSet;
 import org.opendaylight.controller.cluster.datastore.utils.MutableUnsignedLongSet;
 import org.opendaylight.controller.cluster.datastore.utils.UnsignedLongBitmap;
-import org.opendaylight.yangtools.concepts.Builder;
 import org.opendaylight.yangtools.concepts.Identifiable;
 
-final class FrontendHistoryMetadataBuilder implements Builder<FrontendHistoryMetadata>,
-        Identifiable<LocalHistoryIdentifier> {
-
+final class FrontendHistoryMetadataBuilder implements Identifiable<LocalHistoryIdentifier> {
     private final @NonNull Map<UnsignedLong, Boolean> closedTransactions;
     private final @NonNull MutableUnsignedLongSet purgedTransactions;
     private final @NonNull LocalHistoryIdentifier identifier;
@@ -50,7 +48,6 @@ final class FrontendHistoryMetadataBuilder implements Builder<FrontendHistoryMet
         return identifier;
     }
 
-    @Override
     public FrontendHistoryMetadata build() {
         return new FrontendHistoryMetadata(identifier.getHistoryId(), identifier.getCookie(), closed,
             UnsignedLongBitmap.copyOf(closedTransactions), purgedTransactions.immutableCopy());
@@ -75,6 +72,10 @@ final class FrontendHistoryMetadataBuilder implements Builder<FrontendHistoryMet
         purgedTransactions.add(txidBits);
     }
 
+    void onTransactionsSkipped(final ImmutableUnsignedLongSet txIds) {
+        purgedTransactions.addAll(txIds);
+    }
+
     /**
      * Transform frontend metadata for a particular client history into its {@link LocalFrontendHistory} counterpart.
      *