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

classic Classic list List threaded Threaded
1 message Options
Reply | Threaded
Open this post in threaded view
|

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

Anton Vinogradov (Jira)
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)