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/06/13 01:37:19 UTC

[jira] [Created] (CASSANDRA-5632) Cross-DC bandwidth-saving broken

Jonathan Ellis created CASSANDRA-5632:
-----------------------------------------

             Summary: Cross-DC bandwidth-saving broken
                 Key: CASSANDRA-5632
                 URL: https://issues.apache.org/jira/browse/CASSANDRA-5632
             Project: Cassandra
          Issue Type: Bug
          Components: Core
    Affects Versions: 1.2.0
            Reporter: Jonathan Ellis
            Assignee: Jonathan Ellis
             Fix For: 1.2.6


We group messages by destination as follows to avoid sending multiple messages to a remote datacenter:

{code}
        // Multimap that holds onto all the messages and addresses meant for a specific datacenter
        Map<String, Multimap<Message, InetAddress>> dcMessages
{code}

When we cleaned out the MessageProducer stuff for 2.0, this code

{code}
                    Multimap<Message, InetAddress> messages = dcMessages.get(dc);
...
                    messages.put(producer.getMessage(Gossiper.instance.getVersion(destination)), destination);
{code}

turned into

{code}
                    Multimap<MessageOut, InetAddress> messages = dcMessages.get(dc);
...
                    messages.put(rm.createMessage(), destination);
{code}

Thus, we weren't actually grouping anything anymore -- each destination replica was stored under a separate Message key, unlike under the old CachingMessageProducer.

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