Details
Description
The ColdStandby relies on an inefficient decoding mechanism which increases exponentially the times needed to transfer a binary (ex. a 300mb file can go over 10min). The issue is around the use of a ReplayingDecoder (the ReplyDecoder class) which will eagerly create byte arrays of the original length for each received fragment of the transferred file.
So following the 300mb file example, for each inbound slice of hundreds of kbs, a new 300mb arrays is allocated, only to be thrown away by the ReplayingDecoder once it figures out the entire stream is not available yet.