[jira] [Commented] (IGNITE-3580) IGFS: Allow IGFS tasks execution on machines where IGFS is not configured.

2016-08-04 Thread Vladimir Ozerov (JIRA)

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

Vladimir Ozerov commented on IGNITE-3580:
-

As this task is pretty big, I would split it into three subtasks, and implement 
them one by one in that order:
1) Pass {{IgfsOperationContext}} to all relevant {{IgfsMetaManager}} methods. 
2) Pass {{IgfsOperationContext}} to all relevant {{IgfsDataManager}} methods. 
3) At these points neither {{IgfsMetaManager}}. nor {{IgfsDataManager}} will 
depend on {{IgfsContext}}. So we can easily move them to {{IgfsProcessor}} and 
ensure that they always start, even if no IGFSs are configured on the node.


> 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)


[jira] [Commented] (IGNITE-3580) IGFS: Allow IGFS tasks execution on machines where IGFS is not configured.

2016-08-04 Thread Vladimir Ozerov (JIRA)

[ 
https://issues.apache.org/jira/browse/IGNITE-3580?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=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)