You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ignite.apache.org by sb...@apache.org on 2015/03/04 17:19:38 UTC

incubator-ignite git commit: # ignite-370: allowOverwrite warning in false case + add java-doc

Repository: incubator-ignite
Updated Branches:
  refs/heads/ignite-394 e0d0584db -> 6f649413c


# ignite-370: allowOverwrite warning in false case + add java-doc


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

Branch: refs/heads/ignite-394
Commit: 6f649413cfd0af1eeddd352df77aa2e2ac77869c
Parents: e0d0584
Author: Artem Shutak <as...@gridgain.com>
Authored: Wed Mar 4 19:19:31 2015 +0300
Committer: Artem Shutak <as...@gridgain.com>
Committed: Wed Mar 4 19:19:31 2015 +0300

----------------------------------------------------------------------
 .../org/apache/ignite/IgniteDataStreamer.java   | 20 ++++++++++++++++++++
 .../datastream/IgniteDataStreamerImpl.java      | 20 ++++++++++++++++++--
 2 files changed, 38 insertions(+), 2 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/6f649413/modules/core/src/main/java/org/apache/ignite/IgniteDataStreamer.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/IgniteDataStreamer.java b/modules/core/src/main/java/org/apache/ignite/IgniteDataStreamer.java
index f5158b4..2e54225 100644
--- a/modules/core/src/main/java/org/apache/ignite/IgniteDataStreamer.java
+++ b/modules/core/src/main/java/org/apache/ignite/IgniteDataStreamer.java
@@ -249,6 +249,10 @@ public interface IgniteDataStreamer<K, V> extends AutoCloseable {
      * Note that loader will load data concurrently by multiple internal threads, so the
      * data may get to remote nodes in different order from which it was added to
      * the loader.
+     * <p>
+     * Note: if {@link IgniteDataStreamer#allowOverwrite()} set to {@code false} (by default)
+     * then data streamer will not overwrite existing cache entries for better performance
+     * (to change, set {@link IgniteDataStreamer#allowOverwrite(boolean)} to {@code true})
      *
      * @param key Key.
      * @param val Value or {@code null} if respective entry must be removed from cache.
@@ -257,6 +261,7 @@ public interface IgniteDataStreamer<K, V> extends AutoCloseable {
      * @throws IgniteInterruptedException If thread has been interrupted.
      * @throws IllegalStateException If grid has been concurrently stopped or
      *      {@link #close(boolean)} has already been called on loader.
+     * @see #allowOverwrite()
      */
     public IgniteFuture<?> addData(K key, @Nullable V val) throws IgniteException, IgniteInterruptedException,
         IllegalStateException;
@@ -268,6 +273,10 @@ public interface IgniteDataStreamer<K, V> extends AutoCloseable {
      * Note that loader will load data concurrently by multiple internal threads, so the
      * data may get to remote nodes in different order from which it was added to
      * the loader.
+     * <p>
+     * Note: if {@link IgniteDataStreamer#allowOverwrite()} set to {@code false} (by default)
+     * then data streamer will not overwrite existing cache entries for better performance
+     * (to change, set {@link IgniteDataStreamer#allowOverwrite(boolean)} to {@code true})
      *
      * @param entry Entry.
      * @return Future fo this operation.
@@ -275,6 +284,7 @@ public interface IgniteDataStreamer<K, V> extends AutoCloseable {
      * @throws IgniteInterruptedException If thread has been interrupted.
      * @throws IllegalStateException If grid has been concurrently stopped or
      *      {@link #close(boolean)} has already been called on loader.
+     * @see #allowOverwrite()      
      */
     public IgniteFuture<?> addData(Map.Entry<K, V> entry) throws IgniteException, IgniteInterruptedException,
         IllegalStateException;
@@ -286,11 +296,16 @@ public interface IgniteDataStreamer<K, V> extends AutoCloseable {
      * Note that loader will load data concurrently by multiple internal threads, so the
      * data may get to remote nodes in different order from which it was added to
      * the loader.
+     * <p>
+     * Note: if {@link IgniteDataStreamer#allowOverwrite()} set to {@code false} (by default)
+     * then data streamer will not overwrite existing cache entries for better performance 
+     * (to change, set {@link IgniteDataStreamer#allowOverwrite(boolean)} to {@code true})
      *
      * @param entries Collection of entries to be loaded.
      * @throws IllegalStateException If grid has been concurrently stopped or
      *      {@link #close(boolean)} has already been called on loader.
      * @return Future for this load operation.
+     * @see #allowOverwrite()
      */
     public IgniteFuture<?> addData(Collection<? extends Map.Entry<K, V>> entries) throws IllegalStateException;
 
@@ -301,11 +316,16 @@ public interface IgniteDataStreamer<K, V> extends AutoCloseable {
      * Note that loader will load data concurrently by multiple internal threads, so the
      * data may get to remote nodes in different order from which it was added to
      * the loader.
+     * <p>
+     * Note: if {@link IgniteDataStreamer#allowOverwrite()} set to {@code false} (by default)
+     * then data streamer will not overwrite existing cache entries for better performance 
+     * (to change, set {@link IgniteDataStreamer#allowOverwrite(boolean)} to {@code true})
      *
      * @param entries Map to be loaded.
      * @throws IllegalStateException If grid has been concurrently stopped or
      *      {@link #close(boolean)} has already been called on loader.
      * @return Future for this load operation.
+     * @see #allowOverwrite()
      */
     public IgniteFuture<?> addData(Map<K, V> entries) throws IllegalStateException;
 

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/6f649413/modules/core/src/main/java/org/apache/ignite/internal/processors/datastream/IgniteDataStreamerImpl.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/datastream/IgniteDataStreamerImpl.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/datastream/IgniteDataStreamerImpl.java
index 9ac3ec8..47f72ee 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/datastream/IgniteDataStreamerImpl.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/datastream/IgniteDataStreamerImpl.java
@@ -98,7 +98,7 @@ public class IgniteDataStreamerImpl<K, V> implements IgniteDataStreamer<K, V>, D
     private ConcurrentMap<UUID, Buffer> bufMappings = new ConcurrentHashMap8<>();
 
     /** Logger. */
-    private IgniteLogger log;
+    private final IgniteLogger log;
 
     /** Discovery listener. */
     private final GridLocalEventListener discoLsnr;
@@ -159,6 +159,9 @@ public class IgniteDataStreamerImpl<K, V> implements IgniteDataStreamer<K, V>, D
     /** */
     private int maxRemapCnt = DFLT_MAX_REMAP_CNT;
 
+    /** Whether a warning at {@link IgniteDataStreamerImpl#allowOverwrite()} printed */
+    private static boolean isWarningPrinted;
+
     /**
      * @param ctx Grid kernal context.
      * @param cacheName Cache name.
@@ -289,7 +292,20 @@ public class IgniteDataStreamerImpl<K, V> implements IgniteDataStreamer<K, V>, D
 
     /** {@inheritDoc} */
     @Override public boolean allowOverwrite() {
-        return updater != ISOLATED_UPDATER;
+        boolean allow = updater != ISOLATED_UPDATER;
+        
+        if (!allow && !isWarningPrinted) {
+            synchronized (this) {
+                if (!isWarningPrinted) {
+                    log.warning("Data streamer will not overwrite existing cache entries for better performance " +
+                        "(to change, set allowOverwrite to true)");
+
+                    isWarningPrinted = true;
+                }
+            }
+        }
+        
+        return allow;
     }
 
     /** {@inheritDoc} */