Uploaded image for project: 'Cassandra'
  1. Cassandra
  2. CASSANDRA-5632

Cross-DC bandwidth-saving broken

    XMLWordPrintableJSON

Details

    • Bug
    • Status: Resolved
    • Normal
    • Resolution: Fixed
    • 1.2.6
    • None
    • None
    • Normal

    Description

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

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

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

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

      turned into

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

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

      Attachments

        1. 5632.txt
          5 kB
          Jonathan Ellis
        2. 5632-v2.txt
          9 kB
          Jonathan Ellis
        3. cassandra-topology.properties
          0.9 kB
          Hayato Shimizu
        4. fix_patch_bug.log
          4 kB
          Hayato Shimizu

        Issue Links

          Activity

            People

              jbellis Jonathan Ellis
              jbellis Jonathan Ellis
              Jonathan Ellis
              David Brosius
              Hayato Shimizu Hayato Shimizu
              Votes:
              0 Vote for this issue
              Watchers:
              7 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved: