[ https://issues.apache.org/jira/browse/CASSANDRA-3006?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13082091#comment-13082091 ]
Boris Yen commented on CASSANDRA-3006: -------------------------------------- Here is the test program I am using now. the hector version is 0.8.0-2. Hope this will be helpful. ------------------------------------------------ import java.util.Arrays; import me.prettyprint.cassandra.model.AllOneConsistencyLevelPolicy; import me.prettyprint.cassandra.serializers.StringSerializer; import me.prettyprint.cassandra.service.CassandraHostConfigurator; import me.prettyprint.cassandra.service.ThriftCluster; import me.prettyprint.hector.api.Keyspace; import me.prettyprint.hector.api.beans.HCounterColumn; import me.prettyprint.hector.api.factory.HFactory; import me.prettyprint.hector.api.mutation.Mutator; import org.slf4j.Logger; import org.slf4j.LoggerFactory; public class CounterTest { private Logger logger = LoggerFactory.getLogger(CounterTest.class) ; private static final Integer COUNTER_NUM = 1000 ; private static final StringSerializer ss = StringSerializer.get(); private static final String HOST = "172.17.19.151:9160" ; private ThriftCluster cluster ; /** * @param args */ public static void main(String[] args) { CounterTest tc = new CounterTest() ; try { tc.testAlarmCounter() ; } catch (InterruptedException e) { } } public CounterTest(){ CassandraHostConfigurator chc = new CassandraHostConfigurator(HOST) ; chc.setMaxActive(100) ; chc.setMaxIdle(10) ; chc.setCassandraThriftSocketTimeout(60000) ; cluster = new ThriftCluster("Test Cluster", chc) ; } public void testAlarmCounter() throws InterruptedException{ int successCounter = 0 ; int cl = 0; for(int i=0; i<COUNTER_NUM; i++){ try{ logger.info("count: "+i) ; Mutator<String> mutator = HFactory.createMutator(getKeyspace(cl), StringSerializer.get()); HCounterColumn<String> column = HFactory.createCounterColumn("testSC", 1L) ; mutator.addCounter("sc", "testCounter", HFactory.createCounterSuperColumn("testC", Arrays.asList(column), ss, ss)); mutator.execute() ; successCounter++ ; } catch(Exception e){ logger.info("Error! Change consistency level to 1.", e) ; cl=1 ; } Thread.sleep(50) ; } logger.info("\nsuccess counter: "+successCounter) ; } private Keyspace getKeyspace(int cl){ if(cl == 1) return HFactory.createKeyspace("test", cluster, new AllOneConsistencyLevelPolicy()) ; else return HFactory.createKeyspace("test", cluster) ; // default consistency level is Quorum } } > Enormous counter > ----------------- > > Key: CASSANDRA-3006 > URL: https://issues.apache.org/jira/browse/CASSANDRA-3006 > Project: Cassandra > Issue Type: Bug > Affects Versions: 0.8.3 > Environment: ubuntu 10.04 > Reporter: Boris Yen > Assignee: Sylvain Lebresne > > I have two-node cluster with the following keyspace and column family > settings. > Cluster Information: > Snitch: org.apache.cassandra.locator.SimpleSnitch > Partitioner: org.apache.cassandra.dht.RandomPartitioner > Schema versions: > 63fda700-c243-11e0-0000-2d03dcafebdf: [172.17.19.151, 172.17.19.152] > Keyspace: test: > Replication Strategy: org.apache.cassandra.locator.NetworkTopologyStrategy > Durable Writes: true > Options: [datacenter1:2] > Column Families: > ColumnFamily: testCounter (Super) > "APP status information." > Key Validation Class: org.apache.cassandra.db.marshal.BytesType > Default column value validator: > org.apache.cassandra.db.marshal.CounterColumnType > Columns sorted by: > org.apache.cassandra.db.marshal.BytesType/org.apache.cassandra.db.marshal.BytesType > Row cache size / save period in seconds: 0.0/0 > Key cache size / save period in seconds: 200000.0/14400 > Memtable thresholds: 1.1578125/1440/247 (millions of ops/MB/minutes) > GC grace seconds: 864000 > Compaction min/max thresholds: 4/32 > Read repair chance: 1.0 > Replicate on write: true > Built indexes: [] > Then, I use a test program based on hector to add a counter column > (testCounter[sc][column]) 1000 times. In the middle the adding process, I > intentional shut down the node 172.17.19.152. In addition to that, the test > program is smart enough to switch the consistency level from Quorum to One, > so that the following adding actions would not fail. > After all the adding actions are done, I start the cassandra on > 172.17.19.152, and I use cassandra-cli to check if the counter is correct on > both nodes, and I got a result 1001 which should be reasonable because hector > will retry once. However, when I shut down 172.17.19.151 and after > 172.17.19.152 is aware of 172.17.19.151 is down, I try to start the cassandra > on 172.17.19.151 again. Then, I check the counter again, this time I got a > result 481387 which is so wrong. > I use 0.8.3 to reproduce this bug, but I think this also happens on 0.8.2 or > before also. -- This message is automatically generated by JIRA. For more information on JIRA, see: http://www.atlassian.com/software/jira