[jira] [Commented] (IGNITE-11397) Binary mode for Ignite Set
[ https://issues.apache.org/jira/browse/IGNITE-11397?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16946756#comment-16946756 ] Maxim Muzafarov commented on IGNITE-11397: -- Moved to 2.9 due to inactivity. Please, feel free to move it back if you will be able to complete the ticket by 2.8 code freeze date, December 2, 2019. > Binary mode for Ignite Set > -- > > Key: IGNITE-11397 > URL: https://issues.apache.org/jira/browse/IGNITE-11397 > Project: Ignite > Issue Type: New Feature > Components: binary, data structures >Reporter: Uday Kale >Assignee: Uday Kale >Priority: Major > Fix For: 2.8 > > Time Spent: 1h > Remaining Estimate: 0h > > Add binary mode (withKeepBinary) to Data Structures Set. > This will allow retrieving values in binary format when needed or when class > is not available, and will allow implementing the structures in other > platforms (.NET, C++). -- This message was sent by Atlassian Jira (v8.3.4#803005)
[jira] [Commented] (IGNITE-11397) Binary mode for Ignite Set
[ https://issues.apache.org/jira/browse/IGNITE-11397?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16833583#comment-16833583 ] Ivan Bessonov commented on IGNITE-11397: Hi [~uday], I have several comments for you in PR, please check them out. > Binary mode for Ignite Set > -- > > Key: IGNITE-11397 > URL: https://issues.apache.org/jira/browse/IGNITE-11397 > Project: Ignite > Issue Type: New Feature > Components: binary, data structures >Reporter: Uday Kale >Assignee: Uday Kale >Priority: Major > Fix For: 2.8 > > Time Spent: 1h > Remaining Estimate: 0h > > Add binary mode (withKeepBinary) to Data Structures Set. > This will allow retrieving values in binary format when needed or when class > is not available, and will allow implementing the structures in other > platforms (.NET, C++). -- This message was sent by Atlassian JIRA (v7.6.3#76005)
[jira] [Commented] (IGNITE-11397) Binary mode for Ignite Set
[ https://issues.apache.org/jira/browse/IGNITE-11397?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16831075#comment-16831075 ] Uday Kale commented on IGNITE-11397: [~ibessonov], I have created IGNITE-11828 to fix the issue with the queue. > Binary mode for Ignite Set > -- > > Key: IGNITE-11397 > URL: https://issues.apache.org/jira/browse/IGNITE-11397 > Project: Ignite > Issue Type: New Feature > Components: binary, data structures >Reporter: Uday Kale >Assignee: Uday Kale >Priority: Major > Fix For: 2.8 > > Time Spent: 10m > Remaining Estimate: 0h > > Add binary mode (withKeepBinary) to Data Structures Set. > This will allow retrieving values in binary format when needed or when class > is not available, and will allow implementing the structures in other > platforms (.NET, C++). -- This message was sent by Atlassian JIRA (v7.6.3#76005)
[jira] [Commented] (IGNITE-11397) Binary mode for Ignite Set
[ https://issues.apache.org/jira/browse/IGNITE-11397?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16830044#comment-16830044 ] Ivan Bessonov commented on IGNITE-11397: [~uday] sure, please create new issue for IgniteQueue. I'll take a look at your code soon. > Binary mode for Ignite Set > -- > > Key: IGNITE-11397 > URL: https://issues.apache.org/jira/browse/IGNITE-11397 > Project: Ignite > Issue Type: New Feature > Components: binary, data structures >Reporter: Uday Kale >Assignee: Uday Kale >Priority: Major > Fix For: 2.8 > > Time Spent: 10m > Remaining Estimate: 0h > > Add binary mode (withKeepBinary) to Data Structures Set. > This will allow retrieving values in binary format when needed or when class > is not available, and will allow implementing the structures in other > platforms (.NET, C++). -- This message was sent by Atlassian JIRA (v7.6.3#76005)
[jira] [Commented] (IGNITE-11397) Binary mode for Ignite Set
[ https://issues.apache.org/jira/browse/IGNITE-11397?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16829590#comment-16829590 ] Uday Kale commented on IGNITE-11397: Hello [~ibessonov], Yes I have done the requested changes. The affinity tests still fail though and I am clueless as to why, will need some help. One more thing shall I create a task to fix the issue with IgniteQueue? > Binary mode for Ignite Set > -- > > Key: IGNITE-11397 > URL: https://issues.apache.org/jira/browse/IGNITE-11397 > Project: Ignite > Issue Type: New Feature > Components: binary, data structures >Reporter: Uday Kale >Assignee: Uday Kale >Priority: Major > Fix For: 2.8 > > Time Spent: 10m > Remaining Estimate: 0h > > Add binary mode (withKeepBinary) to Data Structures Set. > This will allow retrieving values in binary format when needed or when class > is not available, and will allow implementing the structures in other > platforms (.NET, C++). -- This message was sent by Atlassian JIRA (v7.6.3#76005)
[jira] [Commented] (IGNITE-11397) Binary mode for Ignite Set
[ https://issues.apache.org/jira/browse/IGNITE-11397?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16829192#comment-16829192 ] Ivan Bessonov commented on IGNITE-11397: Hello [~uday], I see that there was an update some time ago. How is your progress? Do you need any activities from my side, like review or some discussion? > Binary mode for Ignite Set > -- > > Key: IGNITE-11397 > URL: https://issues.apache.org/jira/browse/IGNITE-11397 > Project: Ignite > Issue Type: New Feature > Components: binary, data structures >Reporter: Uday Kale >Assignee: Uday Kale >Priority: Major > Fix For: 2.8 > > Time Spent: 10m > Remaining Estimate: 0h > > Add binary mode (withKeepBinary) to Data Structures Set. > This will allow retrieving values in binary format when needed or when class > is not available, and will allow implementing the structures in other > platforms (.NET, C++). -- This message was sent by Atlassian JIRA (v7.6.3#76005)
[jira] [Commented] (IGNITE-11397) Binary mode for Ignite Set
[ https://issues.apache.org/jira/browse/IGNITE-11397?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16807642#comment-16807642 ] Uday Kale commented on IGNITE-11397: Thanks for reviewing my code [~ibessonov] Regarding private static final boolean BINARY_SET_MODE = IgniteSystemProperties.getBoolean(BINARY_SET, true); Yes this is wrong I need to set default as true. The true value is set in IgniteCacheDataStructuresBinarySelfTestSuite. {code:java} public IgniteSet withKeepBinary();{code} There are types like Integer, String, Enum, etc apart from BinaryObject possible here. I am still trying to study the last part. I will get back to you if I have any questions. > Binary mode for Ignite Set > -- > > Key: IGNITE-11397 > URL: https://issues.apache.org/jira/browse/IGNITE-11397 > Project: Ignite > Issue Type: New Feature > Components: binary, data structures >Reporter: Uday Kale >Assignee: Uday Kale >Priority: Major > Fix For: 2.8 > > Time Spent: 10m > Remaining Estimate: 0h > > Add binary mode (withKeepBinary) to Data Structures Set. > This will allow retrieving values in binary format when needed or when class > is not available, and will allow implementing the structures in other > platforms (.NET, C++). -- This message was sent by Atlassian JIRA (v7.6.3#76005)
[jira] [Commented] (IGNITE-11397) Binary mode for Ignite Set
[ https://issues.apache.org/jira/browse/IGNITE-11397?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16806530#comment-16806530 ] Ivan Bessonov commented on IGNITE-11397: Hello [~uday], thank you for the contribution! I'd like to discuss few things here. First of all, these tests failures look very suspicious, at least in "Data Structures" suite. Please take a look at them. Now more specific. In modified abstract test you have this line: {code:java} private static final boolean BINARY_SET_MODE = IgniteSystemProperties.getBoolean(BINARY_SET, true);{code} You set "true" as a default value and you also set "true" in suite. I can't find a place where you would use "false" as a value for this property, please correct that. {code:java} public IgniteSet withKeepBinary();{code} I understand where this type of method signature is coming from, but I'd like to be sure that it's correct. There are two implementations of this method and they have following lines in them: {code:java} return new GridCacheSetProxy<>(ctx, (GridCacheSetImpl)this);{code} {code:java} return new GridCacheSetProxy<>(cctx, (GridCacheSetImpl)delegate);{code} Both "this" and "delegate" are instances of "IgniteSet" so why do we need a new type "V1" that is not even bound with anything? Looks problematic to say the least. On the other hand, actual type when operating these sets is most likely a "BinaryObject". If it is then we could reflect this fact in method signature so it won't be overly complicated. Finally, you mishandled "CacheOperationContext". Please take a look at "GatewayProtectedCacheProxy" class and usages of "operationContextPerCall" method. What you actually need is to have "opCtx" field in "GridCacheSetProxy" and pass it into the gate. Please don't forget to restore previous values on leaving the gate, like, for example, in "GatewayProtectedCacheProxy.CacheOperationGate" class usages. Here is the simple reproducer for the problem. It doesn't cover all the aspects but is enough for the start: {code:java} @Test public void testGet() throws Exception { IgniteEx ignite = grid(0); IgniteQueue queue = ignite.queue("q0", 10, config(false)).withKeepBinary(); queue.add(sameHashBinObj(ignite, 0)); queue.add(sameHashBinObj(ignite, 1)); BinaryObject o0 = queue.poll(); // Ok. BinaryObject o1 = GridTestUtils.runAsync((Callable)queue::poll).get(); // Fails. } {code} You probably noticed that this test operates with "IgniteQueue". It has all the same issues so they can be reproduced in master. I would appreciate if you created another issue to fix these bugs in "IgniteQueue" after we finish "IgniteSet" improvements. Please feel free asking me more questions if you have some. Thank you! > Binary mode for Ignite Set > -- > > Key: IGNITE-11397 > URL: https://issues.apache.org/jira/browse/IGNITE-11397 > Project: Ignite > Issue Type: New Feature > Components: binary, data structures >Reporter: Uday Kale >Assignee: Uday Kale >Priority: Major > Fix For: 2.8 > > Time Spent: 10m > Remaining Estimate: 0h > > Add binary mode (withKeepBinary) to Data Structures Set. > This will allow retrieving values in binary format when needed or when class > is not available, and will allow implementing the structures in other > platforms (.NET, C++). -- This message was sent by Atlassian JIRA (v7.6.3#76005)
[jira] [Commented] (IGNITE-11397) Binary mode for Ignite Set
[ https://issues.apache.org/jira/browse/IGNITE-11397?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16795275#comment-16795275 ] Ignite TC Bot commented on IGNITE-11397: {panel:title=-- Run :: All: Possible Blockers|borderStyle=dashed|borderColor=#ccc|titleBGColor=#F7D6C1} {color:#d04437}Cache 2{color} [[tests 1|https://ci.ignite.apache.org/viewLog.html?buildId=3345258]] * IgniteCacheTestSuite2: IgniteCacheClientNodeChangingTopologyTest.testLockAllMultinode - 0,0% fails in last 383 master runs. {color:#d04437}Cache 5{color} [[tests 1|https://ci.ignite.apache.org/viewLog.html?buildId=3345261]] * IgniteCacheTestSuite5: IgniteCachePartitionLossPolicySelfTest.testReadWriteSafeWithBackups - 0,0% fails in last 305 master runs. {color:#d04437}Data Structures{color} [[tests 6|https://ci.ignite.apache.org/viewLog.html?buildId=3345269]] * IgniteCacheDataStructuresSelfTestSuite: IgnitePartitionedSetNoBackupsSelfTest.testAffinityRun - 0,0% fails in last 388 master runs. * IgniteCacheDataStructuresSelfTestSuite: IgnitePartitionedSetNoBackupsSelfTest.testAffinityCall - 0,0% fails in last 388 master runs. * IgniteCacheDataStructuresSelfTestSuite: GridCacheReplicatedSetWithClientSelfTest.testAffinityRun - 0,0% fails in last 388 master runs. * IgniteCacheDataStructuresSelfTestSuite: GridCacheReplicatedSetWithClientSelfTest.testAffinityCall - 0,0% fails in last 388 master runs. * IgniteCacheDataStructuresSelfTestSuite: GridCacheReplicatedSetSelfTest.testAffinityRun - 0,0% fails in last 388 master runs. * IgniteCacheDataStructuresSelfTestSuite: GridCacheReplicatedSetSelfTest.testAffinityCall - 0,0% fails in last 388 master runs. {color:#d04437}Cache 4{color} [[tests 1|https://ci.ignite.apache.org/viewLog.html?buildId=3345260]] * IgniteCacheTestSuite4: CacheStoreUsageMultinodeStaticStartTxTest.testStaticConfigurationTxWriteBehindStoreNoClientStore - 0,0% fails in last 394 master runs. {color:#d04437}_Javadoc_{color} [[tests 0 BuildFailureOnMessage |https://ci.ignite.apache.org/viewLog.html?buildId=3345244]] {color:#d04437}Platform C++ (Linux Clang){color} [[tests 0 TIMEOUT , Failure on metric |https://ci.ignite.apache.org/viewLog.html?buildId=3345239]] {panel} [TeamCity *-- Run :: All* Results|https://ci.ignite.apache.org/viewLog.html?buildId=3345309buildTypeId=IgniteTests24Java8_RunAll] > Binary mode for Ignite Set > -- > > Key: IGNITE-11397 > URL: https://issues.apache.org/jira/browse/IGNITE-11397 > Project: Ignite > Issue Type: New Feature > Components: binary, data structures >Reporter: Uday Kale >Assignee: Uday Kale >Priority: Major > Fix For: 2.8 > > Time Spent: 10m > Remaining Estimate: 0h > > Add binary mode (withKeepBinary) to Data Structures Set. > This will allow retrieving values in binary format when needed or when class > is not available, and will allow implementing the structures in other > platforms (.NET, C++). -- This message was sent by Atlassian JIRA (v7.6.3#76005)