[ https://issues.apache.org/jira/browse/CASSANDRA-8745?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Sylvain Lebresne resolved CASSANDRA-8745. ----------------------------------------- Resolution: Not a Problem There *is* a way to distinguish those two case, and that is through the "writeType" argument that a WriteTimeoutException contains. That writeType will be BATCH for syncWriteBatchedMutations and BATCH_LOG for syncWriteToBatchlog. > Ambiguous WriteTimeoutException during atomic batch execution > ------------------------------------------------------------- > > Key: CASSANDRA-8745 > URL: https://issues.apache.org/jira/browse/CASSANDRA-8745 > Project: Cassandra > Issue Type: Bug > Components: Core > Environment: 2.1.x > Reporter: Stefan Podkowinski > > StorageProxy will handle atomic batches in mutateAtomically() the following > way: > * syncWriteToBatchlog() <- WriteTimeoutException > * syncWriteBatchedMutations() <- WriteTimeoutException > * asyncRemoveFromBatchlog() > All WriteTimeoutExceptions for syncWrite will be catched and passed to the > caller. Unfortunately the caller will not be able to tell if the timeout > occured while creating/sending the batchlog or executing the individual batch > statements. > # Timeout during batchlog creation: client must retry operation or batch > might be lost > # Timout during mutations: client should not retry as a new batchlog will be > created on every StorageProxy.mutateAtomically() call while previous > batchlogs would not be deleted. This can have performance implications for > large batches on stressed out clusters > There should be a way to tell if a batchlog was successfully created, so we > can let the client move on and assume batch execution based on batchlog at > some point in the future. > See also CASSANDRA-8672 for similar error handling issue -- This message was sent by Atlassian JIRA (v6.3.4#6332)