Hi all,

I use two threads to test lightweight transaction. Each thread execute
"insert into test_table(column1,column2) values (i, thread_id) if not
exists" N times, and "i" is in the range of 0~N. If N is a small number,
it is ok,some row are inserted by thread 1 and other rows are inserted
by thread 2; if N is a big number, I will get
TimedoutException(acknowledged_by:1, paxos_in_progress:true) and have
the following two different results:

1) only one thread throws the exception, and this thread successfully
inserts the value;
2) both the two threads throw the exception, and no value is inserted
into the table.

I except that some rows in test_table are inserted by thread 1 and others
inserted by thread 2. If one thread inserts a row which has be in the
table,
the row will not be modified and the thread will continue to insert the
next row.

I think that is lightweight transaction's function, but why I get the
exception and how to avoid it.
I try to enlarge cas_contention_timeout_in_ms in cassandra.yaml, but it
does not work.

my cassandra version is 2.0.3, and the cluster has two nodes with
keypsace's replication_factor is 2.

Best Regards
Jim Xu

Reply via email to