Skip to content

Commit 0a35a1d

Browse files
committed
CDM-23 cleaning up abandoned methods
1 parent 4ca95e1 commit 0a35a1d

File tree

7 files changed

+158
-349
lines changed

7 files changed

+158
-349
lines changed

src/main/java/datastax/astra/migrate/DiffJobSession.java

Lines changed: 36 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -5,8 +5,13 @@
55
import com.datastax.oss.driver.api.core.cql.ResultSet;
66
import com.datastax.oss.driver.api.core.cql.Row;
77
import com.datastax.oss.driver.api.core.data.UdtValue;
8+
import datastax.astra.migrate.cql.EnhancedPK;
89
import datastax.astra.migrate.cql.PKFactory;
910
import datastax.astra.migrate.cql.Record;
11+
import datastax.astra.migrate.cql.features.ExplodeMap;
12+
import datastax.astra.migrate.cql.features.Feature;
13+
import datastax.astra.migrate.cql.features.FeatureFactory;
14+
import datastax.astra.migrate.cql.features.Featureset;
1015
import datastax.astra.migrate.cql.statements.OriginSelectByPartitionRangeStatement;
1116
import datastax.astra.migrate.cql.statements.TargetSelectByPKStatement;
1217
import datastax.astra.migrate.properties.KnownProperties;
@@ -36,6 +41,10 @@ public class DiffJobSession extends CopyJobSession {
3641
private final AtomicLong skippedCounter = new AtomicLong(0);
3742

3843
private final boolean isCounterTable;
44+
private final List<Integer> targetToOriginColumnIndexes;
45+
private final List<MigrateDataType> targetColumnTypes;
46+
private final int explodeMapKeyIndex;
47+
private final int explodeMapValueIndex;
3948

4049
private DiffJobSession(CqlSession originSession, CqlSession targetSession, SparkConf sc) {
4150
super(originSession, targetSession, sc);
@@ -46,7 +55,20 @@ private DiffJobSession(CqlSession originSession, CqlSession targetSession, Spark
4655
autoCorrectMismatch = propertyHelper.getBoolean(KnownProperties.TARGET_AUTOCORRECT_MISMATCH);
4756
logger.info("PARAM -- Autocorrect Mismatch: {}", autoCorrectMismatch);
4857

49-
isCounterTable = cqlHelper.isCounterTable();
58+
this.isCounterTable = cqlHelper.isCounterTable();
59+
this.targetToOriginColumnIndexes = cqlHelper.getPKFactory().getTargetToOriginColumnIndexes();
60+
this.targetColumnTypes = cqlHelper.getPKFactory().getTargetColumnTypes();
61+
62+
Feature explodeMapFeature = cqlHelper.getFeature(Featureset.EXPLODE_MAP);
63+
if (FeatureFactory.isEnabled(explodeMapFeature)) {
64+
List<String> targetColumnNames = propertyHelper.getStringList(KnownProperties.TARGET_COLUMN_NAMES);
65+
this.explodeMapKeyIndex = targetColumnNames.indexOf(explodeMapFeature.getString(ExplodeMap.Property.KEY_COLUMN_NAME));
66+
this.explodeMapValueIndex = targetColumnNames.indexOf(explodeMapFeature.getString(ExplodeMap.Property.VALUE_COLUMN_NAME));
67+
}
68+
else {
69+
this.explodeMapKeyIndex = -1;
70+
this.explodeMapValueIndex = -1;
71+
}
5072
}
5173

5274
public static DiffJobSession getInstance(CqlSession originSession, CqlSession targetSession, SparkConf sparkConf) {
@@ -138,6 +160,7 @@ public synchronized void printCounts(boolean isFinal) {
138160
}
139161

140162
private void diff(Record record) {
163+
EnhancedPK originPK = record.getPk();
141164
Row originRow = record.getOriginRow();
142165
Row targetRow = record.getTargetRow();
143166

@@ -156,7 +179,7 @@ private void diff(Record record) {
156179
return;
157180
}
158181

159-
String diffData = isDifferent(originRow, targetRow);
182+
String diffData = isDifferent(originPK, originRow, targetRow);
160183
if (!diffData.isEmpty()) {
161184
mismatchCounter.incrementAndGet();
162185
logger.error("Mismatch row found for key: {} Mismatch: {}", record.getPk(), diffData);
@@ -174,30 +197,27 @@ private void diff(Record record) {
174197
}
175198
}
176199

177-
private String isDifferent(Row originRow, Row targetRow) {
200+
private String isDifferent(EnhancedPK pk, Row originRow, Row targetRow) {
178201
StringBuffer diffData = new StringBuffer();
179-
IntStream.range(0, cqlHelper.getOriginColTypes().size()).parallel().forEach(index -> {
180-
MigrateDataType dataTypeObj = cqlHelper.getOriginColTypes().get(index);
181-
Object origin = cqlHelper.getData(dataTypeObj, index, originRow);
182-
if (index < cqlHelper.getIdColTypes().size()) {
183-
Optional<Object> optionalVal = cqlHelper.handleBlankInPrimaryKey(index, origin, dataTypeObj.typeClass, originRow, false);
184-
if (optionalVal.isPresent()) {
185-
origin = optionalVal.get();
186-
}
187-
}
202+
IntStream.range(0, targetColumnTypes.size()).parallel().forEach(targetIndex -> {
203+
MigrateDataType dataTypeObj = targetColumnTypes.get(targetIndex);
204+
Object target = cqlHelper.getData(dataTypeObj, targetIndex, targetRow);
188205

189-
Object target = cqlHelper.getData(dataTypeObj, index, targetRow);
206+
Object origin;
207+
if (targetIndex == explodeMapKeyIndex) origin = pk.getExplodeMapKey();
208+
else if (targetIndex == explodeMapValueIndex) origin = pk.getExplodeMapValue();
209+
else origin = cqlHelper.getData(dataTypeObj, targetToOriginColumnIndexes.get(targetIndex), originRow);
190210

191211
boolean isDiff = dataTypeObj.diff(origin, target);
192212
if (isDiff) {
193-
if (dataTypeObj.typeClass.equals(UdtValue.class)) {
213+
if (dataTypeObj.getTypeClass().equals(UdtValue.class)) {
194214
String originUdtContent = ((UdtValue) origin).getFormattedContents();
195215
String targetUdtContent = ((UdtValue) target).getFormattedContents();
196216
if (!originUdtContent.equals(targetUdtContent)) {
197-
diffData.append("(Index: " + index + " Origin: " + originUdtContent + " Target: " + targetUdtContent + ") ");
217+
diffData.append("(Target Index: " + targetIndex + " Origin: " + originUdtContent + " Target: " + targetUdtContent + ") ");
198218
}
199219
} else {
200-
diffData.append("(Index: " + index + " Origin: " + origin + " Target: " + target + ") ");
220+
diffData.append("Target Index: " + targetIndex + " Origin: " + origin + " Target: " + target + ") ");
201221
}
202222
}
203223
});

src/main/java/datastax/astra/migrate/SplitPartitions.java

Lines changed: 12 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -3,9 +3,7 @@
33
import org.slf4j.Logger;
44
import org.slf4j.LoggerFactory;
55

6-
import java.io.BufferedReader;
7-
import java.io.IOException;
8-
import java.io.Serializable;
6+
import java.io.*;
97
import java.math.BigInteger;
108
import java.util.ArrayList;
119
import java.util.Collection;
@@ -44,7 +42,7 @@ public static List<Partition> getSubPartitionsFromFile(int numSplits) throws IOE
4442
logger.info("ThreadID: {} Splitting partitions in file: ./partitions.csv using a split-size of {}"
4543
, Thread.currentThread().getId(), numSplits);
4644
List<Partition> partitions = new ArrayList<Partition>();
47-
BufferedReader reader = Util.getfileReader("./partitions.csv");
45+
BufferedReader reader = getfileReader("./partitions.csv");
4846
String line = null;
4947
while ((line = reader.readLine()) != null) {
5048
if (line.startsWith("#")) {
@@ -65,7 +63,7 @@ public static List<PKRows> getRowPartsFromFile(int numSplits) throws IOException
6563
logger.info("ThreadID: {} Splitting rows in file: ./primary_key_rows.csv using a split-size of {}"
6664
, Thread.currentThread().getId(), numSplits);
6765
List<String> pkRows = new ArrayList<String>();
68-
BufferedReader reader = Util.getfileReader("./primary_key_rows.csv");
66+
BufferedReader reader = getfileReader("./primary_key_rows.csv");
6967
String pkRow = null;
7068
while ((pkRow = reader.readLine()) != null) {
7169
if (pkRow.startsWith("#")) {
@@ -158,4 +156,13 @@ public String toString() {
158156
return "Processing partition for token range " + min + " to " + max;
159157
}
160158
}
159+
160+
private static BufferedReader getfileReader(String fileName) {
161+
try {
162+
return new BufferedReader(new FileReader(fileName));
163+
} catch (FileNotFoundException fnfe) {
164+
throw new RuntimeException("No '" + fileName + "' file found!! Add this file in the current folder & rerun!");
165+
}
166+
}
167+
161168
}

src/main/java/datastax/astra/migrate/Util.java

Lines changed: 0 additions & 60 deletions
This file was deleted.

0 commit comments

Comments
 (0)