You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@ignite.apache.org by "Alexander Menshikov (JIRA)" <ji...@apache.org> on 2018/03/27 08:46:00 UTC

[jira] [Created] (IGNITE-8054) Let serialize only valuable part of GridLongList

Alexander Menshikov created IGNITE-8054:
-------------------------------------------

             Summary: Let serialize only valuable part of GridLongList
                 Key: IGNITE-8054
                 URL: https://issues.apache.org/jira/browse/IGNITE-8054
             Project: Ignite
          Issue Type: Bug
          Components: messaging
    Affects Versions: 2.4
            Reporter: Alexander Menshikov
             Fix For: 2.5


Here in GridLongList we serialize all elements and don't take into account `idx` value:


{code:java}
@Override public boolean writeTo(ByteBuffer buf, MessageWriter writer) { 

        writer.setBuffer(buf); 

  

        if (!writer.isHeaderWritten()) { 

            if (!writer.writeHeader(directType(), fieldsCount())) 

                return false; 

  

            writer.onHeaderWritten(); 

        } 

  

        switch (writer.state()) { 

            case 0: 
                if (!writer.writeLongArray("arr", arr)) 

                    return false; 

  

                writer.incrementState(); 

  

            case 1: 

                if (!writer.writeInt("idx", idx)) 

                    return false; 

  

                writer.incrementState(); 

  

        } 

  

        return true; 

    } {code}

Which is not happening in another serialization method in the same class: 


{code:java}
public static void writeTo(DataOutput out, @Nullable GridLongList list) throws IOException { 

        out.writeInt(list != null ? list.idx : -1); 

  

        if (list != null) { 

            for (int i = 0; i < list.idx; i++) 

                out.writeLong(list.arr[i]); 

        } 

} {code}

So, we can simply reduce messages size by sending only a valuable part of the array.

 

 

I created this issue according to a discussion on the mailing list:

http://apache-ignite-developers.2346864.n4.nabble.com/Optimize-GridLongList-serialization-td28571.html



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)