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

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

Now getting rid of listing2 (3).


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

Branch: refs/heads/ignite-2813
Commit: 459cf2b76433fcfbb957389982666b052d52fff5
Parents: 0d4d567
Author: vozerov-gridgain <vo...@gridgain.com>
Authored: Tue Mar 15 16:30:18 2016 +0300
Committer: vozerov-gridgain <vo...@gridgain.com>
Committed: Tue Mar 15 16:30:18 2016 +0300

----------------------------------------------------------------------
 .../internal/processors/igfs/IgfsFileInfo.java  | 49 +++++---------------
 .../internal/processors/igfs/IgfsImpl.java      |  8 ++--
 .../processors/igfs/IgfsMetaManager.java        | 12 ++---
 3 files changed, 19 insertions(+), 50 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/ignite/blob/459cf2b7/modules/core/src/main/java/org/apache/ignite/internal/processors/igfs/IgfsFileInfo.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/igfs/IgfsFileInfo.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/igfs/IgfsFileInfo.java
index 814b730..ba484bb 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/igfs/IgfsFileInfo.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/igfs/IgfsFileInfo.java
@@ -22,7 +22,6 @@ import java.io.IOException;
 import java.io.ObjectInput;
 import java.io.ObjectOutput;
 import java.util.Collections;
-import java.util.HashMap;
 import java.util.Map;
 import org.apache.ignite.configuration.FileSystemConfiguration;
 import org.apache.ignite.igfs.IgfsPath;
@@ -75,9 +74,6 @@ public final class IgfsFileInfo implements Externalizable {
     @GridToStringInclude
     private Map<String, IgfsListingEntry> listing;
 
-    /** Directory listing. */
-    private Map<String, IgniteUuid> listing2;
-
     /** Whether data blocks of this entry should never be excluded. */
     private boolean evictExclude;
 
@@ -301,16 +297,6 @@ public final class IgfsFileInfo implements Externalizable {
         this.props = props == null || props.isEmpty() ? null :
             cpProps ? new GridLeanMap<>(props) : props;
 
-        if (listing == null && isDir)
-            this.listing = Collections.emptyMap();
-
-        if (this.listing != null) {
-            this.listing2 = new HashMap<>(this.listing.size());
-
-            for (Map.Entry<String, IgfsListingEntry> entry : this.listing.entrySet())
-                this.listing2.put(entry.getKey(), entry.getValue().fileId());
-        }
-
         this.lockId = lockId;
         this.evictExclude = evictExclude;
     }
@@ -421,27 +407,14 @@ public final class IgfsFileInfo implements Externalizable {
      * @return Directory listing.
      */
     public Map<String, IgfsListingEntry> listing() {
-        // Always wrap into unmodifiable map to be able to avoid illegal modifications in order pieces of the code.
-        if (isFile())
-            return Collections.unmodifiableMap(Collections.<String, IgfsListingEntry>emptyMap());
-
-        assert listing != null;
-
-        return Collections.unmodifiableMap(listing);
-    }
-
-    /**
-     * @return Directory listing.
-     */
-    public Map<String, IgniteUuid> listing2() {
-        return listing2 != null ? listing2 : Collections.<String, IgniteUuid>emptyMap();
+        return listing != null ? listing : Collections.<String, IgfsListingEntry>emptyMap();
     }
 
     /**
      * @return {@code True} if at least one child exists.
      */
     public boolean hasChildren() {
-        return !F.isEmpty(listing2);
+        return !F.isEmpty(listing);
     }
 
     /**
@@ -449,7 +422,7 @@ public final class IgfsFileInfo implements Externalizable {
      * @return {@code True} if child with such name exists.
      */
     public boolean hasChild(String name) {
-        return listing2 != null && listing2.containsKey(name);
+        return listing != null && listing.containsKey(name);
     }
 
     /**
@@ -458,7 +431,14 @@ public final class IgfsFileInfo implements Externalizable {
      * @return {@code True} if child with such name exists.
      */
     public boolean hasChild(String name, IgniteUuid expId) {
-        return listing2 != null && F.eq(expId, listing2.get(name));
+        if (listing != null) {
+            IgfsListingEntry entry = listing.get(name);
+
+            if (entry != null)
+                return F.eq(expId, entry.fileId());
+        }
+
+        return false;
     }
 
     /**
@@ -556,13 +536,6 @@ public final class IgfsFileInfo implements Externalizable {
         modificationTime = in.readLong();
         evictExclude = in.readBoolean();
         path = (IgfsPath)in.readObject();
-
-        if (listing != null) {
-            listing2 = new HashMap<>(listing.size());
-
-            for (Map.Entry<String, IgfsListingEntry> entry : listing.entrySet())
-                listing2.put(entry.getKey(), entry.getValue().fileId());
-        }
     }
 
     /** {@inheritDoc} */

http://git-wip-us.apache.org/repos/asf/ignite/blob/459cf2b7/modules/core/src/main/java/org/apache/ignite/internal/processors/igfs/IgfsImpl.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/igfs/IgfsImpl.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/igfs/IgfsImpl.java
index 3eaf02f..e0c9be8 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/igfs/IgfsImpl.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/igfs/IgfsImpl.java
@@ -869,8 +869,8 @@ public final class IgfsImpl implements IgfsEx {
                                 data.groupBlockSize()));
 
                         // Perform the listing.
-                        for (Map.Entry<String, IgniteUuid> e : info.listing2().entrySet()) {
-                            IgfsFileInfo childInfo = meta.info(e.getValue());
+                        for (Map.Entry<String, IgfsListingEntry> e : info.listing().entrySet()) {
+                            IgfsFileInfo childInfo = meta.info(e.getValue().fileId());
 
                             if (childInfo != null) {
                                 IgfsPath childPath = new IgfsPath(path, e.getKey());
@@ -1285,8 +1285,8 @@ public final class IgfsImpl implements IgfsEx {
                 if (!IgfsUtils.ROOT_ID.equals(info.id()))
                     sum.directoriesCount(sum.directoriesCount() + 1);
 
-                for (IgniteUuid id : info.listing2().values())
-                    summary0(id, sum);
+                for (IgfsListingEntry childEntry : info.listing().values())
+                    summary0(childEntry.fileId(), sum);
             }
             else {
                 sum.filesCount(sum.filesCount() + 1);

http://git-wip-us.apache.org/repos/asf/ignite/blob/459cf2b7/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 105792d..463e7a8 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
@@ -801,10 +801,10 @@ public class IgfsMetaManager extends IgfsManager {
         if (!parentInfo.isDirectory())
             throw fsException(new IgfsPathIsNotDirectoryException("Parent file is not a directory: " + parentInfo));
 
-        IgniteUuid fileId = parentInfo.listing2().get(fileName);
+        IgfsListingEntry childEntry = parentInfo.listing().get(fileName);
 
-        if (fileId != null)
-            return fileId;
+        if (childEntry != null)
+            return childEntry.fileId();
 
         if (!id2InfoPrj.putIfAbsent(newFileInfo.id(), newFileInfo))
             throw fsException("Failed to add file details into cache: " + newFileInfo);
@@ -1187,7 +1187,7 @@ public class IgfsMetaManager extends IgfsManager {
                     IgfsListingEntry srcEntry = srcParentInfo.listing().get(srcFileName);
 
                     assert srcEntry != null : "Deletion victim not found in parent listing [path=" + path +
-                        ", name=" + srcFileName + ", listing=" + srcParentInfo.listing2() + ']';
+                        ", name=" + srcFileName + ", listing=" + srcParentInfo.listing() + ']';
 
                     assert victimId.equals(srcEntry.fileId());
 
@@ -1528,10 +1528,6 @@ public class IgfsMetaManager extends IgfsManager {
                 return null; // File not found.
 
             if (parentInfo != null) {
-                Map<String, IgniteUuid> listing = parentInfo.listing2();
-
-                IgniteUuid entry = listing.get(fileName);
-
                 if (!parentInfo.hasChild(fileName, fileId)) // File was removed or recreated.
                     return null;
             }