[
https://issues.apache.org/jira/browse/CASSANDRA-12862?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15623195#comment-15623195
]
Artur Siekielski commented on CASSANDRA-12862:
----------------------------------------------
{quote}
But I see that sometimes "INSERT ... IF NOT EXISTS" returns applied=False even
when the PK doesn't exist. I assume it's normal and I should retry the insert?
{quote}
Correction, I don't actually see this. IF the LWT query returns "applied" row,
then it corresponds to the existence of the given PK. However, WriteTimeout can
be raised even when only a single thread does insert for the given PK.
> LWT leaves corrupted state
> --------------------------
>
> Key: CASSANDRA-12862
> URL: https://issues.apache.org/jira/browse/CASSANDRA-12862
> Project: Cassandra
> Issue Type: Bug
> Components: Core
> Environment: Cassandra 2.1.16, 3-node cluster with RF=3,
> NetworkTopology with 1 DC
> Reporter: Artur Siekielski
>
> When executing "INSERT ... IF NOT EXISTS" (with consistency LOCAL_QUORUM)
> while the concurrency level is high (about 50 simultaneous threads doing
> inserts, for the same partition key but different clustering keys) sometimes
> the INSERT returns applied=False, but the subsequent SELECTs return no data.
> The corrupted state is permanent - neither the INSERT or SELECTs succeed,
> making the PK "locked".
> I can easily reproduce this - for 100 simultaneous threads doing a single
> insert I get 1-2 corruptions.
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)