Source:
private void processOpaqueEntry(List<SMREntry> smrEntries, Long currentSeqNum, UUID dstUUID) { CorfuStoreMetadata.Timestamp timestamp = logReplicationMetadataManager.getTimestamp(); long persistConfigID = logReplicationMetadataManager.query(timestamp, LogReplicationMetadataManager.LogReplicationMetadataType.TOPOLOGY_CONFIG_ID); long persistSnapStart = logReplicationMetadataManager.query(timestamp, LogReplicationMetadataManager.LogReplicationMetadataType.LAST_SNAPSHOT_STARTED); long persitSeqNum = logReplicationMetadataManager.query(timestamp, LogReplicationMetadataManager.LogReplicationMetadataType.LAST_SNAPSHOT_SEQ_NUM); if (topologyConfigId != persistConfigID || srcGlobalSnapshot != persistSnapStart || currentSeqNum != (persitSeqNum + 1)) { log.warn("Skip current topologyConfigId " + topologyConfigId + " srcGlobalSnapshot " + srcGlobalSnapshot + " currentSeqNum " + currentSeqNum + " persistedMetadata " + logReplicationMetadataManager.getTopologyConfigId() + " startSnapshot " + logReplicationMetadataManager.getLastSnapStartTimestamp() + " lastSnapSeqNum " + logReplicationMetadataManager.getLastSnapSeqNum()); return; } TxBuilder txBuilder = logReplicationMetadataManager.getTxBuilder(); logReplicationMetadataManager.appendUpdate(txBuilder, LogReplicationMetadataManager.LogReplicationMetadataType.TOPOLOGY_CONFIG_ID, topologyConfigId); logReplicationMetadataManager.appendUpdate(txBuilder, LogReplicationMetadataManager.LogReplicationMetadataType.LAST_SNAPSHOT_STARTED, srcGlobalSnapshot); logReplicationMetadataManager.appendUpdate(txBuilder, LogReplicationMetadataManager.LogReplicationMetadataType.LAST_SNAPSHOT_SEQ_NUM, currentSeqNum); for (SMREntry smrEntry : smrEntries) { txBuilder.logUpdate(dstUUID, smrEntry); } try { txBuilder.commit(timestamp); } catch (Exception e) { log.warn("Caught an exception ", e); throw e; } log.debug("Process the entries and set sequence number {}", smrEntries, currentSeqNum); }

Target:
private void processOpaqueEntry(List<SMREntry> smrEntries, Long currentSeqNum, UUID dstUUID) { CorfuStoreMetadata.Timestamp timestamp = logReplicationMetadataManager.getTimestamp(); long persistedTopologyConfigId = logReplicationMetadataManager.query(timestamp, LogReplicationMetadataManager.LogReplicationMetadataType.TOPOLOGY_CONFIG_ID); long persistedSnapshotStart = logReplicationMetadataManager.query(timestamp, LogReplicationMetadataManager.LogReplicationMetadataType.LAST_SNAPSHOT_STARTED); long persistedSequenceNum = logReplicationMetadataManager.query(timestamp, LogReplicationMetadataManager.LogReplicationMetadataType.LAST_SNAPSHOT_SEQ_NUM); if (topologyConfigId != persistedTopologyConfigId || srcGlobalSnapshot != persistedSnapshotStart || currentSeqNum != (persistedSequenceNum + 1)) { log.warn("Skip processing opaque entry. Current topologyConfigId={} srcGlobalSnapshot={}, currentSeqNum={}, " + "persistedTopologyConfigId={}, persistedSnapshotStart={}, persistedLastSequenceNum={}", topologyConfigId, srcGlobalSnapshot, recvSeq, persistedTopologyConfigId, persistedSnapshotStart, persistedSequenceNum); return; } TxBuilder txBuilder = logReplicationMetadataManager.getTxBuilder(); logReplicationMetadataManager.appendUpdate(txBuilder, LogReplicationMetadataManager.LogReplicationMetadataType.TOPOLOGY_CONFIG_ID, topologyConfigId); logReplicationMetadataManager.appendUpdate(txBuilder, LogReplicationMetadataManager.LogReplicationMetadataType.LAST_SNAPSHOT_STARTED, srcGlobalSnapshot); logReplicationMetadataManager.appendUpdate(txBuilder, LogReplicationMetadataManager.LogReplicationMetadataType.LAST_SNAPSHOT_SEQ_NUM, currentSeqNum); for (SMREntry smrEntry : smrEntries) { txBuilder.logUpdate(dstUUID, smrEntry); } try { txBuilder.commit(timestamp); } catch (Exception e) { log.warn("Caught an exception ", e); throw e; } log.debug("Process the entries and set sequence number {}", smrEntries, currentSeqNum); }