in src/main/java/org/apache/accumulo/testing/randomwalk/image/Verify.java [46:94]
public void visit(State state, RandWalkEnv env, Properties props) throws Exception {
int maxVerify = Integer.parseInt(props.getProperty("maxVerify"));
int numVerifications = env.getRandom().nextInt(maxVerify - 1) + 1;
indexTableName = state.getString("indexTableName");
imageTableName = state.getString("imageTableName");
AccumuloClient client = env.getAccumuloClient();
try (Scanner indexScanner = client.createScanner(indexTableName, new Authorizations());
Scanner imageScanner = client.createScanner(imageTableName, new Authorizations())) {
String uuid = UUID.randomUUID().toString();
MessageDigest alg = MessageDigest.getInstance("SHA-1");
alg.update(uuid.getBytes(UTF_8));
indexScanner.setRange(new Range(new Text(alg.digest()), null));
indexScanner.setBatchSize(numVerifications);
Text curRow = null;
int count = 0;
for (Entry<Key,Value> entry : indexScanner) {
curRow = entry.getKey().getRow();
String rowToVerify = entry.getValue().toString();
verifyRow(imageScanner, rowToVerify);
count++;
if (count == numVerifications) {
break;
}
}
if (count != numVerifications && curRow != null) {
Text lastRow = (Text) state.get("lastIndexRow");
if (lastRow.compareTo(curRow) != 0) {
log.error("Verified only " + count + " of " + numVerifications + " - curRow " + curRow
+ " lastKey " + lastRow);
}
}
}
int verified = state.getInteger("verified") + numVerifications;
log.debug("Verified " + numVerifications + " - Total " + verified);
state.set("verified", verified);
}