Uploaded image for project: 'JGroups'
  1. JGroups
  2. JGRP-2546

State transfer speed improvement

XMLWordPrintable

    • Icon: Enhancement Enhancement
    • Resolution: Done
    • Icon: Major Major
    • 4.2.12, 5.1.6
    • 4.2.11, 5.1.5
    • None
    • False
    • False
    • Undefined

      The state transfer in STATE writes into a ByteArrayDataOutputStream instead of ByteArrayOutputStream as the case in STATE_TRANSFER. In our case with replicated maps containing thousands of complex class objects this takes an insane amount of time now. Reason for this I would say is that the stream buffer is increasing in very small steps (as you have documented) and the result is very expensive array copying taking place. Wrapping with BufferedOutputStream does not help much once the buffer starts to become large. 
       
      Just by letting the ByteArrayDataOutputStream grow exponentially we get a massive speed improvement. 

              rhn-engineering-bban Bela Ban
              johan.piculell Johan Piculell (Inactive)
              Votes:
              0 Vote for this issue
              Watchers:
              1 Start watching this issue

                Created:
                Updated:
                Resolved: