Asynchronous querying

When executing a normal query, the call returns only after the query completes. When you call the execute() method of a session instance to execute a query, the call returns after doing I/O to the cluster, waiting for the cluster to execute query and getting a response from the cluster. Meanwhile, the querying thread is idle and blocked. It can't execute other queries.

Consider the following example where you're trying to load a lot of user data. We could execute the code in a loop thousands of times, but each iteration waits for session.execute() to finish:

public ResultSet insertUserData(/* Some user data) {PreparedStatement insertUser = ...; // Prepare the statementBoundStatement bs = ... ; // Bind the statement ...

Get Learning Apache Cassandra - Second Edition now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.