I have JNA (cassandra only complains about obsolete version - Obsolete version of JNA present; unable to read errno. Upgrade to JNA 3.2.7 or later - I have stock centos version 3.2.4).

Usage of separate CFs for each test run is difficult to set up.

Can you please elaborate on the specials of truncate?

Ondřej Černoš

On Thu, Apr 11, 2013 at 5:04 PM, Edward Capriolo <edlinuxguru@gmail.com> wrote:
If you do not have JNA truncate has to fork an 'ln -s'' command for the snapshots. I think that makes it un-predicatable. Truncate has its own timeout value now (separate from the other timeouts). If possible I think it is better to make each test use it's own CF and avoid truncate entirely.

On Thu, Apr 11, 2013 at 9:48 AM, Ondřej Černoš <cernoso@gmail.com> wrote:

I use C* 1.2.3 and CQL3.

I integrated cassandra into our testing environment. In order to make the tests repeatable I truncate all the tables that need to be empty before the test run via ssh session to the host cassandra runs on and by running cqlsh where I issue the truncate.

It works, only sometimes it silently fails (1 in 400 runs of the truncate, actually).

At the same time the truncate fails I see system ks compaction. Additionally, it seems there is quite a lot of these system ks compactions (the numbers in the filenames go up pretty fast to thousands).

I googled truncate and found out there were some issues with race conditions and with slowing down if truncate is used frequently (as is my case, where truncate is run before each test in quite a big test suite).

Any hints?

Ondřej Černoš