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)