Return-Path: X-Original-To: apmail-ignite-commits-archive@minotaur.apache.org Delivered-To: apmail-ignite-commits-archive@minotaur.apache.org Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by minotaur.apache.org (Postfix) with SMTP id 2CCFF188EB for ; Tue, 15 Mar 2016 13:35:12 +0000 (UTC) Received: (qmail 4339 invoked by uid 500); 15 Mar 2016 13:35:12 -0000 Delivered-To: apmail-ignite-commits-archive@ignite.apache.org Received: (qmail 4242 invoked by uid 500); 15 Mar 2016 13:35:12 -0000 Mailing-List: contact commits-help@ignite.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: dev@ignite.apache.org Delivered-To: mailing list commits@ignite.apache.org Received: (qmail 3776 invoked by uid 99); 15 Mar 2016 13:35:11 -0000 Received: from git1-us-west.apache.org (HELO git1-us-west.apache.org) (140.211.11.23) by apache.org (qpsmtpd/0.29) with ESMTP; Tue, 15 Mar 2016 13:35:11 +0000 Received: by git1-us-west.apache.org (ASF Mail Server at git1-us-west.apache.org, from userid 33) id 2FD51E0984; Tue, 15 Mar 2016 13:35:11 +0000 (UTC) Content-Type: text/plain; charset="us-ascii" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit From: vozerov@apache.org To: commits@ignite.apache.org Date: Tue, 15 Mar 2016 13:35:23 -0000 Message-Id: In-Reply-To: References: X-Mailer: ASF-Git Admin Mailer Subject: [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 Authored: Tue Mar 15 16:23:47 2016 +0300 Committer: vozerov-gridgain 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 entry : info.listing2().entrySet()) { - String childName = entry.getKey(); - IgniteUuid childId = entry.getValue(); + for (Map.Entry 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 listing = info.listing2(); + final Map listing = info.listing(); if (listing.isEmpty()) return true; // Directory is empty. - final Map delListing = new HashMap<>(MAX_DELETE_BATCH, 1.0f); + final Map delListing = new HashMap<>(MAX_DELETE_BATCH, 1.0f); final GridCompoundFuture fut = new GridCompoundFuture<>(); - int notFoundFiles = 0; int failedFiles = 0; - for (final Map.Entry entry : listing.entrySet()) { + for (final Map.Entry 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 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 delete(IgniteUuid parentId, Map listing) + Collection delete(IgniteUuid parentId, Map 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 locks = lockIds(allIds); @@ -1341,9 +1341,9 @@ public class IgfsMetaManager extends IgfsManager { newListing.putAll(parentListing); // Remove child entries if possible. - for (Map.Entry entry : listing.entrySet()) { + for (Map.Entry entry : listing.entrySet()) { String childName = entry.getKey(); - IgniteUuid childId = entry.getValue(); + IgniteUuid childId = entry.getValue().fileId(); IgfsFileInfo entryInfo = locks.get(childId);