Alexei Bakanov created CASSANDRA-5540:
-----------------------------------------
Summary: Concurrent secondary index updates remove rows from the
index
Key: CASSANDRA-5540
URL: https://issues.apache.org/jira/browse/CASSANDRA-5540
Project: Cassandra
Issue Type: Bug
Affects Versions: 1.2.4
Reporter: Alexei Bakanov
Existing rows disappear from secondary index when doing simultaneous updates of
a row with the same secondary index value.
Here is a little pycassa script that reproduces a bug. The script inserts 4
rows with same secondary index value, reads those rows back and check that
there are 4 of them.
Please run two instances of the script simultaneously in two separate terminals
in order to simulate concurrent updates:
-----scrpit.py START-----
import pycassa
from pycassa.index import *
pool = pycassa.ConnectionPool('ks123')
cf = pycassa.ColumnFamily(pool, 'cf1')
while True:
for rowKey in xrange(4):
cf.insert(str(rowKey), {'indexedColumn': 'indexedValue'})
index_expression = create_index_expression('indexedColumn', 'indexedValue')
index_clause = create_index_clause([index_expression])
rows = cf.get_indexed_slices(index_clause)
length = len(list(rows))
if length == 4:
pass
else:
print 'found just %d rows out of 4' % length
pool.dispose()
---script.py FINISH---
---schema cli start---
create keyspace ks123
with placement_strategy = 'NetworkTopologyStrategy'
and strategy_options = {datacenter1 : 1}
and durable_writes = true;
use ks123;
create column family cf1
with column_type = 'Standard'
and comparator = 'AsciiType'
and default_validation_class = 'AsciiType'
and key_validation_class = 'AsciiType'
and read_repair_chance = 0.1
and dclocal_read_repair_chance = 0.0
and populate_io_cache_on_flush = false
and gc_grace = 864000
and min_compaction_threshold = 4
and max_compaction_threshold = 32
and replicate_on_write = true
and compaction_strategy =
'org.apache.cassandra.db.compaction.SizeTieredCompactionStrategy'
and caching = 'KEYS_ONLY'
and column_metadata = [
{column_name : 'indexedColumn',
validation_class : AsciiType,
index_name : 'INDEX1',
index_type : 0}]
and compression_options = {'sstable_compression' :
'org.apache.cassandra.io.compress.SnappyCompressor'};
---schema cli finish---
Test cluster created with 'ccm create --cassandra-version 1.2.4 --nodes 1
--start testUpdate'
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira