[ https://issues.apache.org/jira/browse/IGNITE-4157?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15754660#comment-15754660 ]
Sergey Chugunov commented on IGNITE-4157: ----------------------------------------- Received some comments on review including (from major to minor): * DiscoveryDataContainer is part of public API but expresses some internal concepts through its interface; * Mappings should be persisted outside of discovery thread; * Managing map used for synchronization of mappings distribution should be done in GridFutureAdapter specialized subclass; * It is more efficient for client to request missed mappings (*MissingMappingRequest/ResponseMessage*) using communication instead of discovery messages; * *MessageRejectedMessage* may not be necessary, figuring out if I can get rid of additional pass of this message; > Use discovery custom messages instead of marshaller cache > --------------------------------------------------------- > > Key: IGNITE-4157 > URL: https://issues.apache.org/jira/browse/IGNITE-4157 > Project: Ignite > Issue Type: Improvement > Components: cache > Reporter: Alexey Goncharuk > Assignee: Sergey Chugunov > Fix For: 2.0 > > > Currently we use system caches for keeping classname to class ID mapping and > for storing binary metadata > This has several serious disadvantages: > 1) We need to introduce at least two additional thread pools for each of > these caches > 2) Since cache operations require stable topology, registering a class ID or > updating metadata inside a transaction or another cache operation is tricky > and deadlock-prone. > 3) It may be beneficial in some cases to have nodes with no caches at all, > currently this is impossible because system caches are always present. > 4) Reading binary metadata leads to huge local contention, caching metadata > values in a local map doubles memory consumption > I suggest we use discovery custom events for these purposes. Each node will > have a corresponding local map (state) which will be updated inside custom > event handler. From the first point of view, this should remove all the > disadvantages above. -- This message was sent by Atlassian JIRA (v6.3.4#6332)