ignite-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Sergey Chugunov (JIRA)" <j...@apache.org>
Subject [jira] [Comment Edited] (IGNITE-4157) Use discovery custom messages instead of marshaller cache
Date Fri, 16 Dec 2016 15:12:58 GMT

    [ https://issues.apache.org/jira/browse/IGNITE-4157?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15754660#comment-15754660
] 

Sergey Chugunov edited comment on IGNITE-4157 at 12/16/16 3:12 PM:
-------------------------------------------------------------------

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;

Working on addressing them.


was (Author: sergey-chugunov):
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)

Mime
View raw message