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 2017/04/18 14:08:08 UTC

[1/6] ignite git commit: master - fixed SPI test

Repository: ignite
Updated Branches:
  refs/heads/ignite-2.0 8ea9f83ce -> 9e7421f26


master - fixed SPI test


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

Branch: refs/heads/ignite-2.0
Commit: 375830d5e06384c4c58b6f792224bcd69a0d4323
Parents: ded9974
Author: Dmitriy Govorukhin <dm...@gmail.com>
Authored: Tue Apr 18 15:42:54 2017 +0300
Committer: Alexey Goncharuk <al...@gmail.com>
Committed: Tue Apr 18 15:42:54 2017 +0300

----------------------------------------------------------------------
 .../GridInternalTasksLoadBalancingSelfTest.java | 21 ++++++++++----------
 1 file changed, 10 insertions(+), 11 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/ignite/blob/375830d5/modules/core/src/test/java/org/apache/ignite/spi/loadbalancing/internal/GridInternalTasksLoadBalancingSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/apache/ignite/spi/loadbalancing/internal/GridInternalTasksLoadBalancingSelfTest.java b/modules/core/src/test/java/org/apache/ignite/spi/loadbalancing/internal/GridInternalTasksLoadBalancingSelfTest.java
index 80e76bd..f9d74b4 100644
--- a/modules/core/src/test/java/org/apache/ignite/spi/loadbalancing/internal/GridInternalTasksLoadBalancingSelfTest.java
+++ b/modules/core/src/test/java/org/apache/ignite/spi/loadbalancing/internal/GridInternalTasksLoadBalancingSelfTest.java
@@ -17,6 +17,11 @@
 
 package org.apache.ignite.spi.loadbalancing.internal;
 
+import java.io.Serializable;
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.List;
+import java.util.UUID;
 import org.apache.ignite.Ignite;
 import org.apache.ignite.IgniteException;
 import org.apache.ignite.cluster.ClusterNode;
@@ -27,9 +32,9 @@ import org.apache.ignite.compute.ComputeTaskSession;
 import org.apache.ignite.compute.ComputeTaskSplitAdapter;
 import org.apache.ignite.configuration.IgniteConfiguration;
 import org.apache.ignite.internal.processors.task.GridInternal;
-import org.apache.ignite.internal.util.lang.GridTuple3;
 import org.apache.ignite.internal.visor.VisorTaskArgument;
 import org.apache.ignite.internal.visor.node.VisorNodePingTask;
+import org.apache.ignite.internal.visor.node.VisorNodePingTaskResult;
 import org.apache.ignite.spi.IgniteSpiAdapter;
 import org.apache.ignite.spi.IgniteSpiException;
 import org.apache.ignite.spi.IgniteSpiMultipleInstancesSupport;
@@ -37,12 +42,6 @@ import org.apache.ignite.spi.loadbalancing.LoadBalancingSpi;
 import org.apache.ignite.testframework.junits.common.GridCommonAbstractTest;
 import org.jetbrains.annotations.Nullable;
 
-import java.io.Serializable;
-import java.util.ArrayList;
-import java.util.Collection;
-import java.util.List;
-import java.util.UUID;
-
 /**
  * Test that will start two nodes with custom load balancing SPI and execute {@link GridInternal} task on it.
  */
@@ -93,10 +92,10 @@ public class GridInternalTasksLoadBalancingSelfTest extends GridCommonAbstractTe
         // Visor task should pass.
         UUID nid = ignite.cluster().localNode().id();
 
-        GridTuple3<Boolean, Long, Long> ping = ignite.compute()
+        VisorNodePingTaskResult ping = ignite.compute()
             .execute(VisorNodePingTask.class.getName(), new VisorTaskArgument<>(nid, nid, false));
 
-        assertTrue(ping.get1());
+        assertTrue(ping.isAlive());
 
         // Custom task should fail, because special test load balancer SPI returns null as balanced node.
         try {
@@ -123,10 +122,10 @@ public class GridInternalTasksLoadBalancingSelfTest extends GridCommonAbstractTe
         // Visor task should pass.
         UUID nid = ignite.cluster().localNode().id();
 
-        GridTuple3<Boolean, Long, Long> ping = ignite.compute()
+        VisorNodePingTaskResult ping = ignite.compute()
             .execute(VisorNodePingTask.class.getName(), new VisorTaskArgument<>(nid, nid, false));
 
-        assertTrue(ping.get1());
+        assertTrue(ping.isAlive());
 
         // Custom task should pass.
         assertEquals(TASK_RESULT, ignite.compute().execute(CustomTestTask.class.getName(), null));


[4/6] ignite git commit: master Fixed Visor tests.

Posted by vo...@apache.org.
master Fixed Visor tests.


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

Branch: refs/heads/ignite-2.0
Commit: 36a6cd012ff610aebbadf64df58aaca9fa596190
Parents: dbcb02a
Author: Alexey Kuznetsov <ak...@gridgain.com>
Authored: Tue Apr 18 20:39:58 2017 +0700
Committer: Alexey Kuznetsov <ak...@gridgain.com>
Committed: Tue Apr 18 20:39:58 2017 +0700

----------------------------------------------------------------------
 .../ignite/visor/commands/open/VisorOpenCommandSpec.scala      | 6 ++----
 1 file changed, 2 insertions(+), 4 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/ignite/blob/36a6cd01/modules/visor-console/src/test/scala/org/apache/ignite/visor/commands/open/VisorOpenCommandSpec.scala
----------------------------------------------------------------------
diff --git a/modules/visor-console/src/test/scala/org/apache/ignite/visor/commands/open/VisorOpenCommandSpec.scala b/modules/visor-console/src/test/scala/org/apache/ignite/visor/commands/open/VisorOpenCommandSpec.scala
index 4cf2204..f00ff55 100644
--- a/modules/visor-console/src/test/scala/org/apache/ignite/visor/commands/open/VisorOpenCommandSpec.scala
+++ b/modules/visor-console/src/test/scala/org/apache/ignite/visor/commands/open/VisorOpenCommandSpec.scala
@@ -29,10 +29,8 @@ class VisorOpenCommandSpec extends VisorRuntimeBaseSpec(3) {
             visor.mlist()
         }
 
-        it("should print error message when already connected") {
-            intercept[IgniteException] {
-                openVisor()
-            }
+        it("should reopen when already connected") {
+            openVisor()
         }
     }
 }


[3/6] ignite git commit: .NET: Fix MessagingTest flakiness

Posted by vo...@apache.org.
.NET: Fix MessagingTest flakiness


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

Branch: refs/heads/ignite-2.0
Commit: dbcb02aa04b94fef0d498a8c633bc769a7a6fb57
Parents: 84479b5
Author: Pavel Tupitsyn <pt...@apache.org>
Authored: Tue Apr 18 16:01:49 2017 +0300
Committer: Pavel Tupitsyn <pt...@apache.org>
Committed: Tue Apr 18 16:01:49 2017 +0300

----------------------------------------------------------------------
 .../dotnet/Apache.Ignite.Core.Tests/MessagingTest.cs   | 13 ++++++++-----
 1 file changed, 8 insertions(+), 5 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/ignite/blob/dbcb02aa/modules/platforms/dotnet/Apache.Ignite.Core.Tests/MessagingTest.cs
----------------------------------------------------------------------
diff --git a/modules/platforms/dotnet/Apache.Ignite.Core.Tests/MessagingTest.cs b/modules/platforms/dotnet/Apache.Ignite.Core.Tests/MessagingTest.cs
index 8b57c81..a35aeff 100644
--- a/modules/platforms/dotnet/Apache.Ignite.Core.Tests/MessagingTest.cs
+++ b/modules/platforms/dotnet/Apache.Ignite.Core.Tests/MessagingTest.cs
@@ -256,7 +256,7 @@ namespace Apache.Ignite.Core.Tests
 
             messaging.Send(NextMessage());
 
-            Thread.Sleep(MessagingTestHelper.MessageTimeout);
+            Thread.Sleep(MessagingTestHelper.SleepTimeout);
 
             // Check that unsubscription worked properly
             Assert.AreEqual(sharedResult, Thread.VolatileRead(ref sharedReceived));
@@ -392,7 +392,7 @@ namespace Apache.Ignite.Core.Tests
 
             messaging.Send(NextMessage()); // send a message to make filters return false
 
-            Thread.Sleep(MessagingTestHelper.MessageTimeout); // wait for all to unsubscribe
+            Thread.Sleep(MessagingTestHelper.SleepTimeout); // wait for all to unsubscribe
 
             MessagingTestHelper.ListenResult = true;
 
@@ -403,7 +403,7 @@ namespace Apache.Ignite.Core.Tests
             var lastMsg = NextMessage();
             messaging.Send(lastMsg);
 
-            Thread.Sleep(MessagingTestHelper.MessageTimeout);
+            Thread.Sleep(MessagingTestHelper.SleepTimeout);
 
             // Check that unsubscription worked properly
             var sharedResult = MessagingTestHelper.ReceivedMessages.ToArray();
@@ -476,7 +476,7 @@ namespace Apache.Ignite.Core.Tests
 
             (grid ?? _grid1).GetMessaging().SendAll(NextMessage(), topic);
 
-            Thread.Sleep(MessagingTestHelper.MessageTimeout);
+            Thread.Sleep(MessagingTestHelper.SleepTimeout);
 
             MessagingTestHelper.AssertFailures();
         }
@@ -534,7 +534,10 @@ namespace Apache.Ignite.Core.Tests
         public static volatile bool ListenResult = true;
 
         /** */
-        public static readonly TimeSpan MessageTimeout = TimeSpan.FromMilliseconds(700);
+        public static readonly TimeSpan MessageTimeout = TimeSpan.FromMilliseconds(5000);
+
+        /** */
+        public static readonly TimeSpan SleepTimeout = TimeSpan.FromMilliseconds(50);
 
         /// <summary>
         /// Clears received message information.


[2/6] ignite git commit: master - Fixed jetty REST processor testIncorrectPut

Posted by vo...@apache.org.
master - Fixed jetty REST processor testIncorrectPut


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

Branch: refs/heads/ignite-2.0
Commit: 84479b5a28bae8230d9ce79f6d86b2512ef9a658
Parents: 375830d
Author: Dmitriy Govorukhin <dm...@gmail.com>
Authored: Tue Apr 18 15:44:15 2017 +0300
Committer: Alexey Goncharuk <al...@gmail.com>
Committed: Tue Apr 18 15:44:15 2017 +0300

----------------------------------------------------------------------
 .../processors/rest/JettyRestProcessorAbstractSelfTest.java       | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/ignite/blob/84479b5a/modules/clients/src/test/java/org/apache/ignite/internal/processors/rest/JettyRestProcessorAbstractSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/clients/src/test/java/org/apache/ignite/internal/processors/rest/JettyRestProcessorAbstractSelfTest.java b/modules/clients/src/test/java/org/apache/ignite/internal/processors/rest/JettyRestProcessorAbstractSelfTest.java
index 63429a5..e5d9997 100644
--- a/modules/clients/src/test/java/org/apache/ignite/internal/processors/rest/JettyRestProcessorAbstractSelfTest.java
+++ b/modules/clients/src/test/java/org/apache/ignite/internal/processors/rest/JettyRestProcessorAbstractSelfTest.java
@@ -542,7 +542,8 @@ public abstract class JettyRestProcessorAbstractSelfTest extends AbstractRestPro
     public void testIncorrectPut() throws Exception {
         String ret = content(F.asMap("cmd", GridRestCommand.CACHE_PUT.key(), "key", "key0"));
 
-        assertResponseContainsError(ret, "Failed to find mandatory parameter in request: val");
+        assertResponseContainsError(ret,
+            "Failed to handle request: [req=CACHE_PUT, err=Failed to find mandatory parameter in request: val]");
     }
 
     /**


[6/6] ignite git commit: Merge branch 'master' into ignite-2.0

Posted by vo...@apache.org.
Merge branch 'master' into ignite-2.0


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

Branch: refs/heads/ignite-2.0
Commit: 9e7421f261354b28119094b3b53b9490fd817b24
Parents: 8ea9f83 735ce60
Author: devozerov <vo...@gridgain.com>
Authored: Tue Apr 18 17:04:43 2017 +0300
Committer: devozerov <vo...@gridgain.com>
Committed: Tue Apr 18 17:04:43 2017 +0300

----------------------------------------------------------------------
 .../store/cassandra/datasource/DataSource.java  | 50 ++++++++++++++------
 .../cassandra/session/CassandraSessionImpl.java | 23 +++++----
 .../cassandra/session/pool/SessionPool.java     |  6 +--
 .../cassandra/session/pool/SessionWrapper.java  | 15 +++---
 4 files changed, 62 insertions(+), 32 deletions(-)
----------------------------------------------------------------------



[5/6] ignite git commit: IGNITE-4954 - Configurable expiration timeout for Cassandra session. This closes #1785.

Posted by vo...@apache.org.
IGNITE-4954 - Configurable expiration timeout for Cassandra session. This closes #1785.


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

Branch: refs/heads/ignite-2.0
Commit: 735ce60da02ebadc43aaa29cc97d331b8056df36
Parents: 36a6cd0
Author: Valentin Kulichenko <va...@gmail.com>
Authored: Thu Apr 13 11:29:30 2017 +0300
Committer: Andrey V. Mashenkov <an...@gmail.com>
Committed: Tue Apr 18 16:59:50 2017 +0300

----------------------------------------------------------------------
 .../store/cassandra/datasource/DataSource.java  | 50 ++++++++++++++------
 .../cassandra/session/CassandraSessionImpl.java | 23 +++++----
 .../cassandra/session/pool/SessionPool.java     |  6 +--
 .../cassandra/session/pool/SessionWrapper.java  | 15 +++---
 4 files changed, 62 insertions(+), 32 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/ignite/blob/735ce60d/modules/cassandra/store/src/main/java/org/apache/ignite/cache/store/cassandra/datasource/DataSource.java
----------------------------------------------------------------------
diff --git a/modules/cassandra/store/src/main/java/org/apache/ignite/cache/store/cassandra/datasource/DataSource.java b/modules/cassandra/store/src/main/java/org/apache/ignite/cache/store/cassandra/datasource/DataSource.java
index 1ba3c7d..754d902 100644
--- a/modules/cassandra/store/src/main/java/org/apache/ignite/cache/store/cassandra/datasource/DataSource.java
+++ b/modules/cassandra/store/src/main/java/org/apache/ignite/cache/store/cassandra/datasource/DataSource.java
@@ -17,6 +17,16 @@
 
 package org.apache.ignite.cache.store.cassandra.datasource;
 
+import java.io.Externalizable;
+import java.io.IOException;
+import java.io.ObjectInput;
+import java.io.ObjectOutput;
+import java.io.Serializable;
+import java.net.InetAddress;
+import java.net.InetSocketAddress;
+import java.util.LinkedList;
+import java.util.List;
+import java.util.UUID;
 import com.datastax.driver.core.AuthProvider;
 import com.datastax.driver.core.Cluster;
 import com.datastax.driver.core.ConsistencyLevel;
@@ -31,25 +41,13 @@ import com.datastax.driver.core.policies.LoadBalancingPolicy;
 import com.datastax.driver.core.policies.ReconnectionPolicy;
 import com.datastax.driver.core.policies.RetryPolicy;
 import com.datastax.driver.core.policies.SpeculativeExecutionPolicy;
-
-import java.io.Externalizable;
-import java.io.IOException;
-import java.io.ObjectInput;
-import java.io.ObjectOutput;
-import java.io.Serializable;
-import java.net.InetAddress;
-import java.net.InetSocketAddress;
-import java.util.LinkedList;
-import java.util.List;
-import java.util.UUID;
-
 import org.apache.ignite.IgniteException;
 import org.apache.ignite.IgniteLogger;
 import org.apache.ignite.cache.store.cassandra.session.CassandraSession;
 import org.apache.ignite.cache.store.cassandra.session.CassandraSessionImpl;
-import org.apache.ignite.internal.util.typedef.internal.U;
 import org.apache.ignite.internal.util.tostring.GridToStringExclude;
 import org.apache.ignite.internal.util.typedef.internal.S;
+import org.apache.ignite.internal.util.typedef.internal.U;
 
 /**
  * Data source abstraction to specify configuration of the Cassandra session to be used.
@@ -64,6 +62,9 @@ public class DataSource implements Externalizable {
      */
     private static final UUID NULL_OBJECT = UUID.fromString("45ffae47-3193-5910-84a2-048fe65735d9");
 
+    /** Default expiration timeout for Cassandra driver session. */
+    public static final long DFLT_SESSION_EXPIRATION_TIMEOUT = 300000; // 5 minutes.
+
     /** Number of rows to immediately fetch in CQL statement execution. */
     private Integer fetchSize;
 
@@ -141,6 +142,9 @@ public class DataSource implements Externalizable {
     /** Netty options to use for connection. */
     private NettyOptions nettyOptions;
 
+    /** Expiration timeout for Cassandra driver session. */
+    private long sessionExpirationTimeout = DFLT_SESSION_EXPIRATION_TIMEOUT;
+
     /** Cassandra session wrapper instance. */
     private volatile CassandraSession ses;
 
@@ -460,6 +464,23 @@ public class DataSource implements Externalizable {
     }
 
     /**
+     * Sets expiration timeout for Cassandra driver session. Idle sessions that are not
+     * used during this timeout value will be automatically closed and recreated later
+     * on demand.
+     * <p>
+     * If set to {@code 0}, timeout is disabled.
+     * <p>
+     * Default value is {@link #DFLT_SESSION_EXPIRATION_TIMEOUT}.
+     *
+     * @param sessionExpirationTimeout Expiration timeout for Cassandra driver session.
+     */
+    public void setSessionExpirationTimeout(long sessionExpirationTimeout) {
+        this.sessionExpirationTimeout = sessionExpirationTimeout;
+
+        invalidate();
+    }
+
+    /**
      * Creates Cassandra session wrapper if it wasn't created yet and returns it
      *
      * @param log logger
@@ -541,7 +562,8 @@ public class DataSource implements Externalizable {
         if (nettyOptions != null)
             builder = builder.withNettyOptions(nettyOptions);
 
-        return ses = new CassandraSessionImpl(builder, fetchSize, readConsistency, writeConsistency, log);
+        return ses = new CassandraSessionImpl(
+            builder, fetchSize, readConsistency, writeConsistency, sessionExpirationTimeout, log);
     }
 
     /** {@inheritDoc} */

http://git-wip-us.apache.org/repos/asf/ignite/blob/735ce60d/modules/cassandra/store/src/main/java/org/apache/ignite/cache/store/cassandra/session/CassandraSessionImpl.java
----------------------------------------------------------------------
diff --git a/modules/cassandra/store/src/main/java/org/apache/ignite/cache/store/cassandra/session/CassandraSessionImpl.java b/modules/cassandra/store/src/main/java/org/apache/ignite/cache/store/cassandra/session/CassandraSessionImpl.java
index ac11686..19b88c9 100644
--- a/modules/cassandra/store/src/main/java/org/apache/ignite/cache/store/cassandra/session/CassandraSessionImpl.java
+++ b/modules/cassandra/store/src/main/java/org/apache/ignite/cache/store/cassandra/session/CassandraSessionImpl.java
@@ -17,6 +17,13 @@
 
 package org.apache.ignite.cache.store.cassandra.session;
 
+import java.io.IOException;
+import java.util.HashMap;
+import java.util.LinkedList;
+import java.util.List;
+import java.util.Map;
+import java.util.concurrent.atomic.AtomicInteger;
+import javax.cache.Cache;
 import com.datastax.driver.core.BatchStatement;
 import com.datastax.driver.core.BoundStatement;
 import com.datastax.driver.core.Cluster;
@@ -30,13 +37,6 @@ import com.datastax.driver.core.Statement;
 import com.datastax.driver.core.exceptions.AlreadyExistsException;
 import com.datastax.driver.core.exceptions.InvalidQueryException;
 import com.datastax.driver.core.querybuilder.Batch;
-import java.io.IOException;
-import java.util.HashMap;
-import java.util.LinkedList;
-import java.util.List;
-import java.util.Map;
-import java.util.concurrent.atomic.AtomicInteger;
-import javax.cache.Cache;
 import org.apache.ignite.IgniteException;
 import org.apache.ignite.IgniteLogger;
 import org.apache.ignite.cache.store.cassandra.common.CassandraHelper;
@@ -83,6 +83,9 @@ public class CassandraSessionImpl implements CassandraSession {
     /** Consistency level for Cassandra WRITE operations (insert/update/delete). */
     private ConsistencyLevel writeConsistency;
 
+    /** Expiration timeout. */
+    private long expirationTimeout;
+
     /** Logger. */
     private IgniteLogger log;
 
@@ -102,11 +105,12 @@ public class CassandraSessionImpl implements CassandraSession {
      * @param log Logger.
      */
     public CassandraSessionImpl(Cluster.Builder builder, Integer fetchSize, ConsistencyLevel readConsistency,
-        ConsistencyLevel writeConsistency, IgniteLogger log) {
+        ConsistencyLevel writeConsistency, long expirationTimeout, IgniteLogger log) {
         this.builder = builder;
         this.fetchSize = fetchSize;
         this.readConsistency = readConsistency;
         this.writeConsistency = writeConsistency;
+        this.expirationTimeout = expirationTimeout;
         this.log = log;
     }
 
@@ -504,7 +508,8 @@ public class CassandraSessionImpl implements CassandraSession {
     /** {@inheritDoc} */
     @Override public synchronized void close() throws IOException {
         if (decrementSessionRefs() == 0 && ses != null) {
-            SessionPool.put(this, ses);
+            SessionPool.put(this, ses, expirationTimeout);
+
             ses = null;
         }
     }

http://git-wip-us.apache.org/repos/asf/ignite/blob/735ce60d/modules/cassandra/store/src/main/java/org/apache/ignite/cache/store/cassandra/session/pool/SessionPool.java
----------------------------------------------------------------------
diff --git a/modules/cassandra/store/src/main/java/org/apache/ignite/cache/store/cassandra/session/pool/SessionPool.java b/modules/cassandra/store/src/main/java/org/apache/ignite/cache/store/cassandra/session/pool/SessionPool.java
index 95938bd..4de8516 100644
--- a/modules/cassandra/store/src/main/java/org/apache/ignite/cache/store/cassandra/session/pool/SessionPool.java
+++ b/modules/cassandra/store/src/main/java/org/apache/ignite/cache/store/cassandra/session/pool/SessionPool.java
@@ -17,13 +17,13 @@
 
 package org.apache.ignite.cache.store.cassandra.session.pool;
 
-import com.datastax.driver.core.Session;
 import java.lang.Thread.State;
 import java.util.Collection;
 import java.util.HashMap;
 import java.util.LinkedList;
 import java.util.List;
 import java.util.Map;
+import com.datastax.driver.core.Session;
 import org.apache.ignite.cache.store.cassandra.session.CassandraSessionImpl;
 
 /**
@@ -98,14 +98,14 @@ public class SessionPool {
      * @param cassandraSes Session wrapper.
      * @param driverSes Driver session.
      */
-    public static void put(CassandraSessionImpl cassandraSes, Session driverSes) {
+    public static void put(CassandraSessionImpl cassandraSes, Session driverSes, long expirationTimeout) {
         if (cassandraSes == null || driverSes == null)
             return;
 
         SessionWrapper old;
 
         synchronized (sessions) {
-            old = sessions.put(cassandraSes, new SessionWrapper(driverSes));
+            old = sessions.put(cassandraSes, new SessionWrapper(driverSes, expirationTimeout));
 
             if (monitorSingleton == null || State.TERMINATED.equals(monitorSingleton.getState())) {
                 monitorSingleton = new SessionMonitor();

http://git-wip-us.apache.org/repos/asf/ignite/blob/735ce60d/modules/cassandra/store/src/main/java/org/apache/ignite/cache/store/cassandra/session/pool/SessionWrapper.java
----------------------------------------------------------------------
diff --git a/modules/cassandra/store/src/main/java/org/apache/ignite/cache/store/cassandra/session/pool/SessionWrapper.java b/modules/cassandra/store/src/main/java/org/apache/ignite/cache/store/cassandra/session/pool/SessionWrapper.java
index 7c5722b..68b9dd4 100644
--- a/modules/cassandra/store/src/main/java/org/apache/ignite/cache/store/cassandra/session/pool/SessionWrapper.java
+++ b/modules/cassandra/store/src/main/java/org/apache/ignite/cache/store/cassandra/session/pool/SessionWrapper.java
@@ -24,12 +24,12 @@ import org.apache.ignite.cache.store.cassandra.common.CassandraHelper;
  * Wrapper for Cassandra driver session, responsible for monitoring session expiration and its closing.
  */
 public class SessionWrapper {
-    /** Expiration timeout for Cassandra driver session. */
-    public static final long DFLT_EXPIRATION_TIMEOUT = 300000;  // 5 minutes.
-
     /** Cassandra driver session. */
     private Session ses;
 
+    /** Expiration timeout. */
+    private long expirationTimeout;
+
     /** Wrapper creation time.  */
     private long time;
 
@@ -38,9 +38,11 @@ public class SessionWrapper {
      *
      * @param ses Cassandra driver session.
      */
-    public SessionWrapper(Session ses) {
+    public SessionWrapper(Session ses, long expirationTimeout) {
         this.ses = ses;
-        this.time = System.currentTimeMillis();
+        this.expirationTimeout = expirationTimeout;
+
+        time = System.currentTimeMillis();
     }
 
     /**
@@ -49,7 +51,7 @@ public class SessionWrapper {
      * @return true if session expired.
      */
     public boolean expired() {
-        return System.currentTimeMillis() - time > DFLT_EXPIRATION_TIMEOUT;
+        return expirationTimeout > 0 && System.currentTimeMillis() - time > expirationTimeout;
     }
 
     /**
@@ -66,6 +68,7 @@ public class SessionWrapper {
      */
     public void release() {
         CassandraHelper.closeSession(ses);
+
         ses = null;
     }
 }