Repository: ignite
Updated Branches:
  refs/heads/master ee8ac73f2 -> 82504a0e5


IGNITE-3331 IGFS: Route client tasks to primary node when metadata co-location 
is enabled. This closes #921.


Project: http://git-wip-us.apache.org/repos/asf/ignite/repo
Commit: http://git-wip-us.apache.org/repos/asf/ignite/commit/a596e67a
Tree: http://git-wip-us.apache.org/repos/asf/ignite/tree/a596e67a
Diff: http://git-wip-us.apache.org/repos/asf/ignite/diff/a596e67a

Branch: refs/heads/master
Commit: a596e67a1cf329ef07ebeef250166829a05ce901
Parents: 8c4a1c7
Author: tledkov-gridgain <[email protected]>
Authored: Thu Aug 4 17:04:41 2016 +0300
Committer: vozerov-gridgain <[email protected]>
Committed: Thu Aug 4 17:04:41 2016 +0300

----------------------------------------------------------------------
 .../processors/igfs/IgfsMetaManager.java        | 20 +++++++++++++++++++-
 1 file changed, 19 insertions(+), 1 deletion(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/ignite/blob/a596e67a/modules/core/src/main/java/org/apache/ignite/internal/processors/igfs/IgfsMetaManager.java
----------------------------------------------------------------------
diff --git 
a/modules/core/src/main/java/org/apache/ignite/internal/processors/igfs/IgfsMetaManager.java
 
b/modules/core/src/main/java/org/apache/ignite/internal/processors/igfs/IgfsMetaManager.java
index 0d14a3a..d1151c5 100644
--- 
a/modules/core/src/main/java/org/apache/ignite/internal/processors/igfs/IgfsMetaManager.java
+++ 
b/modules/core/src/main/java/org/apache/ignite/internal/processors/igfs/IgfsMetaManager.java
@@ -248,7 +248,25 @@ public class IgfsMetaManager extends IgfsManager {
      */
     <T> T runClientTask(IgfsClientAbstractCallable<T> task) {
         try {
-            return clientCompute().call(task);
+            return runClientTask(IgfsUtils.ROOT_ID, task);
+        }
+        catch (ClusterTopologyException e) {
+            throw new IgfsException("Failed to execute operation because there 
are no IGFS metadata nodes." , e);
+        }
+    }
+
+    /**
+     * Run client task.
+     *
+     * @param affinityFileId Affinity fileId.
+     * @param task Task.
+     * @return Result.
+     */
+    <T> T runClientTask(IgniteUuid affinityFileId, 
IgfsClientAbstractCallable<T> task) {
+        try {
+            return (cfg.isColocateMetadata()) ?
+                clientCompute().affinityCall(cfg.getMetaCacheName(), 
affinityFileId, task) :
+                clientCompute().call(task);
         }
         catch (ClusterTopologyException e) {
             throw new IgfsException("Failed to execute operation because there 
are no IGFS metadata nodes." , e);

Reply via email to