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 2013/05/06 14:44:16 UTC

[jira] [Commented] (CASSANDRA-5538) Reduce Empty Map allocations in StorageProxy.sendToHintedEndpoints

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

Jonathan Ellis commented on CASSANDRA-5538:
-------------------------------------------

nice work, +1.

It looks like this basically optimizes local writes, right?  ISTM that the next-most-common case will be "single, local datacenter."  Can we optimize for that with a SingletonMap instead of a full hashmap?

Wrinkle is I'm not entirely sure the best way to ask, "are multiple DCs involved."  Brute force: add a Snitch.isMultiDC method ("did you see multiple DCs when you initialized yourself"); downside is I'm not sure how to do this for EC2Snitch; might just have to assume True.

Less coupling: pre-iterate the targets and track "last-seen datacenter" and compare; downside is one, possibly two hash lookups per target, then a string compare, and in the case we're trying to optimize for we do the most comparisons.

So maybe brute force is the way to go unless you have a better idea.  Okay to break that out into a separate ticket if you'd rather.
                
> Reduce Empty Map allocations in StorageProxy.sendToHintedEndpoints
> ------------------------------------------------------------------
>
>                 Key: CASSANDRA-5538
>                 URL: https://issues.apache.org/jira/browse/CASSANDRA-5538
>             Project: Cassandra
>          Issue Type: Improvement
>          Components: Core
>    Affects Versions: 2.0
>            Reporter: Dave Brosius
>            Assignee: Dave Brosius
>            Priority: Trivial
>             Fix For: 2.0
>
>         Attachments: 5538.txt
>
>
> StorageProxy.sendToHintedEndpoints allocates HashMaps consistently that are very often not used.
> See output: http://pastebin.com/jEaBxz1h
> Format is
> Type Date SourceLine CollectionSize NumBuckets NumBucketsUsed
> The snapshot is taken after the size of the collection hasn't changed for 5 seconds.
> Postpone creation of hashmap until you need it.

--
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