[ https://issues.apache.org/jira/browse/CASSANDRA-2918?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13067882#comment-13067882 ]
Cathy Daw edited comment on CASSANDRA-2918 at 7/19/11 11:24 PM: ---------------------------------------------------------------- Interestingly, I did the same test case using the hector stress tool which writes @ CL=QUORUM. *Insert 1000 rows. 691 Rows Returned.* * Bring up 3 nodes. Create a KS with RF=3. {code} [default@StressKeyspace] describe keyspace StressKeyspace; Keyspace: StressKeyspace: Replication Strategy: org.apache.cassandra.locator.SimpleStrategy Durable Writes: true Options: [replication_factor:3] Column Families: ColumnFamily: StressStandard Key Validation Class: org.apache.cassandra.db.marshal.BytesType Default column value validator: org.apache.cassandra.db.marshal.BytesType Columns sorted by: org.apache.cassandra.db.marshal.UTF8Type Row cache size / save period in seconds: 0.0/0 Key cache size / save period in seconds: 10000.0/14400 Memtable thresholds: 0.2859375/1440/32 (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: [] {code} * Kill one node *TEST #1: first two nodes don't agree* * Insert 1000 rows with 10 columns each in batches of 100 into standard table. {code} Get code from: [https://github.com/zznate/cassandra-stress] sh bin/stress -o insert -t 2 -b 100 -n 1000 -c 10 node1:9160 {code} * Verify Data: ** node1: 691 rows ** node2: 1000 rows ** Nate verified the default is to write at QUORUM * Bring up dead node. Run Repair. * Kill two other nodes. * Run in cli: consistencylevel as ONE; * Run in cli: list StressStandard limit 2000; ** node3: 691 rows *TEST #2: 1st two nodes agree* * Insert 1000 rows with 10 columns each in batches of 100 into standard table. Explicitly specify QUORUM. {code} sh bin/stress -o insert -t 2 -b 100 -n 1000 -c 10 -L QUORUM:QUORUM node1:9160 {code} * Verify Data: ** node1: 1000 rows ** node2: 1000 rows * Bring up dead node. Run Repair. * Kill two other nodes. * Run in cli: consistencylevel as ONE. * Run in cli: list StressStandard limit 2000; ** node3: 332 rows *TEST #3* * flush node1 and node2 * Bring up dead node - node3. Run Repair. * Kill node1 and node2 * Run in cli: consistencylevel as ONE. * Run in cli: list StressStandard limit 2000; ** node3: 1000 rows was (Author: cdaw): Interestingly, I did the same test case using the hector stress tool which writes @ CL=QUORUM. *Insert 1000 rows. 691 Rows Returned.* * Bring up 3 nodes. Create a KS with RF=3. {code} [default@StressKeyspace] describe keyspace StressKeyspace; Keyspace: StressKeyspace: Replication Strategy: org.apache.cassandra.locator.SimpleStrategy Durable Writes: true Options: [replication_factor:3] Column Families: ColumnFamily: StressStandard Key Validation Class: org.apache.cassandra.db.marshal.BytesType Default column value validator: org.apache.cassandra.db.marshal.BytesType Columns sorted by: org.apache.cassandra.db.marshal.UTF8Type Row cache size / save period in seconds: 0.0/0 Key cache size / save period in seconds: 10000.0/14400 Memtable thresholds: 0.2859375/1440/32 (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: [] {code} * Kill one node *TEST #1: first two nodes don't agree* * Insert 1000 rows with 10 columns each in batches of 100 into standard table. {code} sh bin/stress -o insert -t 2 -b 100 -n 1000 -c 10 node1:9160 {code} * Verify Data: ** node1: 691 rows ** node2: 1000 rows ** Nate verified the default is to write at QUORUM * Bring up dead node. Run Repair. * Kill two other nodes. * Run in cli: consistencylevel as ONE; * Run in cli: list StressStandard limit 2000; ** node3: 691 rows *TEST #2: 1st two nodes agree* * Insert 1000 rows with 10 columns each in batches of 100 into standard table. Explicitly specify QUORUM. {code} sh bin/stress -o insert -t 2 -b 100 -n 1000 -c 10 -L QUORUM:QUORUM node1:9160 {code} * Verify Data: ** node1: 1000 rows ** node2: 1000 rows * Bring up dead node. Run Repair. * Kill two other nodes. * Run in cli: consistencylevel as ONE. * Run in cli: list StressStandard limit 2000; ** node3: 332 rows > After repair, one row missing from query when two rows expected > --------------------------------------------------------------- > > Key: CASSANDRA-2918 > URL: https://issues.apache.org/jira/browse/CASSANDRA-2918 > Project: Cassandra > Issue Type: Bug > Components: Core > Affects Versions: 0.8.2 > Environment: Cassandra-0.8 branch @ 07/18 around 1pm PST. > Reporter: Cathy Daw > Assignee: Sylvain Lebresne > > *Cluster Config* > {code} > cathy1 - 50.57.114.45 - Token: 0 > cathy2 - 50.57.107.176 - Token: 56713727820156410577229101238628035242 > cathy3 - 50.57.114.39 - Token: 113427455640312821154458202477256070484 > {code} > *+2) Kill cathy3: 50.57.114.39+* > {code} > root@cathy2:~/cass-0.8/bin# ./nodetool -h localhost ring > Address DC Rack Status State Load Owns > Token > > 113427455640312821154458202477256070484 > 50.57.114.45 datacenter1 rack1 Up Normal 59.84 KB 33.33% > 0 > 50.57.107.176 datacenter1 rack1 Up Normal 59.85 KB 33.33% > 56713727820156410577229101238628035242 > 50.57.114.39 datacenter1 rack1 Down Normal 59.85 KB 33.33% > 113427455640312821154458202477256070484 > {code} > *+3) Run java stress tool+* > {code} > ./bin/stress -o insert -n 1000 -c 10 -l 3 -e QUORUM -d > 50.57.114.45,50.57.107.176 > {code} > *+4) Start Cassandra on cathy3+* > *+5) Run repair on cathy3+* > {code} > nodetool -h cathy3 repair Keyspace1 Standard1 > {code} > *+6) Kill cathy1 and cathy2+* > {code} > root@cathy3:~/cass-0.8/bin# ./nodetool -h cathy3 ring > Address DC Rack Status State Load Owns > Token > > 113427455640312821154458202477256070484 > 50.57.114.45 datacenter1 rack1 Down Normal 105.46 KB 33.33% > 0 > 50.57.107.176 datacenter1 rack1 Down Normal 106 KB 33.33% > 56713727820156410577229101238628035242 > 50.57.114.39 datacenter1 rack1 Up Normal 331.33 KB 33.33% > 113427455640312821154458202477256070484 > {code} > *+7) Log into cassandra-cli on cathy3 - expect 1000 rows returned+* > {code} > [default@Keyspace1] consistencylevel as ONE; > Consistency level is set to 'ONE'. > [default@Keyspace1] list Standard1 limit 2000; > ..... > 323 Rows Returned. > {code} -- This message is automatically generated by JIRA. For more information on JIRA, see: http://www.atlassian.com/software/jira