@@ -63,28 +63,28 @@ public void getDataAndDiff(BigInteger min, BigInteger max) {
63
63
ResultSet resultSet = sourceSession .execute (
64
64
sourceSelectStatement .bind (hasRandomPartitioner ? min : min .longValueExact (), hasRandomPartitioner ? max : max .longValueExact ()).setConsistencyLevel (ConsistencyLevel .LOCAL_QUORUM ));
65
65
66
- Map <Row , CompletionStage <AsyncResultSet >> writeResults = new HashMap <Row , CompletionStage <AsyncResultSet >>();
67
- StreamSupport .stream (resultSet .spliterator (), false ).forEach (sRow -> {
66
+ Map <Row , CompletionStage <AsyncResultSet >> srcToTargetRowMap = new HashMap <Row , CompletionStage <AsyncResultSet >>();
67
+ StreamSupport .stream (resultSet .spliterator (), false ).forEach (srcRow -> {
68
68
readLimiter .acquire (1 );
69
69
// do not process rows less than writeTimeStampFilter
70
- if (!(writeTimeStampFilter && (getLargestWriteTimeStamp (sRow ) < minWriteTimeStampFilter
71
- || getLargestWriteTimeStamp (sRow ) > maxWriteTimeStampFilter ))) {
70
+ if (!(writeTimeStampFilter && (getLargestWriteTimeStamp (srcRow ) < minWriteTimeStampFilter
71
+ || getLargestWriteTimeStamp (srcRow ) > maxWriteTimeStampFilter ))) {
72
72
if (readCounter .incrementAndGet () % printStatsAfter == 0 ) {
73
73
printCounts ("Current" );
74
74
}
75
75
76
- CompletionStage <AsyncResultSet > writeResultSet = astraSession
77
- .executeAsync (selectFromAstra (astraSelectStatement , sRow ));
78
- writeResults .put (sRow , writeResultSet );
79
- if (writeResults .size () > 1000 ) {
80
- iterateAndClearWriteResults ( writeResults );
76
+ CompletionStage <AsyncResultSet > targetRowFuture = astraSession
77
+ .executeAsync (selectFromAstra (astraSelectStatement , srcRow ));
78
+ srcToTargetRowMap .put (srcRow , targetRowFuture );
79
+ if (srcToTargetRowMap .size () > 1000 ) {
80
+ diffAndClear ( srcToTargetRowMap );
81
81
}
82
82
} else {
83
83
readCounter .incrementAndGet ();
84
84
skippedCounter .incrementAndGet ();
85
85
}
86
86
});
87
- iterateAndClearWriteResults ( writeResults );
87
+ diffAndClear ( srcToTargetRowMap );
88
88
89
89
printCounts ("Final" );
90
90
@@ -98,17 +98,16 @@ public void getDataAndDiff(BigInteger min, BigInteger max) {
98
98
99
99
}
100
100
101
- private void iterateAndClearWriteResults (Map <Row , CompletionStage <AsyncResultSet >> writeResults ) {
102
- for (Row sr : writeResults .keySet ()) {
103
- Row ar = null ;
101
+ private void diffAndClear (Map <Row , CompletionStage <AsyncResultSet >> srcToTargetRowMap ) {
102
+ for (Row srcRow : srcToTargetRowMap .keySet ()) {
104
103
try {
105
- ar = writeResults .get (sr ).toCompletableFuture ().get ().one ();
104
+ Row targetRow = srcToTargetRowMap .get (srcRow ).toCompletableFuture ().get ().one ();
105
+ diff (srcRow , targetRow );
106
106
} catch (Exception e ) {
107
- logger .error ("Could not perform diff for Key: " + getKey (sr ), e );
107
+ logger .error ("Could not perform diff for Key: " + getKey (srcRow ), e );
108
108
}
109
- diff (sr , ar );
110
109
}
111
- writeResults .clear ();
110
+ srcToTargetRowMap .clear ();
112
111
}
113
112
114
113
public void printCounts (String finalStr ) {
0 commit comments