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;
}