You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@gossip.apache.org by "Edward Capriolo (JIRA)" <ji...@apache.org> on 2017/01/19 16:08:26 UTC

[jira] [Created] (GOSSIP-44) Remove 4 byte size header

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)