[jira] [Commented] (IGNITE-8054) Let serialize only valuable part of GridLongList
[ https://issues.apache.org/jira/browse/IGNITE-8054?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16482421#comment-16482421 ] Alexander Menshikov commented on IGNITE-8054: - [~dpavlov] Thanks. I will. > Let serialize only valuable part of GridLongList > > > Key: IGNITE-8054 > URL: https://issues.apache.org/jira/browse/IGNITE-8054 > Project: Ignite > Issue Type: Improvement > Components: messaging >Affects Versions: 2.4 >Reporter: Alexander Menshikov >Assignee: Alexander Menshikov >Priority: Major > Labels: easyfix > Fix For: 2.6 > > > 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)
[jira] [Commented] (IGNITE-8054) Let serialize only valuable part of GridLongList
[ https://issues.apache.org/jira/browse/IGNITE-8054?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16482354#comment-16482354 ] ASF GitHub Bot commented on IGNITE-8054: Github user asfgit closed the pull request at: https://github.com/apache/ignite/pull/3748 > Let serialize only valuable part of GridLongList > > > Key: IGNITE-8054 > URL: https://issues.apache.org/jira/browse/IGNITE-8054 > Project: Ignite > Issue Type: Improvement > Components: messaging >Affects Versions: 2.4 >Reporter: Alexander Menshikov >Assignee: Alexander Menshikov >Priority: Major > Labels: easyfix > Fix For: 2.6 > > > 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)
[jira] [Commented] (IGNITE-8054) Let serialize only valuable part of GridLongList
[ https://issues.apache.org/jira/browse/IGNITE-8054?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16482327#comment-16482327 ] Dmitriy Pavlov commented on IGNITE-8054: [~sharpler] tests looks good now. > Let serialize only valuable part of GridLongList > > > Key: IGNITE-8054 > URL: https://issues.apache.org/jira/browse/IGNITE-8054 > Project: Ignite > Issue Type: Improvement > Components: messaging >Affects Versions: 2.4 >Reporter: Alexander Menshikov >Assignee: Alexander Menshikov >Priority: Major > Labels: easyfix > Fix For: 2.6 > > > 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)
[jira] [Commented] (IGNITE-8054) Let serialize only valuable part of GridLongList
[ https://issues.apache.org/jira/browse/IGNITE-8054?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16481687#comment-16481687 ] Alexander Menshikov commented on IGNITE-8054: - [~dpavlov] You are right, it was a bit old PR. I have done rebase and have made rerun on TC and got: Tests failed: 64 (61 new) But all of that failed tests looks like flaky. I see many new flaky tests like *JdbcThinBulkLoadAtomicPartitionedNearSelfTest.testDefaultCharset* (only 75 runs and 6 of them are failed). > Let serialize only valuable part of GridLongList > > > Key: IGNITE-8054 > URL: https://issues.apache.org/jira/browse/IGNITE-8054 > Project: Ignite > Issue Type: Improvement > Components: messaging >Affects Versions: 2.4 >Reporter: Alexander Menshikov >Assignee: Alexander Menshikov >Priority: Major > Labels: easyfix > Fix For: 2.6 > > > 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)
[jira] [Commented] (IGNITE-8054) Let serialize only valuable part of GridLongList
[ https://issues.apache.org/jira/browse/IGNITE-8054?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16477615#comment-16477615 ] Dmitriy Pavlov commented on IGNITE-8054: Hi [~sharpler], In general fix is looking ok, but there is blocker for me, it is tests results. Tests failed: 391 (17 new) How old is this PR? It is possible these tests were already fixed. So I suggest to rebase (merge) master to PR and re-run test. It is possible impact change, so we need to be sure TC is in passing state after fix. > Let serialize only valuable part of GridLongList > > > Key: IGNITE-8054 > URL: https://issues.apache.org/jira/browse/IGNITE-8054 > Project: Ignite > Issue Type: Improvement > Components: messaging >Affects Versions: 2.4 >Reporter: Alexander Menshikov >Assignee: Alexander Menshikov >Priority: Major > Labels: easyfix > Fix For: 2.6 > > > 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)
[jira] [Commented] (IGNITE-8054) Let serialize only valuable part of GridLongList
[ https://issues.apache.org/jira/browse/IGNITE-8054?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16425673#comment-16425673 ] ASF GitHub Bot commented on IGNITE-8054: GitHub user SharplEr opened a pull request: https://github.com/apache/ignite/pull/3748 serialize only valuable part of GridLongList For https://issues.apache.org/jira/browse/IGNITE-8054 You can merge this pull request into a Git repository by running: $ git pull https://github.com/SharplEr/ignite ignite-8054 Alternatively you can review and apply these changes as the patch at: https://github.com/apache/ignite/pull/3748.patch To close this pull request, make a commit to your master/trunk branch with (at least) the following in the commit message: This closes #3748 commit 0f98ce3336aae2380826b4bbaa8c11aaf4fecd30 Author: Alexander MenshikovDate: 2018-04-04T15:09:20Z serialize only valuable part of GridLongList > Let serialize only valuable part of GridLongList > > > Key: IGNITE-8054 > URL: https://issues.apache.org/jira/browse/IGNITE-8054 > Project: Ignite > Issue Type: Improvement > Components: messaging >Affects Versions: 2.4 >Reporter: Alexander Menshikov >Assignee: Alexander Menshikov >Priority: Major > Labels: easyfix > 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)