[jira] [Comment Edited] (IGNITE-4045) .NET: Support DML API
[ https://issues.apache.org/jira/browse/IGNITE-4045?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=15778622#comment-15778622 ] Pavel Tupitsyn edited comment on IGNITE-4045 at 12/27/16 4:23 PM: -- 1) BinaryObject.Equals fixed. 2) We don't need this. Identity resolver in .NET is needed only to write correct hash code to a stream. Enums are written as [typeId, value]. There is no hash code. In Java there is special handing for BinaryEnum, but I suspect that this code is never called. Let's see what should be done in a separate task: IGNITE-4500 3) There is already a ticket: IGNITE-4397. In current ticket FieldComparer is hidden from public API, please ignore it. 4) I agree. This is done intentionally because we are on a very hot path here and want to avoid any allocations or overhead associated with {{ReadByte}} and {{ReadByteArray}}. I've refactored this to a generic {{IBinaryStream.Apply}} method which allows operating on byte pointer directly without allocations. 5) IGNITE-4495 * Implemented public methods of {{IEqualityComparer}} * Fixed hash code handling for wrappers ({{DateTimeHolder}}, {{SerializableObjectHolder}}) * Fixed array handling in BinaryObject.Equals * Added a lot more tests was (Author: ptupitsyn): 1) BinaryObject.Equals fixed. 2) We don't need this. Identity resolver in .NET is needed only to write correct hash code to a stream. Enums are written as [typeId, value]. There is no hash code. In Java there is special handing for BinaryEnum, but I suspect that this code is never called. Let's see what should be done in a separate task: IGNITE-4500 3) There is already a ticket: IGNITE-4397. In current ticket FieldComparer is hidden from public API, please ignore it. 4) I agree. This is done intentionally because we are on a very hot path here and want to avoid any allocations or overhead associated with {{ReadByte}} and {{ReadByteArray}}. I've refactored this to a generic {{IBinaryStream.Apply}} method which allows operating on byte pointer directly without allocations. 5) IGNITE-4495 Implemented public methods of {{IEqualityComparer}}, fixed hash code handling for wrappers ({{DateTimeHolder}}, {{SerializableObjectHolder}}), added a lot more tests. > .NET: Support DML API > - > > Key: IGNITE-4045 > URL: https://issues.apache.org/jira/browse/IGNITE-4045 > Project: Ignite > Issue Type: New Feature > Components: platforms >Reporter: Denis Magda >Assignee: Pavel Tupitsyn > Labels: roadmap > Fix For: 2.0 > > > Ignite's Java component will provide support for DML soon (IGNITE-2294). At > she same time DML will be supported at the level of ODBC and JDBC drivers. > As the next step we should include the similar functionality into Ignite.NET > by doing the following: > - Implement DML API; > - Enhance {{QueryExample.cs}} by doing INSERTs instead of cache.puts and > adding UPDATE and DELETE operation examples. > - Add documentation to Ignite.NET readme.io covering the feature. Most like > most of the content can be take from the general documentation when this > ticket IGNITE-4018 is ready > (https://apacheignite.readme.io/docs/distributed-dml). -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Comment Edited] (IGNITE-4045) .NET: Support DML API
[ https://issues.apache.org/jira/browse/IGNITE-4045?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=15778622#comment-15778622 ] Pavel Tupitsyn edited comment on IGNITE-4045 at 12/27/16 4:21 PM: -- 1) BinaryObject.Equals fixed. 2) We don't need this. Identity resolver in .NET is needed only to write correct hash code to a stream. Enums are written as [typeId, value]. There is no hash code. In Java there is special handing for BinaryEnum, but I suspect that this code is never called. Let's see what should be done in a separate task: IGNITE-4500 3) There is already a ticket: IGNITE-4397. In current ticket FieldComparer is hidden from public API, please ignore it. 4) I agree. This is done intentionally because we are on a very hot path here and want to avoid any allocations or overhead associated with {{ReadByte}} and {{ReadByteArray}}. I've refactored this to a generic {{IBinaryStream.Apply}} method which allows operating on byte pointer directly without allocations. 5) IGNITE-4495 Implemented public methods of {{IEqualityComparer}}, fixed hash code handling for wrappers ({{DateTimeHolder}}, {{SerializableObjectHolder}}), added a lot more tests. was (Author: ptupitsyn): 2) We don't need this. Identity resolver in .NET is needed only to write correct hash code to a stream. Enums are written as [typeId, value]. There is no hash code. In Java there is special handing for BinaryEnum, but I suspect that this code is never called. Let's see what should be done in a separate task: IGNITE-4500 3) There is already a ticket: IGNITE-4397. In current ticket FieldComparer is hidden from public API, please ignore it. 4) I agree. This is done intentionally because we are on a very hot path here and want to avoid any allocations or overhead associated with {{ReadByte}} and {{ReadByteArray}}. I've refactored this to a generic {{IBinaryStream.Apply}} method which allows operating on byte pointer directly without allocations. 5) IGNITE-4495 > .NET: Support DML API > - > > Key: IGNITE-4045 > URL: https://issues.apache.org/jira/browse/IGNITE-4045 > Project: Ignite > Issue Type: New Feature > Components: platforms >Reporter: Denis Magda >Assignee: Pavel Tupitsyn > Labels: roadmap > Fix For: 2.0 > > > Ignite's Java component will provide support for DML soon (IGNITE-2294). At > she same time DML will be supported at the level of ODBC and JDBC drivers. > As the next step we should include the similar functionality into Ignite.NET > by doing the following: > - Implement DML API; > - Enhance {{QueryExample.cs}} by doing INSERTs instead of cache.puts and > adding UPDATE and DELETE operation examples. > - Add documentation to Ignite.NET readme.io covering the feature. Most like > most of the content can be take from the general documentation when this > ticket IGNITE-4018 is ready > (https://apacheignite.readme.io/docs/distributed-dml). -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Comment Edited] (IGNITE-4045) .NET: Support DML API
[ https://issues.apache.org/jira/browse/IGNITE-4045?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=15778622#comment-15778622 ] Pavel Tupitsyn edited comment on IGNITE-4045 at 12/27/16 12:04 PM: --- 2) We don't need this. Identity resolver in .NET is needed only to write correct hash code to a stream. Enums are written as [typeId, value]. There is no hash code. In Java there is special handing for BinaryEnum, but I suspect that this code is never called. Let's see what should be done in a separate task: IGNITE-4500 3) There is already a ticket: IGNITE-4397. In current ticket FieldComparer is hidden from public API, please ignore it. 4) I agree. This is done intentionally because we are on a very hot path here and want to avoid any allocations or overhead associated with {{ReadByte}} and {{ReadByteArray}}. I've refactored this to a generic {{IBinaryStream.Apply}} method which allows operating on byte pointer directly without allocations. 5) IGNITE-4495 was (Author: ptupitsyn): 2) We don't need this. Identity resolver in .NET is needed only to write correct hash code to a stream. Enums are written as [typeId, value]. There is no hash code. 3) There is already a ticket: IGNITE-4397. In current ticket FieldComparer is hidden from public API, please ignore it. 4) I agree. This is done intentionally because we are on a very hot path here and want to avoid any allocations or overhead associated with {{ReadByte}} and {{ReadByteArray}}. I've refactored this to a generic {{IBinaryStream.Apply}} method which allows operating on byte pointer directly without allocations. 5) IGNITE-4495 > .NET: Support DML API > - > > Key: IGNITE-4045 > URL: https://issues.apache.org/jira/browse/IGNITE-4045 > Project: Ignite > Issue Type: New Feature > Components: platforms >Reporter: Denis Magda >Assignee: Pavel Tupitsyn > Labels: roadmap > Fix For: 2.0 > > > Ignite's Java component will provide support for DML soon (IGNITE-2294). At > she same time DML will be supported at the level of ODBC and JDBC drivers. > As the next step we should include the similar functionality into Ignite.NET > by doing the following: > - Implement DML API; > - Enhance {{QueryExample.cs}} by doing INSERTs instead of cache.puts and > adding UPDATE and DELETE operation examples. > - Add documentation to Ignite.NET readme.io covering the feature. Most like > most of the content can be take from the general documentation when this > ticket IGNITE-4018 is ready > (https://apacheignite.readme.io/docs/distributed-dml). -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Comment Edited] (IGNITE-4045) .NET: Support DML API
[ https://issues.apache.org/jira/browse/IGNITE-4045?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=15778622#comment-15778622 ] Pavel Tupitsyn edited comment on IGNITE-4045 at 12/26/16 6:03 PM: -- 2) We don't need this. Identity resolver in .NET is needed only to write correct hash code to a stream. Enums are written as [typeId, value]. There is no hash code. 3) There is already a ticket: IGNITE-4397. In current ticket FieldComparer is hidden from public API, please ignore it. 4) I agree. This is done intentionally because we are on a very hot path here and want to avoid any allocations or overhead associated with {{ReadByte}} and {{ReadByteArray}}. I've refactored this to a generic {{IBinaryStream.Apply}} method which allows operating on byte pointer directly without allocations. 5) IGNITE-4495 was (Author: ptupitsyn): 3) There is already a ticket: IGNITE-4397. In current ticket FieldComparer is hidden from public API, please ignore it. 4) I agree. This is done intentionally because we are on a very hot path here and want to avoid any allocations or overhead associated with {{ReadByte}} and {{ReadByteArray}}. I've refactored this to a generic {{IBinaryStream.Apply}} method which allows operating on byte pointer directly without allocations. 5) IGNITE-4495 > .NET: Support DML API > - > > Key: IGNITE-4045 > URL: https://issues.apache.org/jira/browse/IGNITE-4045 > Project: Ignite > Issue Type: New Feature > Components: platforms >Reporter: Denis Magda >Assignee: Pavel Tupitsyn > Labels: roadmap > Fix For: 2.0 > > > Ignite's Java component will provide support for DML soon (IGNITE-2294). At > she same time DML will be supported at the level of ODBC and JDBC drivers. > As the next step we should include the similar functionality into Ignite.NET > by doing the following: > - Implement DML API; > - Enhance {{QueryExample.cs}} by doing INSERTs instead of cache.puts and > adding UPDATE and DELETE operation examples. > - Add documentation to Ignite.NET readme.io covering the feature. Most like > most of the content can be take from the general documentation when this > ticket IGNITE-4018 is ready > (https://apacheignite.readme.io/docs/distributed-dml). -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Comment Edited] (IGNITE-4045) .NET: Support DML API
[ https://issues.apache.org/jira/browse/IGNITE-4045?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=15778622#comment-15778622 ] Pavel Tupitsyn edited comment on IGNITE-4045 at 12/26/16 5:30 PM: -- 3) There is already a ticket: IGNITE-4397. In current ticket FieldComparer is hidden from public API, please ignore it. 4) I agree. This is done intentionally because we are on a very hot path here and want to avoid any allocations or overhead associated with {{ReadByte}} and {{ReadByteArray}}. I've refactored this to a generic {{IBinaryStream.Apply}} method which allows operating on byte pointer directly without allocations. 5) IGNITE-4495 was (Author: ptupitsyn): 3) There is already a ticket: IGNITE-4397. In current ticket FieldComparer is hidden from public API, please ignore it. 5) IGNITE-4495 > .NET: Support DML API > - > > Key: IGNITE-4045 > URL: https://issues.apache.org/jira/browse/IGNITE-4045 > Project: Ignite > Issue Type: New Feature > Components: platforms >Reporter: Denis Magda >Assignee: Pavel Tupitsyn > Labels: roadmap > Fix For: 2.0 > > > Ignite's Java component will provide support for DML soon (IGNITE-2294). At > she same time DML will be supported at the level of ODBC and JDBC drivers. > As the next step we should include the similar functionality into Ignite.NET > by doing the following: > - Implement DML API; > - Enhance {{QueryExample.cs}} by doing INSERTs instead of cache.puts and > adding UPDATE and DELETE operation examples. > - Add documentation to Ignite.NET readme.io covering the feature. Most like > most of the content can be take from the general documentation when this > ticket IGNITE-4018 is ready > (https://apacheignite.readme.io/docs/distributed-dml). -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Comment Edited] (IGNITE-4045) .NET: Support DML API
[ https://issues.apache.org/jira/browse/IGNITE-4045?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=15728746#comment-15728746 ] Pavel Tupitsyn edited comment on IGNITE-4045 at 12/7/16 1:28 PM: - FieldIdentityResolver issue uncovered: Hash codes for many basic types (strings, for example) are computed differently in .NET and Java. What should we do? * Implement hash code algorithms the same way as in Java for all basic types * Change Java FieldIdentityResolver to compute field hash codes in serialized form (which is also a lot faster for all platforms) * Remove FieldIdentityResolver support in .NET For first iteration I suggest to support only ArrayIdentityResolver was (Author: ptupitsyn): FieldIdentityResolver issue uncovered: Hash codes for many basic types (strings, for example) are computed differently in .NET and Java. What should we do? * Implement hash code algorithms the same way as in Java for all basic types * Remove FieldIdentityResolver support in .NET > .NET: Support DML API > - > > Key: IGNITE-4045 > URL: https://issues.apache.org/jira/browse/IGNITE-4045 > Project: Ignite > Issue Type: Task > Components: platforms >Reporter: Denis Magda >Assignee: Pavel Tupitsyn > Labels: roadmap > Fix For: 2.0 > > > Ignite's Java component will provide support for DML soon (IGNITE-2294). At > she same time DML will be supported at the level of ODBC and JDBC drivers. > As the next step we should include the similar functionality into Ignite.NET > by doing the following: > - Implement DML API; > - Enhance {{QueryExample.cs}} by doing INSERTs instead of cache.puts and > adding UPDATE and DELETE operation examples. > - Add documentation to Ignite.NET readme.io covering the feature. Most like > most of the content can be take from the general documentation when this > ticket IGNITE-4018 is ready > (https://apacheignite.readme.io/docs/distributed-dml). -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Comment Edited] (IGNITE-4045) .NET: Support DML API
[ https://issues.apache.org/jira/browse/IGNITE-4045?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=15711741#comment-15711741 ] Pavel Tupitsyn edited comment on IGNITE-4045 at 12/1/16 12:24 PM: -- Another thing to be ported to .NET is BinaryIdentityResolver interface (BinaryTypeConfiguration.BinaryIdentityResolver). For now we should provide mapping to two default implementations: BinaryArrayIdentityResolver, BinaryFieldIdentityResolver was (Author: ptupitsyn): Another thing to be ported to .NET is BinaryIdentityResolver interface (BinaryTypeConfiguration.BinaryIdentityResolver). > .NET: Support DML API > - > > Key: IGNITE-4045 > URL: https://issues.apache.org/jira/browse/IGNITE-4045 > Project: Ignite > Issue Type: Task > Components: platforms >Reporter: Denis Magda >Assignee: Pavel Tupitsyn > Labels: roadmap > Fix For: 2.0 > > > Ignite's Java component will provide support for DML soon (IGNITE-2294). At > she same time DML will be supported at the level of ODBC and JDBC drivers. > As the next step we should include the similar functionality into Ignite.NET > by doing the following: > - Implement DML API; > - Enhance {{QueryExample.cs}} by doing INSERTs instead of cache.puts and > adding UPDATE and DELETE operation examples. > - Add documentation to Ignite.NET readme.io covering the feature. Most like > most of the content can be take from the general documentation when this > ticket IGNITE-4018 is ready > (https://apacheignite.readme.io/docs/distributed-dml). -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Comment Edited] (IGNITE-4045) .NET: Support DML API
[ https://issues.apache.org/jira/browse/IGNITE-4045?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=15711741#comment-15711741 ] Pavel Tupitsyn edited comment on IGNITE-4045 at 12/1/16 11:42 AM: -- Another thing to be ported to .NET is BinaryIdentityResolver interface (BinaryTypeConfiguration.BinaryIdentityResolver). was (Author: ptupitsyn): Another thing to be ported to .NET is BinaryIdentityResolver interface. > .NET: Support DML API > - > > Key: IGNITE-4045 > URL: https://issues.apache.org/jira/browse/IGNITE-4045 > Project: Ignite > Issue Type: Task > Components: platforms >Reporter: Denis Magda >Assignee: Pavel Tupitsyn > Labels: roadmap > Fix For: 2.0 > > > Ignite's Java component will provide support for DML soon (IGNITE-2294). At > she same time DML will be supported at the level of ODBC and JDBC drivers. > As the next step we should include the similar functionality into Ignite.NET > by doing the following: > - Implement DML API; > - Enhance {{QueryExample.cs}} by doing INSERTs instead of cache.puts and > adding UPDATE and DELETE operation examples. > - Add documentation to Ignite.NET readme.io covering the feature. Most like > most of the content can be take from the general documentation when this > ticket IGNITE-4018 is ready > (https://apacheignite.readme.io/docs/distributed-dml). -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Comment Edited] (IGNITE-4045) .NET: Support DML API
[ https://issues.apache.org/jira/browse/IGNITE-4045?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=15708670#comment-15708670 ] Pavel Tupitsyn edited comment on IGNITE-4045 at 11/30/16 2:21 PM: -- * The only API change is QueryEntity.keyFields. Everything else goes through SqlFieldsQuery. * See CacheQueryDmlExample was (Author: ptupitsyn): The only API change is QueryEntity.keyFields. Everything else goes through SqlFieldsQuery. > .NET: Support DML API > - > > Key: IGNITE-4045 > URL: https://issues.apache.org/jira/browse/IGNITE-4045 > Project: Ignite > Issue Type: Task > Components: platforms >Reporter: Denis Magda >Assignee: Pavel Tupitsyn > Labels: roadmap > Fix For: 2.0 > > > Ignite's Java component will provide support for DML soon (IGNITE-2294). At > she same time DML will be supported at the level of ODBC and JDBC drivers. > As the next step we should include the similar functionality into Ignite.NET > by doing the following: > - Implement DML API; > - Enhance {{QueryExample.cs}} by doing INSERTs instead of cache.puts and > adding UPDATE and DELETE operation examples. > - Add documentation to Ignite.NET readme.io covering the feature. Most like > most of the content can be take from the general documentation when this > ticket IGNITE-4018 is ready > (https://apacheignite.readme.io/docs/distributed-dml). -- This message was sent by Atlassian JIRA (v6.3.4#6332)