You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cassandra.apache.org by "Jonathan Ellis (JIRA)" <ji...@apache.org> on 2010/01/01 03:22:29 UTC

[jira] Commented: (CASSANDRA-658) Hinted Handoff CF contention

    [ https://issues.apache.org/jira/browse/CASSANDRA-658?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12795726#action_12795726 ] 

Jonathan Ellis commented on CASSANDRA-658:
------------------------------------------

this actually has a race for simple columns: if a value is preset for a given column name, and two threads (A and B) run the putIfAbsent part at the same time, then A goes into the synchronized block and changes the value, thread C could attempt addColumn and sync on the value put by A, while B syncs on the old value.

> Hinted Handoff CF contention
> ----------------------------
>
>                 Key: CASSANDRA-658
>                 URL: https://issues.apache.org/jira/browse/CASSANDRA-658
>             Project: Cassandra
>          Issue Type: Bug
>          Components: Core
>    Affects Versions: 0.5
>         Environment: debian lenny amd64 OpenJDK 64-Bit Server VM (build 1.6.0_0-b11, mixed mode)
>            Reporter: Brandon Williams
>            Assignee: Jonathan Ellis
>             Fix For: 0.9
>
>         Attachments: 0001-use-throughput-and-op-count-instead-of-size-and-column.txt, 0002-replace-sharded-row-locks-with-column-level-locking.txt, 0003-remove-atomic-size-from-sc.txt
>
>
> Hinted handoff causes a lot of contention on the HH CF, causing insert speed to massively drop.  Most of the row mutation stage threads end up blocking on each other at Memtable.resolve.  This is because HH sends the hint to the closest node, which will always be the node handling the write.
> To reproduce: start a cluster with even InitialTokens, and begin a constant stream of writes to one node, with an even key distribution. (I used 4 nodes and stress.py in random mode.)  Take a node down, and the insert rate begin to drop, eventually settling between 100-300/s and sustaining there.  Bringing the down node back up will restore the original insert rate.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.