You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ignite.apache.org by vo...@apache.org on 2016/03/15 14:35:11 UTC

[02/16] ignite git commit: Removed listing usage from IgfsDeleteWorker.

Removed listing usage from IgfsDeleteWorker.


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

Branch: refs/heads/ignite-2813
Commit: d139289b29aacbb92580f8ec2b30290e06d63a59
Parents: ee08e00
Author: vozerov-gridgain <vo...@gridgain.com>
Authored: Tue Mar 15 15:19:25 2016 +0300
Committer: vozerov-gridgain <vo...@gridgain.com>
Committed: Tue Mar 15 15:19:25 2016 +0300

----------------------------------------------------------------------
 .../processors/igfs/IgfsDeleteWorker.java       | 50 ++++++++++----------
 .../processors/igfs/IgfsMetaManager.java        | 23 ++++-----
 2 files changed, 38 insertions(+), 35 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/ignite/blob/d139289b/modules/core/src/main/java/org/apache/ignite/internal/processors/igfs/IgfsDeleteWorker.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/igfs/IgfsDeleteWorker.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/igfs/IgfsDeleteWorker.java
index ffddd3e..1570845 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/igfs/IgfsDeleteWorker.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/igfs/IgfsDeleteWorker.java
@@ -175,20 +175,21 @@ public class IgfsDeleteWorker extends IgfsThread {
         }
 
         if (info != null) {
-            for (Map.Entry<String, IgfsListingEntry> entry : info.listing().entrySet()) {
-                IgniteUuid fileId = entry.getValue().fileId();
+            for (Map.Entry<String, IgniteUuid> entry : info.listing2().entrySet()) {
+                String childName = entry.getKey();
+                IgniteUuid childId = entry.getValue();
 
                 if (log.isDebugEnabled())
-                    log.debug("Deleting IGFS trash entry [name=" + entry.getKey() + ", fileId=" + fileId + ']');
+                    log.debug("Deleting IGFS trash entry [name=" + childName + ", id=" + childId + ']');
 
                 try {
                     if (!cancelled) {
-                        if (delete(trashId, entry.getKey(), fileId)) {
+                        if (delete(trashId, childName, childId)) {
                             if (log.isDebugEnabled())
-                                log.debug("Sending delete confirmation message [name=" + entry.getKey() +
-                                    ", fileId=" + fileId + ']');
+                                log.debug("Sending delete confirmation message [name=" + childName +
+                                    ", id=" + childId + ']');
 
-                            sendDeleteMessage(new IgfsDeleteMessage(fileId));
+                            sendDeleteMessage(new IgfsDeleteMessage(childId));
                         }
                     }
                     else
@@ -198,9 +199,9 @@ public class IgfsDeleteWorker extends IgfsThread {
                     // Ignore this exception while stopping.
                 }
                 catch (IgniteCheckedException e) {
-                    U.error(log, "Failed to delete entry from the trash directory: " + entry.getKey(), e);
+                    U.error(log, "Failed to delete entry from the trash directory: " + childName, e);
 
-                    sendDeleteMessage(new IgfsDeleteMessage(fileId, e));
+                    sendDeleteMessage(new IgfsDeleteMessage(childId, e));
                 }
             }
         }
@@ -276,34 +277,35 @@ public class IgfsDeleteWorker extends IgfsThread {
             if (info != null) {
                 assert info.isDirectory();
 
-                final Map<String, IgfsListingEntry> listing = info.listing();
+                final Map<String, IgniteUuid> listing = info.listing2();
 
                 if (listing.isEmpty())
                     return true; // Directory is empty.
 
-                final Map<String, IgfsListingEntry> delListing = new HashMap<>(MAX_DELETE_BATCH, 1.0f);
+                final Map<String, IgniteUuid> delListing = new HashMap<>(MAX_DELETE_BATCH, 1.0f);
 
                 final GridCompoundFuture<Object, ?> fut = new GridCompoundFuture<>();
 
                 int failedFiles = 0;
 
-                for (final Map.Entry<String, IgfsListingEntry> entry : listing.entrySet()) {
+                for (final Map.Entry<String, IgniteUuid> entry : listing.entrySet()) {
                     if (cancelled)
                         return false;
 
-                    if (entry.getValue().isDirectory()) {
-                        if (deleteDirectoryContents(id, entry.getValue().fileId())) // *** Recursive call.
-                            delListing.put(entry.getKey(), entry.getValue());
-                        else
-                            failedFiles++;
-                    }
-                    else {
-                        IgfsFileInfo fileInfo = meta.info(entry.getValue().fileId());
+                    String childName = entry.getKey();
+                    IgniteUuid childId = entry.getValue();
 
-                        if (fileInfo != null) {
-                            assert fileInfo.isFile();
+                    IgfsFileInfo childInfo = meta.info(childId);
 
-                            IgfsFileInfo lockedInfo = meta.lock(fileInfo.id(), true);
+                    if (childInfo != null) {
+                        if (childInfo.isDirectory()) {
+                            if (deleteDirectoryContents(id, childId)) // *** Recursive call.
+                                delListing.put(childName, childId);
+                            else
+                                failedFiles++;
+                        }
+                        else {
+                            IgfsFileInfo lockedInfo = meta.lock(childId, true);
 
                             if (lockedInfo == null)
                                 // File is already locked:
@@ -313,7 +315,7 @@ public class IgfsDeleteWorker extends IgfsThread {
 
                                 fut.add(data.delete(lockedInfo));
 
-                                delListing.put(entry.getKey(), entry.getValue());
+                                delListing.put(childName, childId);
                             }
                         }
                     }

http://git-wip-us.apache.org/repos/asf/ignite/blob/d139289b/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 d3aae58..1fd426c 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
@@ -1318,7 +1318,7 @@ public class IgfsMetaManager extends IgfsManager {
      * @return Collection of really deleted entries.
      * @throws IgniteCheckedException If failed.
      */
-    Collection<IgniteUuid> delete(IgniteUuid parentId, Map<String, IgfsListingEntry> listing)
+    Collection<IgniteUuid> delete(IgniteUuid parentId, Map<String, IgniteUuid> listing)
         throws IgniteCheckedException {
         if (busyLock.enterBusy()) {
             try {
@@ -1338,8 +1338,8 @@ public class IgfsMetaManager extends IgfsManager {
 
                     int i = 1;
 
-                    for (IgfsListingEntry entry : listing.values())
-                        allIds[i++] = entry.fileId();
+                    for (IgniteUuid childId : listing.values())
+                        allIds[i++] = childId;
 
                     Map<IgniteUuid, IgfsFileInfo> locks = lockIds(allIds);
 
@@ -1353,10 +1353,11 @@ public class IgfsMetaManager extends IgfsManager {
                         newListing.putAll(parentInfo.listing());
 
                         // Remove child entries if possible.
-                        for (Map.Entry<String, IgfsListingEntry> entry : listing.entrySet()) {
-                            IgniteUuid entryId = entry.getValue().fileId();
+                        for (Map.Entry<String, IgniteUuid> entry : listing.entrySet()) {
+                            String childName = entry.getKey();
+                            IgniteUuid childId = entry.getValue();
 
-                            IgfsFileInfo entryInfo = locks.get(entryId);
+                            IgfsFileInfo entryInfo = locks.get(childId);
 
                             if (entryInfo != null) {
                                 // File must be locked for deletion:
@@ -1364,18 +1365,18 @@ public class IgfsMetaManager extends IgfsManager {
 
                                 // Delete only files or empty folders.
                                 if (entryInfo.isFile() || entryInfo.isDirectory() && entryInfo.listing().isEmpty()) {
-                                    id2InfoPrj.getAndRemove(entryId);
+                                    id2InfoPrj.getAndRemove(childId);
 
-                                    newListing.remove(entry.getKey());
+                                    newListing.remove(childName);
 
-                                    res.add(entryId);
+                                    res.add(childId);
                                 }
                             }
                             else {
                                 // Entry was deleted concurrently.
-                                newListing.remove(entry.getKey());
+                                newListing.remove(childName);
 
-                                res.add(entryId);
+                                res.add(childId);
                             }
                         }