Edward Capriolo created GOSSIP-44:
-------------------------------------

             Summary: Remove 4 byte size header
                 Key: GOSSIP-44
                 URL: https://issues.apache.org/jira/browse/GOSSIP-44
             Project: Gossip
          Issue Type: Improvement
            Reporter: Edward Capriolo
             Fix For: 0.1.2


Currently we turn our messages into a byte array and append a 4 byte header. We 
also calculate the size of the object before sending. 
{noformat}
   int packet_length = UdpUtil.readPacketLengthFromBuffer(buf);
        if (packet_length <= GossipManager.MAX_PACKET_SIZE) {
          byte[] json_bytes = new byte[packet_length];
          for (int i = 0; i < packet_length; i++) {
            json_bytes[i] = buf[i + 4];
          }
          debug(pac
{noformat}
While this protection is valid. I believe it hurts performance more than it 
helps because 
* we make more memory pressure.
* create a data payload that is harder to send and harder to parse
* currently we are computer the payload twice 

We should optimize by not creating the data twice, removing the header, 2 
attempting to write it directly to the stream (not store as a byte [] first)



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to