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

Vladimir Ozerov commented on IGNITE-3580:
-----------------------------------------

To achieve this we must do the following:
1) Complete IGNITE-3625 first. This way we will always be ready to derive meta 
and data cache names from IGFS name.

2) {{IgfsMetaManager}} and {{IgfsDataManager}} will become shared. That is, 
they must be placed directly into {{IgfsProcessor}}. Now they are placed inside 
{{IgfsContext}} (i.e. they belong to concrete IGFS instance for now).

3) We need to introduce some value object which will store the following data: 
kernal context, meta cache name, data cache name, client flag. E.g.:
{code}
class IgfsOperationContext {
    GridKernalContext ctx;
    String metaCacheName;
    String dataCacheName;
    boolean client;
}
{code}

4) This context will be passed to all {{IgfsDataManager}} and 
{{IgfsMetaManager}} operations.

5) Each {{IgfsImpl}} instance will create their own {{IgfsOperationContext}} on 
start. 

6) Each client operation will create this context when task is received on the 
server node as follows (pseudocode):
{code}
IgfsOperationContext createContext(GridKernalContext ctx, String igfsName) {
    String metaCacheName = IgfsUtils.metaCacheName(igfsName); // IGNITE-3625
    String dataCacheName = IgfsUtils.metaCacheName(igfsName); // IGNITE-3625
    boolean client = false; // Task are routed only to server nodes, so client 
flag is always false.

    return new IgfsOpeartionContext(ctx, metaCacheName, dataCacheName, client);
}
{code}


> IGFS: Allow IGFS tasks execution on machines where IGFS is not configured.
> --------------------------------------------------------------------------
>
>                 Key: IGNITE-3580
>                 URL: https://issues.apache.org/jira/browse/IGNITE-3580
>             Project: Ignite
>          Issue Type: Task
>          Components: IGFS
>    Affects Versions: 1.6
>            Reporter: Vladimir Ozerov
>            Assignee: Taras Ledkov
>            Priority: Critical
>             Fix For: 1.8
>
>
> Currently user has to configure IGFS on all nodes where data and meta caches 
> reside. Otherwise, he will not be able to execute metadata and data updates 
> on these machines.
> This requirement is synthetic. No reason to force user doing this. Instead, 
> all required tasks can be executed on data nodes without IGFS started on 
> them. Need to refactor IGFS to allow this.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to