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/06/07 14:07:08 UTC

ignite git commit: Removed "writeComplextoinFuture" field.

Repository: ignite
Updated Branches:
  refs/heads/ignite-3264 153a63b79 -> 1e528b4dd


Removed "writeComplextoinFuture" field.


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

Branch: refs/heads/ignite-3264
Commit: 1e528b4ddd7df720cb09c13136c294520293564d
Parents: 153a63b
Author: vozerov-gridgain <vo...@gridgain.com>
Authored: Tue Jun 7 17:07:00 2016 +0300
Committer: vozerov-gridgain <vo...@gridgain.com>
Committed: Tue Jun 7 17:07:00 2016 +0300

----------------------------------------------------------------------
 .../processors/igfs/IgfsDataManager.java         | 10 ++++++++--
 .../processors/igfs/IgfsOutputStreamImpl.java    | 19 +++----------------
 .../processors/igfs/IgfsDataManagerSelfTest.java |  6 +++---
 3 files changed, 14 insertions(+), 21 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/ignite/blob/1e528b4d/modules/core/src/main/java/org/apache/ignite/internal/processors/igfs/IgfsDataManager.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/igfs/IgfsDataManager.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/igfs/IgfsDataManager.java
index f470521..34d77f9 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/igfs/IgfsDataManager.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/igfs/IgfsDataManager.java
@@ -494,12 +494,18 @@ public class IgfsDataManager extends IgfsManager {
      * Notifies data manager that no further writes will be performed on stream.
      *
      * @param fileId File ID.
+     * @param await Await completion.
+     * @throws IgniteCheckedException If failed.
      */
-    public void writeClose(IgniteUuid fileId) {
+    public void writeClose(IgniteUuid fileId, boolean await) throws IgniteCheckedException {
         WriteCompletionFuture fut = pendingWrites.get(fileId);
 
-        if (fut != null)
+        if (fut != null) {
             fut.markWaitingLastAck();
+
+            if (await)
+                fut.get();
+        }
         else {
             if (log.isDebugEnabled())
                 log.debug("Failed to find write completion future for file in pending write map (most likely it was " +

http://git-wip-us.apache.org/repos/asf/ignite/blob/1e528b4d/modules/core/src/main/java/org/apache/ignite/internal/processors/igfs/IgfsOutputStreamImpl.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/igfs/IgfsOutputStreamImpl.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/igfs/IgfsOutputStreamImpl.java
index a642d63..fb2ed3b 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/igfs/IgfsOutputStreamImpl.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/igfs/IgfsOutputStreamImpl.java
@@ -24,7 +24,6 @@ import org.apache.ignite.igfs.IgfsMode;
 import org.apache.ignite.igfs.IgfsOutputStream;
 import org.apache.ignite.igfs.IgfsPath;
 import org.apache.ignite.igfs.IgfsPathNotFoundException;
-import org.apache.ignite.internal.IgniteInternalFuture;
 import org.apache.ignite.internal.managers.eventstorage.GridEventStorageManager;
 import org.apache.ignite.internal.util.typedef.internal.A;
 import org.apache.ignite.internal.util.typedef.internal.S;
@@ -63,9 +62,6 @@ class IgfsOutputStreamImpl extends IgfsOutputStream {
     /** File worker batch. */
     private final IgfsFileWorkerBatch batch;
 
-    /** Write completion future. */
-    private final IgniteInternalFuture<Boolean> writeCompletionFut;
-
     /** Mutex for synchronization. */
     private final Object mux = new Object();
 
@@ -127,7 +123,8 @@ class IgfsOutputStreamImpl extends IgfsOutputStream {
             this.batch = batch;
 
             streamRange = initialStreamRange(fileInfo);
-            writeCompletionFut = igfsCtx.data().writeStart(fileInfo.id());
+
+            igfsCtx.data().writeStart(fileInfo.id());
         }
 
         igfsCtx.igfs().localMetrics().incrementFilesOpenedForWrite();
@@ -287,9 +284,7 @@ class IgfsOutputStreamImpl extends IgfsOutputStream {
                     IOException err = null;
 
                     try {
-                        igfsCtx.data().writeClose(fileInfo.id());
-
-                        writeCompletionFut.get();
+                        igfsCtx.data().writeClose(fileInfo.id(), true);
                     }
                     catch (IgniteCheckedException e) {
                         err = new IOException("Failed to close stream [path=" + path +
@@ -418,14 +413,6 @@ class IgfsOutputStreamImpl extends IgfsOutputStream {
         assert data instanceof ByteBuffer || data instanceof DataInput;
 
         try {
-            // Check if pending writes are ok.
-            if (writeCompletionFut.isDone()) {
-                if (data instanceof DataInput)
-                    ((DataInput) data).skipBytes(writeLen);
-
-                writeCompletionFut.get();
-            }
-
             // Increment metrics.
             bytes += writeLen;
             space += writeLen;

http://git-wip-us.apache.org/repos/asf/ignite/blob/1e528b4d/modules/core/src/test/java/org/apache/ignite/internal/processors/igfs/IgfsDataManagerSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/apache/ignite/internal/processors/igfs/IgfsDataManagerSelfTest.java b/modules/core/src/test/java/org/apache/ignite/internal/processors/igfs/IgfsDataManagerSelfTest.java
index 70d6b99..0d1a66f 100644
--- a/modules/core/src/test/java/org/apache/ignite/internal/processors/igfs/IgfsDataManagerSelfTest.java
+++ b/modules/core/src/test/java/org/apache/ignite/internal/processors/igfs/IgfsDataManagerSelfTest.java
@@ -195,7 +195,7 @@ public class IgfsDataManagerSelfTest extends IgfsCommonAbstractTest {
 
             assert remainder == null;
 
-            mgr.writeClose(info.id());
+            mgr.writeClose(info.id(), false);
 
             fut.get(3000);
 
@@ -287,7 +287,7 @@ public class IgfsDataManagerSelfTest extends IgfsCommonAbstractTest {
 
             assert left2 == null;
 
-            mgr.writeClose(info.id());
+            mgr.writeClose(info.id(), false);
 
             fut.get(3000);
 
@@ -369,7 +369,7 @@ public class IgfsDataManagerSelfTest extends IgfsCommonAbstractTest {
                 assert left == null : "No remainder should be returned if flush is true: " + Arrays.toString(left);
             }
 
-            mgr.writeClose(info.id());
+            mgr.writeClose(info.id(), false);
 
             assertTrue(range.regionEqual(new IgfsFileAffinityRange(0, writesCnt * chunkSize - 1, null)));