...
The data got inserted into user table and got updated as above batch execution
...
.
The WriteTimeoutException.getWriteType() == BATCH, ensures data is inserted into the table
Approach
To handle above WriteTimeoutException
we can use BatchStatement.Type
Code Block |
---|
BatchStatement batchStatement = new BatchStatement(BatchStatement.Type.UNLOGGEDLOGGED); |
Below are the two batch types we executed for partial writes
LOGGED
UNLOGGED
LOGGED and UNLOGGED batch types, inserts data and throws exception on acknowledgement error. This needs to be handled in the code.
In cassandra docs, it is suggested to go with UNLOGGED batch type for better performance.
For detailed analysis, please refer hereBatch type of LOGGED, guarantees atomic insertion of data, and WriteTimeoutException.getWriteType() == BATCH, eventually written to the appropriate replicas and the developer doesn't have to do anything.
Thus, the above two checks handles partial write.