Great!

Here's .NET development page, in case you haven't seen it yet:
https://cwiki.apache.org/confluence/display/IGNITE/Ignite.NET+Development
Let me know if you need any assistance.

Pavel

On Thu, Aug 3, 2017 at 5:28 AM, Raymond Wilson <[email protected]>
wrote:

> Hi Pavel,
>
>
>
> Thanks for putting it on the plan.
>
>
>
> I’ve been reading through the ‘how to contribute’ documentation to see
> what’s required and have pulled a static download of the Git repository to
> start looking at the code. I’ll see… J
>
>
>
> Thanks,
>
> Raymond.
>
>
>
> *From:* Pavel Tupitsyn [mailto:[email protected]]
> *Sent:* Wednesday, August 2, 2017 9:08 PM
>
> *To:* [email protected]
> *Subject:* Re: Accessing array elements within items cached in Ignite
> without deserialising the entire item
>
>
>
> Actually, you are right, we can add this easily, because internal API
> allows random stream access.
>
> I've filed a ticket: https://issues.apache.org/jira/browse/IGNITE-5904
>
>
>
> Thank you for a good suggestion!
>
> And, by the way, everyone is welcome to contribute, this ticket can be a
> perfect start!
>
>
>
> Pavel
>
>
>
> On Wed, Aug 2, 2017 at 12:46 AM, Raymond Wilson <
> [email protected]> wrote:
>
> Hi Pavel,
>
>
>
> Thanks for the clarifications. I certainly appreciate that cross platform
> protocols constrain what can be done…
>
>
>
> Thanks for pointing out IBinaryRawReader.
>
>
>
> Regarding random access into arrays, is this something that is on the
> books for a future version?
>
> Thanks,
>
> Raymond.
>
>
>
> *From:* Pavel Tupitsyn [mailto:[email protected]]
> *Sent:* Tuesday, August 1, 2017 11:31 PM
> *To:* [email protected]
> *Subject:* Re: Accessing array elements within items cached in Ignite
> without deserialising the entire item
>
>
>
> Hi Raymond,
>
>
>
> First of all, BinaryObject is a cross-platform concept, it exists in C#,
> C++, Java.
>
> From C# point of view there are some inconsistencies (like nullable Guid,
> or non-generic collections),
>
> but these things are dictated by the existing protocol, so we can't change
> them.
>
> In most cases you can just use WriteObject<>/ReadObject<> methods to avoid
> these inconsistencies.
>
>
>
> 1. You can implement array pooling yourself using IBinaryRawReader methods.
>
>    For example, byte array is written like rawWriter.WriteByte(arr.Length);
> for (...) rawWriter.WriteByte(arr[i]);
>
>    I think an extension method would be easy to write.
>
>
>
> 2. See above, use WriteObject<>/ReadObject<> to avoid dealing with
> nullables
>
>
>
> 3. Random array access is not possible with current API.
>
>
>
> Thanks,
>
> Pavel
>
>
>
> On Tue, Aug 1, 2017 at 2:46 AM, Raymond Wilson <[email protected]>
> wrote:
>
> Hi,
>
>
>
> I’ve been looking at IBinarizable and IBinarySerializer with regards to
> controlling object serialization (using the Ignite.Net client).
>
>
>
> A couple of questions:
>
>
>
> 1.       Some of the APIs in IBinarizable allow for a factory methods to
> control construction of collection and dictionary elements, but not for
> array elements (which could allow for performance optimization through
> array pooling).
>
> 2.       GUID and DateTime elements are nullable (and there is no
> non-nullable variant for these types). Apart from being inconsistent with
> all the other types supported in the API, nullability in .Net carries a
> performance penalty. Curious as to why these types are defined like this?
>
> 3.       I see it is possible to read arrays of elements. But I see no
> way to read a particular element within an array without deserialising the
> entire array. Is it possible to do something like  byte ReadByte(string
> fieldname, uint index); ?
>
>
>
> Thanks,
>
> Raymond.
>
>
>
>
>
>
>

Reply via email to