Batches
As of version 0.1.0
you can prime batches based on the queries they contain, the consistency and the batch type (LOGGED, UNLOGGED, COUNTER)
Useful imports:
import static org.scassandra.http.client.BatchType.*;
import static org.scassandra.http.client.BatchQueryKind.*;
import static org.scassandra.http.client.PrimingRequest.*;
Priming a batch with just queries for a read request timeout:
primingClient.primeBatch(
BatchPrimingRequest.batchPrimingRequest()
.withQueries(
batchQueryPrime("insert something else", query)
.withThen(then().withResult(read_request_timeout))
);
For batches that contain prepared statements you must prime the prepared statement first e.g:
primingClient.prime(PrimingRequest.preparedStatementBuilder()
.withQuery("insert ? ?")
.withThen(then().withVariableTypes(ASCII, INT))
);
primingClient.primeBatch(
BatchPrimingRequest.batchPrimingRequest()
.withQueries(
batchQueryPrime("insert something else", query),
batchQueryPrime("insert ? ?", prepared_statement))
.withThen(then().withResult(read_request_timeout))
);
To prime batches other than LOGGED you can override the batch type:
primingClient.primeBatch(BatchPrimingRequest.batchPrimingRequest()
.withConsistency(ONE)
.withType(BatchType.COUNTER)
.withQueries(BatchQueryPrime.batchQueryPrime(query, BatchQueryKind.query))
.withThen(
then().withResult(PrimingRequest.Result.read_request_timeout))
);