[ https://issues.apache.org/jira/browse/IGNITE-12555?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Pavel Tupitsyn updated IGNITE-12555: ------------------------------------ Release Note: Improve serialization performance for DateTime and other ISerializable types > .NET: Thin Client: deserializing DateTime fields causes BinaryTypeGet request > for every value > --------------------------------------------------------------------------------------------- > > Key: IGNITE-12555 > URL: https://issues.apache.org/jira/browse/IGNITE-12555 > Project: Ignite > Issue Type: Bug > Components: platforms > Affects Versions: 2.4, 2.5, 2.6, 2.7, 2.8, 2.7.5, 2.7.6 > Reporter: Pavel Tupitsyn > Assignee: Pavel Tupitsyn > Priority: Blocker > Labels: .NET > Fix For: 2.8 > > Time Spent: 20m > Remaining Estimate: 0h > > Actual: The following code causes 10 BinaryProcessorClient.GetBinaryType > calls (2 fields, 5 Foo instances). Every call is a server request. > Expected: 0 calls. Binary metadata should be cached after PutAll call. > {code} > public class CacheDateTimeMetaTest : ClientTestBase > { > [Test] > public void TestDateTimeMeta() > { > var data = Enumerable.Range(1, 5) > .Select(x => new Foo > { > Id = x, > StartDate = DateTime.Now.AddHours(x), > EndDate = DateTime.Now.AddDays(x) > }); > var cache = Client.GetOrCreateCache<int, Foo>("foo"); > cache.PutAll(data.Select(x => new KeyValuePair<int, Foo>(x.Id, > x))); > var res = cache.Query(new ScanQuery<int, Foo>()).GetAll(); > Assert.AreEqual(cache.GetSize(), res.Count); > } > public class Foo > { > public int Id { get; set; } > public DateTime? StartDate { get; set; } > public DateTime? EndDate { get; set; } > } > } > {code} > This causes huge performance issues. > *Workaround* > * Force Timestamp format for all DateTime values > User list discussion: > http://apache-ignite-users.70518.x6.nabble.com/Getting-all-data-from-cache-via-scan-query-is-taking-lot-of-time-td30949.html -- This message was sent by Atlassian Jira (v8.3.4#803005)