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:23 UTC

[14/16] ignite git commit: Now getting rid of listing2 (2).

Now getting rid of listing2 (2).


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

Branch: refs/heads/ignite-2813
Commit: 0d4d5677dec4991ed9f8cf63d62c19d291be6927
Parents: 8cabfcd
Author: vozerov-gridgain <vo...@gridgain.com>
Authored: Tue Mar 15 16:23:47 2016 +0300
Committer: vozerov-gridgain <vo...@gridgain.com>
Committed: Tue Mar 15 16:23:47 2016 +0300

----------------------------------------------------------------------
 .../processors/igfs/IgfsDeleteWorker.java       | 57 +++++++++-----------
 .../processors/igfs/IgfsMetaManager.java        | 10 ++--
 2 files changed, 31 insertions(+), 36 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/ignite/blob/0d4d5677/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 dda3612..ffddd3e 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,21 +175,20 @@ public class IgfsDeleteWorker extends IgfsThread {
         }
 
         if (info != null) {
-            for (Map.Entry<String, IgniteUuid> entry : info.listing2().entrySet()) {
-                String childName = entry.getKey();
-                IgniteUuid childId = entry.getValue();
+            for (Map.Entry<String, IgfsListingEntry> entry : info.listing().entrySet()) {
+                IgniteUuid fileId = entry.getValue().fileId();
 
                 if (log.isDebugEnabled())
-                    log.debug("Deleting IGFS trash entry [name=" + childName + ", id=" + childId + ']');
+                    log.debug("Deleting IGFS trash entry [name=" + entry.getKey() + ", fileId=" + fileId + ']');
 
                 try {
                     if (!cancelled) {
-                        if (delete(trashId, childName, childId)) {
+                        if (delete(trashId, entry.getKey(), fileId)) {
                             if (log.isDebugEnabled())
-                                log.debug("Sending delete confirmation message [name=" + childName +
-                                    ", id=" + childId + ']');
+                                log.debug("Sending delete confirmation message [name=" + entry.getKey() +
+                                    ", fileId=" + fileId + ']');
 
-                            sendDeleteMessage(new IgfsDeleteMessage(childId));
+                            sendDeleteMessage(new IgfsDeleteMessage(fileId));
                         }
                     }
                     else
@@ -199,9 +198,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: " + childName, e);
+                    U.error(log, "Failed to delete entry from the trash directory: " + entry.getKey(), e);
 
-                    sendDeleteMessage(new IgfsDeleteMessage(childId, e));
+                    sendDeleteMessage(new IgfsDeleteMessage(fileId, e));
                 }
             }
         }
@@ -277,36 +276,34 @@ public class IgfsDeleteWorker extends IgfsThread {
             if (info != null) {
                 assert info.isDirectory();
 
-                final Map<String, IgniteUuid> listing = info.listing2();
+                final Map<String, IgfsListingEntry> listing = info.listing();
 
                 if (listing.isEmpty())
                     return true; // Directory is empty.
 
-                final Map<String, IgniteUuid> delListing = new HashMap<>(MAX_DELETE_BATCH, 1.0f);
+                final Map<String, IgfsListingEntry> delListing = new HashMap<>(MAX_DELETE_BATCH, 1.0f);
 
                 final GridCompoundFuture<Object, ?> fut = new GridCompoundFuture<>();
 
-                int notFoundFiles = 0;
                 int failedFiles = 0;
 
-                for (final Map.Entry<String, IgniteUuid> entry : listing.entrySet()) {
+                for (final Map.Entry<String, IgfsListingEntry> entry : listing.entrySet()) {
                     if (cancelled)
                         return false;
 
-                    String childName = entry.getKey();
-                    IgniteUuid childId = entry.getValue();
+                    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());
 
-                    IgfsFileInfo childInfo = meta.info(childId);
+                        if (fileInfo != null) {
+                            assert fileInfo.isFile();
 
-                    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);
+                            IgfsFileInfo lockedInfo = meta.lock(fileInfo.id(), true);
 
                             if (lockedInfo == null)
                                 // File is already locked:
@@ -316,12 +313,10 @@ public class IgfsDeleteWorker extends IgfsThread {
 
                                 fut.add(data.delete(lockedInfo));
 
-                                delListing.put(childName, childId);
+                                delListing.put(entry.getKey(), entry.getValue());
                             }
                         }
                     }
-                    else
-                        notFoundFiles++;
 
                     if (delListing.size() == MAX_DELETE_BATCH)
                         break;
@@ -343,10 +338,10 @@ public class IgfsDeleteWorker extends IgfsThread {
                 // Actual delete of folder content.
                 Collection<IgniteUuid> delIds = meta.delete(id, delListing);
 
-                if (listing.size() - notFoundFiles == delIds.size())
+                if (listing.size() == delIds.size())
                     return true; // All entries were deleted.
 
-                if (listing.size() - notFoundFiles == delListing.size() + failedFiles)
+                if (listing.size() == delListing.size() + failedFiles)
                     // All the files were tried, no reason to continue the loop:
                     return false;
             }

http://git-wip-us.apache.org/repos/asf/ignite/blob/0d4d5677/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 7a3c108..105792d 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
@@ -1305,7 +1305,7 @@ public class IgfsMetaManager extends IgfsManager {
      * @return Collection of really deleted entries.
      * @throws IgniteCheckedException If failed.
      */
-    Collection<IgniteUuid> delete(IgniteUuid parentId, Map<String, IgniteUuid> listing)
+    Collection<IgniteUuid> delete(IgniteUuid parentId, Map<String, IgfsListingEntry> listing)
         throws IgniteCheckedException {
         if (busyLock.enterBusy()) {
             try {
@@ -1325,8 +1325,8 @@ public class IgfsMetaManager extends IgfsManager {
 
                     int i = 1;
 
-                    for (IgniteUuid childId : listing.values())
-                        allIds[i++] = childId;
+                    for (IgfsListingEntry childEntry : listing.values())
+                        allIds[i++] = childEntry.fileId();
 
                     Map<IgniteUuid, IgfsFileInfo> locks = lockIds(allIds);
 
@@ -1341,9 +1341,9 @@ public class IgfsMetaManager extends IgfsManager {
                         newListing.putAll(parentListing);
 
                         // Remove child entries if possible.
-                        for (Map.Entry<String, IgniteUuid> entry : listing.entrySet()) {
+                        for (Map.Entry<String, IgfsListingEntry> entry : listing.entrySet()) {
                             String childName = entry.getKey();
-                            IgniteUuid childId = entry.getValue();
+                            IgniteUuid childId = entry.getValue().fileId();
 
                             IgfsFileInfo entryInfo = locks.get(childId);