cassandra-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Aaron Morton (Updated) (JIRA)" <j...@apache.org>
Subject [jira] [Updated] (CASSANDRA-3870) Internal error processing batch_mutate: java.util.ConcurrentModificationException on CounterColumn
Date Tue, 21 Feb 2012 10:51:34 GMT

     [ https://issues.apache.org/jira/browse/CASSANDRA-3870?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]

Aaron Morton updated CASSANDRA-3870:
------------------------------------

    Attachment: cassandra-1.0-3870-V2.txt

added -V2 

Fixed problem where StorageProxy.mutateCounter() would not call handler.finalizeHints() if

it was not a replica for the row.

Improved timeout when waiting for hints.

bq. this break the current property that counter writes at CL.ONE don't have to wait on the
read. In other words, that would increase the latency of CL.ONE counter writes.

Added IWriteResponseHanlder.dontBlockOnHints() called from StorageProxy.counterWriteTask()
if CL is ONE. 

bq. this completely break counters when replicate_on_write == false. This may not be a problem
anymore on 1.1 if we remove that option (CASSANDRA-3868) but breaking it in 1.0 (on a minor
release) is more problematic.

Not sure what you mean. In StoragrProxy.counterWriteTask() if not cm.shouldReplicateOnWrite()
i finalize the hints with the handler. So that get() will not wait for more futures. 

bq. guarantee that all hint for nodes that are known dead have been written locally'. Which
leads me to a question: what does that latter property really give us?

It slows down the client and reduces the chance that a node can get overwhelmed if it has
to store a lot of hints. But at CL ONE the client is asking the server to do the minimal amount
of work before returning so it makes sense.  
                
> Internal error processing batch_mutate: java.util.ConcurrentModificationException on
CounterColumn
> --------------------------------------------------------------------------------------------------
>
>                 Key: CASSANDRA-3870
>                 URL: https://issues.apache.org/jira/browse/CASSANDRA-3870
>             Project: Cassandra
>          Issue Type: Bug
>    Affects Versions: 1.0.7
>         Environment: Debian 6.0 x64
> x64 Sun Java 6u26
> Cassandra 1.0.7
> JNA
> 2 DCs, 1 ring/DC, 8 nodes/ring, RF=3/DC, Random partitioner.
> Disk access auto (mmap)
>            Reporter: Viktor Jevdokimov
>            Assignee: Aaron Morton
>              Labels: counters
>         Attachments: cassandra-1.0-3870-V2.txt, cassandra-1.0-3870.txt
>
>
> Cassandra throws an exception below while performing batch_mutate with counter column
insertion mutation to increment column with 1:
> ERROR [Thrift:134] 2012-02-03 15:51:02,800 Cassandra.java (line 3462) Internal error
processing batch_mutate
> java.util.ConcurrentModificationException
>         at java.util.AbstractList$Itr.checkForComodification(AbstractList.java:372)
>         at java.util.AbstractList$Itr.next(AbstractList.java:343)
>         at org.apache.cassandra.utils.FBUtilities.waitOnFutures(FBUtilities.java:532)
>         at org.apache.cassandra.service.AbstractWriteResponseHandler.waitForHints(AbstractWriteResponseHandler.java:89)
>         at org.apache.cassandra.service.AbstractWriteResponseHandler.get(AbstractWriteResponseHandler.java:58)
>         at org.apache.cassandra.service.StorageProxy.mutate(StorageProxy.java:201)
>         at org.apache.cassandra.thrift.CassandraServer.doInsert(CassandraServer.java:639)
>         at org.apache.cassandra.thrift.CassandraServer.internal_batch_mutate(CassandraServer.java:590)
>         at org.apache.cassandra.thrift.CassandraServer.batch_mutate(CassandraServer.java:598)
>         at org.apache.cassandra.thrift.Cassandra$Processor$batch_mutate.process(Cassandra.java:3454)
>         at org.apache.cassandra.thrift.Cassandra$Processor.process(Cassandra.java:2889)
>         at org.apache.cassandra.thrift.CustomTThreadPoolServer$WorkerProcess.run(CustomTThreadPoolServer.java:187)
>         at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
>         at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
>         at java.lang.Thread.run(Thread.java:662)
> Column family definition:
> create column family CountersColumnFamily1
>   with column_type = 'Standard'
>   and comparator = 'BytesType'
>   and default_validation_class = 'BytesType'
>   and key_validation_class = 'BytesType'
>   and rows_cached = 1000000.0
>   and row_cache_save_period = 0
>   and row_cache_keys_to_save = 2147483647
>   and keys_cached = 0.0
>   and key_cache_save_period = 14400
>   and read_repair_chance = 0.1
>   and gc_grace = 43200
>   and min_compaction_threshold = 4
>   and max_compaction_threshold = 32
>   and replicate_on_write = true
>   and row_cache_provider = 'SerializingCacheProvider'
>   and compaction_strategy = 'org.apache.cassandra.db.compaction.SizeTieredCompactionStrategy';

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

Mime
View raw message