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