You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ignite.apache.org by ak...@apache.org on 2015/03/02 04:55:01 UTC
[01/14] incubator-ignite git commit: IGNITE-11 (Discovery takes a lot
of time on Windows if DescoverySpi contains several hosts and several ports
per host)
Repository: incubator-ignite
Updated Branches:
refs/heads/ignite-187 f34d34912 -> 40fc67aa5
IGNITE-11 (Discovery takes a lot of time on Windows if DescoverySpi contains several hosts and several ports per host)
Project: http://git-wip-us.apache.org/repos/asf/incubator-ignite/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-ignite/commit/a9ecd99f
Tree: http://git-wip-us.apache.org/repos/asf/incubator-ignite/tree/a9ecd99f
Diff: http://git-wip-us.apache.org/repos/asf/incubator-ignite/diff/a9ecd99f
Branch: refs/heads/ignite-187
Commit: a9ecd99f1b0713890c16e42cd53c264167959e0f
Parents: c93d86f
Author: sevdokimov <se...@gridgain.com>
Authored: Thu Feb 19 16:30:41 2015 +0300
Committer: sevdokimov <se...@gridgain.com>
Committed: Thu Feb 19 16:30:41 2015 +0300
----------------------------------------------------------------------
.../spi/discovery/tcp/TcpDiscoverySpi.java | 138 +++++++++++--------
.../discovery/tcp/TcpDiscoverySpiAdapter.java | 110 +++++++++++++++
2 files changed, 193 insertions(+), 55 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/a9ecd99f/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/TcpDiscoverySpi.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/TcpDiscoverySpi.java b/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/TcpDiscoverySpi.java
index aef8259..3e9c120 100644
--- a/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/TcpDiscoverySpi.java
+++ b/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/TcpDiscoverySpi.java
@@ -1395,65 +1395,83 @@ public class TcpDiscoverySpi extends TcpDiscoverySpiAdapter implements TcpDiscov
return false;
boolean retry = false;
- IgniteCheckedException errs = null;
+ Collection<Exception> errs = new ArrayList<>();
- for (InetSocketAddress addr : addrs) {
- try {
- Integer res = sendMessageDirectly(joinReq, addr);
+ SocketMultiConnector multiConnector = new SocketMultiConnector(addrs, 2);
- assert res != null;
+ try {
+ GridTuple3<InetSocketAddress, Socket, Exception> tuple;
- noResAddrs.remove(addr);
+ while ((tuple = multiConnector.next()) != null) {
+ InetSocketAddress addr = tuple.get1();
+ Socket sock = tuple.get2();
+ Exception ex = tuple.get3();
- // Address is responsive, reset period start.
- noResStart = 0;
+ if (ex == null) {
+ assert sock != null;
- switch (res) {
- case RES_WAIT:
- // Concurrent startup, try sending join request again or wait if no success.
- retry = true;
+ try {
+ Integer res = sendMessageDirectly(joinReq, addr, sock);
- break;
- case RES_OK:
- if (log.isDebugEnabled())
- log.debug("Join request message has been sent to address [addr=" + addr +
- ", req=" + joinReq + ']');
+ assert res != null;
- // Join request sending succeeded, wait for response from topology.
- return true;
+ noResAddrs.remove(addr);
- default:
- // Concurrent startup, try next node.
- if (res == RES_CONTINUE_JOIN) {
- if (!fromAddrs.contains(addr))
+ // Address is responsive, reset period start.
+ noResStart = 0;
+
+ switch (res) {
+ case RES_WAIT:
+ // Concurrent startup, try sending join request again or wait if no success.
retry = true;
- }
- else {
- if (log.isDebugEnabled())
- log.debug("Unexpected response to join request: " + res);
- retry = true;
- }
+ break;
+ case RES_OK:
+ if (log.isDebugEnabled())
+ log.debug("Join request message has been sent to address [addr=" + addr +
+ ", req=" + joinReq + ']');
- break;
- }
- }
- catch (IgniteSpiException e) {
- if (errs == null)
- errs = new IgniteCheckedException("Multiple connection attempts failed.");
+ // Join request sending succeeded, wait for response from topology.
+ return true;
- errs.addSuppressed(e);
+ default:
+ // Concurrent startup, try next node.
+ if (res == RES_CONTINUE_JOIN) {
+ if (!fromAddrs.contains(addr))
+ retry = true;
+ }
+ else {
+ if (log.isDebugEnabled())
+ log.debug("Unexpected response to join request: " + res);
- if (log.isDebugEnabled()) {
- IOException ioe = X.cause(e, IOException.class);
+ retry = true;
+ }
- log.debug("Failed to send join request message [addr=" + addr +
- ", msg=" + ioe != null ? ioe.getMessage() : e.getMessage() + ']');
+ break;
+ }
+ }
+ catch (IgniteSpiException e) {
+ ex = e;
+ }
}
- noResAddrs.add(addr);
+ if (ex != null) {
+ errs.add(ex);
+
+ if (log.isDebugEnabled()) {
+ IOException ioe = X.cause(ex, IOException.class);
+
+ log.debug("Failed to send join request message [addr=" + addr +
+ ", msg=" + ioe != null ? ioe.getMessage() : ex.getMessage() + ']');
+ }
+
+ noResAddrs.add(addr);
+ }
}
}
+ finally {
+ multiConnector.close();
+ }
if (retry) {
if (log.isDebugEnabled())
@@ -1467,7 +1485,16 @@ public class TcpDiscoverySpi extends TcpDiscoverySpiAdapter implements TcpDiscov
}
}
else if (!ipFinder.isShared() && !ipFinderHasLocAddr) {
- if (errs != null && X.hasCause(errs, ConnectException.class))
+ IgniteCheckedException e = null;
+
+ if (!errs.isEmpty()) {
+ e = new IgniteCheckedException("Multiple connection attempts failed.");
+
+ for (Exception err : errs)
+ e.addSuppressed(err);
+ }
+
+ if (e != null && X.hasCause(e, ConnectException.class))
LT.warn(log, null, "Failed to connect to any address from IP finder " +
"(make sure IP finder addresses are correct and firewalls are disabled on all host machines): " +
addrs);
@@ -1480,14 +1507,14 @@ public class TcpDiscoverySpi extends TcpDiscoverySpiAdapter implements TcpDiscov
"Failed to connect to any address from IP finder within join timeout " +
"(make sure IP finder addresses are correct, and operating system firewalls are disabled " +
"on all host machines, or consider increasing 'joinTimeout' configuration property): " +
- addrs, errs);
+ addrs, e);
}
try {
U.sleep(2000);
}
- catch (IgniteInterruptedCheckedException e) {
- throw new IgniteSpiException("Thread has been interrupted.", e);
+ catch (IgniteInterruptedCheckedException ex) {
+ throw new IgniteSpiException("Thread has been interrupted.", ex);
}
}
else
@@ -1503,17 +1530,15 @@ public class TcpDiscoverySpi extends TcpDiscoverySpiAdapter implements TcpDiscov
* @param msg Message to send.
* @param addr Address to send message to.
* @return Response read from the recipient or {@code null} if no response is supposed.
- * @throws org.apache.ignite.spi.IgniteSpiException If an error occurs.
+ * @throws IgniteSpiException If an error occurs.
*/
- @Nullable private Integer sendMessageDirectly(TcpDiscoveryAbstractMessage msg, InetSocketAddress addr)
+ @Nullable private Integer sendMessageDirectly(TcpDiscoveryAbstractMessage msg, InetSocketAddress addr, Socket sock)
throws IgniteSpiException {
assert msg != null;
assert addr != null;
Collection<Throwable> errs = null;
- Socket sock = null;
-
long ackTimeout0 = ackTimeout;
int connectAttempts = 1;
@@ -1532,7 +1557,8 @@ public class TcpDiscoverySpi extends TcpDiscoverySpiAdapter implements TcpDiscov
try {
long tstamp = U.currentTimeMillis();
- sock = openSocket(addr);
+ if (sock == null)
+ sock = openSocket(addr);
openSock = true;
@@ -1612,6 +1638,8 @@ public class TcpDiscoverySpi extends TcpDiscoverySpiAdapter implements TcpDiscov
}
finally {
U.closeQuiet(sock);
+
+ sock = null;
}
}
@@ -1634,7 +1662,7 @@ public class TcpDiscoverySpi extends TcpDiscoverySpiAdapter implements TcpDiscov
* Marshalls credentials with discovery SPI marshaller (will replace attribute value).
*
* @param node Node to marshall credentials for.
- * @throws org.apache.ignite.spi.IgniteSpiException If marshalling failed.
+ * @throws IgniteSpiException If marshalling failed.
*/
private void marshalCredentials(TcpDiscoveryNode node) throws IgniteSpiException {
try {
@@ -1656,7 +1684,7 @@ public class TcpDiscoverySpi extends TcpDiscoverySpiAdapter implements TcpDiscov
*
* @param node Node to unmarshall credentials for.
* @return Security credentials.
- * @throws org.apache.ignite.spi.IgniteSpiException If unmarshal fails.
+ * @throws IgniteSpiException If unmarshal fails.
*/
private GridSecurityCredentials unmarshalCredentials(TcpDiscoveryNode node) throws IgniteSpiException {
try {
@@ -3337,7 +3365,7 @@ public class TcpDiscoverySpi extends TcpDiscoverySpiAdapter implements TcpDiscov
*
* @param node Node to send message to.
* @param msg Message.
- * @throws org.apache.ignite.spi.IgniteSpiException Last failure if all attempts failed.
+ * @throws IgniteSpiException Last failure if all attempts failed.
*/
private void trySendMessageDirectly(TcpDiscoveryNode node, TcpDiscoveryAbstractMessage msg)
throws IgniteSpiException {
@@ -3358,7 +3386,7 @@ public class TcpDiscoverySpi extends TcpDiscoverySpiAdapter implements TcpDiscov
for (InetSocketAddress addr : getNodeAddresses(node, U.sameMacs(locNode, node))) {
try {
- sendMessageDirectly(msg, addr);
+ sendMessageDirectly(msg, addr, null);
ex = null;
@@ -4385,7 +4413,7 @@ public class TcpDiscoverySpi extends TcpDiscoverySpiAdapter implements TcpDiscov
/**
* Constructor.
*
- * @throws org.apache.ignite.spi.IgniteSpiException In case of error.
+ * @throws IgniteSpiException In case of error.
*/
TcpServer() throws IgniteSpiException {
super(ignite.name(), "tcp-disco-srvr", log);
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/a9ecd99f/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/TcpDiscoverySpiAdapter.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/TcpDiscoverySpiAdapter.java b/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/TcpDiscoverySpiAdapter.java
index 52156a4..87ee2fe 100644
--- a/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/TcpDiscoverySpiAdapter.java
+++ b/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/TcpDiscoverySpiAdapter.java
@@ -22,6 +22,7 @@ import org.apache.ignite.cluster.*;
import org.apache.ignite.internal.*;
import org.apache.ignite.internal.util.*;
import org.apache.ignite.internal.util.io.*;
+import org.apache.ignite.internal.util.lang.*;
import org.apache.ignite.internal.util.typedef.*;
import org.apache.ignite.internal.util.typedef.internal.*;
import org.apache.ignite.lang.*;
@@ -1005,4 +1006,113 @@ abstract class TcpDiscoverySpiAdapter extends IgniteSpiAdapter implements Discov
TcpDiscoverySpiAdapter.this.writeToSocket(sock, msg, bout);
}
}
+
+ /**
+ *
+ */
+ protected class SocketMultiConnector {
+ /** */
+ private int connInProgress;
+
+ /** */
+ private boolean closed;
+
+ /** */
+ private final ExecutorService executor;
+
+ /** */
+ private final Queue<GridTuple3<InetSocketAddress, Socket, Exception>> queue = new LinkedList<>();
+
+ /**
+ * @param addrs Addresses.
+ * @param retryCnt Retry count.
+ */
+ public SocketMultiConnector(Collection<InetSocketAddress> addrs, final int retryCnt) {
+ connInProgress = addrs.size();
+
+ executor = new ThreadPoolExecutor(0, 10, 1L, TimeUnit.MILLISECONDS,
+ new SynchronousQueue<Runnable>());
+
+ for (final InetSocketAddress addr : addrs) {
+ executor.execute(new Runnable() {
+ @Override public void run() {
+ Exception ex = null;
+ Socket sock = null;
+
+ for (int i = 0; i < retryCnt; i++) {
+ synchronized (SocketMultiConnector.this) {
+ if (closed)
+ return;
+ }
+
+ try {
+ sock = openSocket(addr);
+
+ break;
+ }
+ catch (Exception e) {
+ ex = e;
+ }
+ }
+
+ synchronized (SocketMultiConnector.this) {
+ if (closed)
+ U.closeQuiet(sock);
+ else
+ queue.add(new GridTuple3<>(addr, sock, ex));
+
+ connInProgress--;
+
+ SocketMultiConnector.this.notifyAll();
+ }
+ }
+ });
+ }
+ }
+
+ /**
+ *
+ */
+ @Nullable public synchronized GridTuple3<InetSocketAddress, Socket, Exception> next() {
+ try {
+ do {
+ if (closed)
+ return null;
+
+ GridTuple3<InetSocketAddress, Socket, Exception> res = queue.poll();
+
+ if (res != null)
+ return res;
+
+ if (connInProgress == 0)
+ return null;
+
+ wait();
+ }
+ while (true);
+ }
+ catch (InterruptedException e) {
+ throw new IgniteSpiException("Thread has been interrupted.", e);
+ }
+ }
+
+ /**
+ *
+ */
+ public void close() {
+ synchronized (this) {
+ if (closed)
+ return;
+
+ closed = true;
+
+ notifyAll();
+ }
+
+ executor.shutdown();
+
+ for (GridTuple3<InetSocketAddress, Socket, Exception> tuple : queue)
+ U.closeQuiet(tuple.get2());
+ }
+ }
}
[02/14] incubator-ignite git commit: # IGNITE-11 Use
Executors.newFixedThreadPool() to create executor service.
Posted by ak...@apache.org.
# IGNITE-11 Use Executors.newFixedThreadPool() to create executor service.
Project: http://git-wip-us.apache.org/repos/asf/incubator-ignite/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-ignite/commit/e7171b06
Tree: http://git-wip-us.apache.org/repos/asf/incubator-ignite/tree/e7171b06
Diff: http://git-wip-us.apache.org/repos/asf/incubator-ignite/diff/e7171b06
Branch: refs/heads/ignite-187
Commit: e7171b064457e50ce141261f0946326f4165f565
Parents: a9ecd99
Author: sevdokimov <se...@jetbrains.com>
Authored: Sun Feb 22 13:10:25 2015 +0300
Committer: sevdokimov <se...@jetbrains.com>
Committed: Sun Feb 22 13:10:25 2015 +0300
----------------------------------------------------------------------
.../apache/ignite/spi/discovery/tcp/TcpDiscoverySpiAdapter.java | 3 +--
1 file changed, 1 insertion(+), 2 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/e7171b06/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/TcpDiscoverySpiAdapter.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/TcpDiscoverySpiAdapter.java b/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/TcpDiscoverySpiAdapter.java
index 87ee2fe..6bd50d6 100644
--- a/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/TcpDiscoverySpiAdapter.java
+++ b/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/TcpDiscoverySpiAdapter.java
@@ -1030,8 +1030,7 @@ abstract class TcpDiscoverySpiAdapter extends IgniteSpiAdapter implements Discov
public SocketMultiConnector(Collection<InetSocketAddress> addrs, final int retryCnt) {
connInProgress = addrs.size();
- executor = new ThreadPoolExecutor(0, 10, 1L, TimeUnit.MILLISECONDS,
- new SynchronousQueue<Runnable>());
+ executor = Executors.newFixedThreadPool(Math.min(10, addrs.size()));
for (final InetSocketAddress addr : addrs) {
executor.execute(new Runnable() {
[09/14] incubator-ignite git commit: # ignite-11 Fix issues found on
review.
Posted by ak...@apache.org.
# ignite-11 Fix issues found on review.
Project: http://git-wip-us.apache.org/repos/asf/incubator-ignite/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-ignite/commit/6130f7e5
Tree: http://git-wip-us.apache.org/repos/asf/incubator-ignite/tree/6130f7e5
Diff: http://git-wip-us.apache.org/repos/asf/incubator-ignite/diff/6130f7e5
Branch: refs/heads/ignite-187
Commit: 6130f7e52214ab0b0d0876d8be0c141e9dc1a2df
Parents: 2999d20
Author: sevdokimov <se...@gridgain.com>
Authored: Thu Feb 26 18:11:50 2015 +0300
Committer: sevdokimov <se...@gridgain.com>
Committed: Thu Feb 26 18:11:50 2015 +0300
----------------------------------------------------------------------
.../spi/discovery/tcp/TcpDiscoverySpi.java | 7 +---
.../discovery/tcp/TcpDiscoverySpiAdapter.java | 42 +++++++++++++-------
2 files changed, 29 insertions(+), 20 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/6130f7e5/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/TcpDiscoverySpi.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/TcpDiscoverySpi.java b/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/TcpDiscoverySpi.java
index 3fc52b1..df39d6b 100644
--- a/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/TcpDiscoverySpi.java
+++ b/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/TcpDiscoverySpi.java
@@ -1401,9 +1401,7 @@ public class TcpDiscoverySpi extends TcpDiscoverySpiAdapter implements TcpDiscov
boolean retry = false;
Collection<Exception> errs = new ArrayList<>();
- SocketMultiConnector multiConnector = new SocketMultiConnector(addrs, 2);
-
- try {
+ try (SocketMultiConnector multiConnector = new SocketMultiConnector(addrs, 2)) {
GridTuple3<InetSocketAddress, Socket, Exception> tuple;
while ((tuple = multiConnector.next()) != null) {
@@ -1476,9 +1474,6 @@ public class TcpDiscoverySpi extends TcpDiscoverySpiAdapter implements TcpDiscov
}
}
}
- finally {
- multiConnector.close();
- }
if (retry) {
if (log.isDebugEnabled())
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/6130f7e5/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/TcpDiscoverySpiAdapter.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/TcpDiscoverySpiAdapter.java b/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/TcpDiscoverySpiAdapter.java
index 80b793a..1d9559e 100644
--- a/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/TcpDiscoverySpiAdapter.java
+++ b/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/TcpDiscoverySpiAdapter.java
@@ -1013,7 +1013,7 @@ abstract class TcpDiscoverySpiAdapter extends IgniteSpiAdapter implements Discov
/**
*
*/
- protected class SocketMultiConnector {
+ protected class SocketMultiConnector implements AutoCloseable {
/** */
private int connInProgress;
@@ -1068,11 +1068,15 @@ abstract class TcpDiscoverySpiAdapter extends IgniteSpiAdapter implements Discov
return null;
try {
+ Future<GridTuple3<InetSocketAddress, Socket, Exception>> fut = completionSrvc.take();
+
connInProgress--;
- return completionSrvc.take().get();
+ return fut.get();
}
catch (InterruptedException e) {
+ Thread.currentThread().interrupt();
+
throw new IgniteSpiException("Thread has been interrupted.", e);
}
catch (ExecutionException e) {
@@ -1080,33 +1084,43 @@ abstract class TcpDiscoverySpiAdapter extends IgniteSpiAdapter implements Discov
}
}
- /**
- *
- */
- public void close() {
- executor.shutdown();
+ /** {@inheritDoc} */
+ @Override public void close() {
+ List<Runnable> unstartedTasks = executor.shutdownNow();
+
+ connInProgress -= unstartedTasks.size();
if (connInProgress > 0) {
- new Thread(new Runnable() {
+ Thread thread = new Thread(new Runnable() {
@Override public void run() {
try {
- for (int i = 0; i < connInProgress; i++) {
+ executor.awaitTermination(5, TimeUnit.MINUTES);
+
+ Future<GridTuple3<InetSocketAddress, Socket, Exception>> fut;
+
+ while ((fut = completionSrvc.poll()) != null) {
try {
- GridTuple3<InetSocketAddress, Socket, Exception> take = completionSrvc.take().get();
+ GridTuple3<InetSocketAddress, Socket, Exception> tuple3 = fut.get();
- if (take != null)
- IgniteUtils.closeQuiet(take.get2());
+ if (tuple3 != null)
+ IgniteUtils.closeQuiet(tuple3.get2());
}
- catch (ExecutionException ignored) {
+ catch (ExecutionException ignore) {
}
}
}
catch (InterruptedException e) {
+ Thread.currentThread().interrupt();
+
throw new RuntimeException(e);
}
}
- }).start();
+ });
+
+ thread.setDaemon(true);
+
+ thread.start();
}
}
}
[12/14] incubator-ignite git commit: # sprint-2 - javadoc fixes.
Posted by ak...@apache.org.
# sprint-2 - javadoc fixes.
Project: http://git-wip-us.apache.org/repos/asf/incubator-ignite/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-ignite/commit/036bd715
Tree: http://git-wip-us.apache.org/repos/asf/incubator-ignite/tree/036bd715
Diff: http://git-wip-us.apache.org/repos/asf/incubator-ignite/diff/036bd715
Branch: refs/heads/ignite-187
Commit: 036bd71537630b082b747f518172da6ebfe11105
Parents: 3a77acf
Author: Dmitiry Setrakyan <ds...@gridgain.com>
Authored: Sat Feb 28 19:05:42 2015 -0800
Committer: Dmitiry Setrakyan <ds...@gridgain.com>
Committed: Sat Feb 28 19:05:42 2015 -0800
----------------------------------------------------------------------
.../src/main/java/org/apache/ignite/cache/store/CacheStore.java | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/036bd715/modules/core/src/main/java/org/apache/ignite/cache/store/CacheStore.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/cache/store/CacheStore.java b/modules/core/src/main/java/org/apache/ignite/cache/store/CacheStore.java
index 848df39..eefcfb3 100644
--- a/modules/core/src/main/java/org/apache/ignite/cache/store/CacheStore.java
+++ b/modules/core/src/main/java/org/apache/ignite/cache/store/CacheStore.java
@@ -119,7 +119,7 @@ public interface CacheStore<K, V> extends CacheLoader<K, V>, CacheWriter<K, V> {
/**
* Loads all values from underlying persistent storage. Note that keys are not
* passed, so it is up to implementation to figure out what to load. This method
- * is called whenever {@link org.apache.ignite.cache.GridCache#loadCache(org.apache.ignite.lang.IgniteBiPredicate, long, Object...)}
+ * is called whenever {@link org.apache.ignite.IgniteCache#loadCache(IgniteBiPredicate, Object...)}
* method is invoked which is usually to preload the cache from persistent storage.
* <p>
* This method is optional, and cache implementation does not depend on this
@@ -132,7 +132,7 @@ public interface CacheStore<K, V> extends CacheLoader<K, V>, CacheWriter<K, V> {
*
* @param clo Closure for loaded values.
* @param args Arguments passes into
- * {@link org.apache.ignite.cache.GridCache#loadCache(org.apache.ignite.lang.IgniteBiPredicate, long, Object...)} method.
+ * {@link org.apache.ignite.IgniteCache#loadCache(IgniteBiPredicate, Object...)} method.
* @throws CacheLoaderException If loading failed.
*/
public void loadCache(IgniteBiInClosure<K, V> clo, @Nullable Object... args) throws CacheLoaderException;
[11/14] incubator-ignite git commit: # sprint-2 - fixing comments.
Posted by ak...@apache.org.
# sprint-2 - fixing comments.
Project: http://git-wip-us.apache.org/repos/asf/incubator-ignite/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-ignite/commit/3a77acf7
Tree: http://git-wip-us.apache.org/repos/asf/incubator-ignite/tree/3a77acf7
Diff: http://git-wip-us.apache.org/repos/asf/incubator-ignite/diff/3a77acf7
Branch: refs/heads/ignite-187
Commit: 3a77acf759cd30bbb7bdcb51ab8e1bcecb273639
Parents: 16105ec
Author: Dmitiry Setrakyan <ds...@gridgain.com>
Authored: Sat Feb 28 09:49:15 2015 -0800
Committer: Dmitiry Setrakyan <ds...@gridgain.com>
Committed: Sat Feb 28 09:49:15 2015 -0800
----------------------------------------------------------------------
.../ignite/examples/datagrid/store/jdbc/CacheJdbcPersonStore.java | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/3a77acf7/examples/src/main/java/org/apache/ignite/examples/datagrid/store/jdbc/CacheJdbcPersonStore.java
----------------------------------------------------------------------
diff --git a/examples/src/main/java/org/apache/ignite/examples/datagrid/store/jdbc/CacheJdbcPersonStore.java b/examples/src/main/java/org/apache/ignite/examples/datagrid/store/jdbc/CacheJdbcPersonStore.java
index 0473280..55ba1a7 100644
--- a/examples/src/main/java/org/apache/ignite/examples/datagrid/store/jdbc/CacheJdbcPersonStore.java
+++ b/examples/src/main/java/org/apache/ignite/examples/datagrid/store/jdbc/CacheJdbcPersonStore.java
@@ -131,7 +131,8 @@ public class CacheJdbcPersonStore extends CacheStoreAdapter<Long, Person> {
int updated;
- // Try update first.
+ // Try update first. If it does not work, then try insert.
+ // Some databases would allow these to be done in one 'upsert' operation.
try (PreparedStatement st = conn.prepareStatement(
"update PERSONS set firstName=?, lastName=? where id=?")) {
st.setString(1, val.getFirstName());
[14/14] incubator-ignite git commit: Merge branches 'ignite-187' and
'sprint-2' of https://git-wip-us.apache.org/repos/asf/incubator-ignite into
ignite-187
Posted by ak...@apache.org.
Merge branches 'ignite-187' and 'sprint-2' of https://git-wip-us.apache.org/repos/asf/incubator-ignite into ignite-187
Project: http://git-wip-us.apache.org/repos/asf/incubator-ignite/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-ignite/commit/40fc67aa
Tree: http://git-wip-us.apache.org/repos/asf/incubator-ignite/tree/40fc67aa
Diff: http://git-wip-us.apache.org/repos/asf/incubator-ignite/diff/40fc67aa
Branch: refs/heads/ignite-187
Commit: 40fc67aa5032bd8e07fa323475e5b0336bced6f9
Parents: f34d349 c9f46c1
Author: AKuznetsov <ak...@gridgain.com>
Authored: Mon Mar 2 10:54:39 2015 +0700
Committer: AKuznetsov <ak...@gridgain.com>
Committed: Mon Mar 2 10:54:39 2015 +0700
----------------------------------------------------------------------
.../store/jdbc/CacheJdbcPersonStore.java | 111 ++++++---------
.../apache/ignite/cache/store/CacheStore.java | 4 +-
.../ignite/cache/store/CacheStoreSession.java | 9 ++
.../processors/cache/GridCacheStoreManager.java | 6 +-
.../ignite/internal/util/IgniteUtils.java | 90 ++++++++++--
.../spi/discovery/tcp/TcpDiscoverySpi.java | 137 +++++++++++--------
.../discovery/tcp/TcpDiscoverySpiAdapter.java | 116 ++++++++++++++++
.../junits/cache/TestCacheSession.java | 5 +
.../cache/TestThreadLocalCacheSession.java | 5 +
9 files changed, 340 insertions(+), 143 deletions(-)
----------------------------------------------------------------------
[06/14] incubator-ignite git commit: Remove temporary code.
Posted by ak...@apache.org.
Remove temporary code.
Project: http://git-wip-us.apache.org/repos/asf/incubator-ignite/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-ignite/commit/de75adb2
Tree: http://git-wip-us.apache.org/repos/asf/incubator-ignite/tree/de75adb2
Diff: http://git-wip-us.apache.org/repos/asf/incubator-ignite/diff/de75adb2
Branch: refs/heads/ignite-187
Commit: de75adb288fc246e710528b42fdf78d7d1b8cdf3
Parents: 153cbee
Author: sevdokimov <se...@gridgain.com>
Authored: Thu Feb 26 17:02:30 2015 +0300
Committer: sevdokimov <se...@gridgain.com>
Committed: Thu Feb 26 17:02:30 2015 +0300
----------------------------------------------------------------------
examples/config/example-compute.xml | 2 --
1 file changed, 2 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/de75adb2/examples/config/example-compute.xml
----------------------------------------------------------------------
diff --git a/examples/config/example-compute.xml b/examples/config/example-compute.xml
index 303b4eb..c532e17 100644
--- a/examples/config/example-compute.xml
+++ b/examples/config/example-compute.xml
@@ -32,8 +32,6 @@
<!-- Set to true to enable distributed class loading for examples, default is false. -->
<property name="peerClassLoadingEnabled" value="true"/>
- <property name="localHost" value="127.0.0.1" />
-
<property name="marshaller">
<bean class="org.apache.ignite.marshaller.optimized.OptimizedMarshaller">
<!-- Set to false to allow non-serializable objects in examples, default is true. -->
[07/14] incubator-ignite git commit: ignite-11 use
ExecutorCompletionService.
Posted by ak...@apache.org.
ignite-11 use ExecutorCompletionService.
Project: http://git-wip-us.apache.org/repos/asf/incubator-ignite/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-ignite/commit/8b9e7f8f
Tree: http://git-wip-us.apache.org/repos/asf/incubator-ignite/tree/8b9e7f8f
Diff: http://git-wip-us.apache.org/repos/asf/incubator-ignite/diff/8b9e7f8f
Branch: refs/heads/ignite-187
Commit: 8b9e7f8f5ae205da389411f5aa763d329e3ea6bd
Parents: de75adb
Author: sevdokimov <se...@gridgain.com>
Authored: Thu Feb 26 17:23:52 2015 +0300
Committer: sevdokimov <se...@gridgain.com>
Committed: Thu Feb 26 17:23:52 2015 +0300
----------------------------------------------------------------------
.../ignite/internal/util/IgniteUtils.java | 1 +
.../discovery/tcp/TcpDiscoverySpiAdapter.java | 85 +++++++++-----------
2 files changed, 40 insertions(+), 46 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/8b9e7f8f/modules/core/src/main/java/org/apache/ignite/internal/util/IgniteUtils.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/util/IgniteUtils.java b/modules/core/src/main/java/org/apache/ignite/internal/util/IgniteUtils.java
index a8b6991..b24743a 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/util/IgniteUtils.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/util/IgniteUtils.java
@@ -298,6 +298,7 @@ public abstract class IgniteUtils {
private static final Map<Class<? extends IgniteCheckedException>, C1<IgniteCheckedException, IgniteException>>
exceptionConverters;
+ /** */
private volatile static IgniteBiTuple<Collection<String>, Collection<String>> cachedLocalAddr;
/**
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/8b9e7f8f/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/TcpDiscoverySpiAdapter.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/TcpDiscoverySpiAdapter.java b/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/TcpDiscoverySpiAdapter.java
index 322b954..80b793a 100644
--- a/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/TcpDiscoverySpiAdapter.java
+++ b/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/TcpDiscoverySpiAdapter.java
@@ -1018,13 +1018,10 @@ abstract class TcpDiscoverySpiAdapter extends IgniteSpiAdapter implements Discov
private int connInProgress;
/** */
- private boolean closed;
-
- /** */
private final ExecutorService executor;
/** */
- private final Queue<GridTuple3<InetSocketAddress, Socket, Exception>> queue = new LinkedList<>();
+ private final CompletionService<GridTuple3<InetSocketAddress, Socket, Exception>> completionSrvc;
/**
* @param addrs Addresses.
@@ -1033,19 +1030,19 @@ abstract class TcpDiscoverySpiAdapter extends IgniteSpiAdapter implements Discov
public SocketMultiConnector(Collection<InetSocketAddress> addrs, final int retryCnt) {
connInProgress = addrs.size();
- executor = Executors.newFixedThreadPool(Math.min(10, addrs.size()));
+ executor = Executors.newFixedThreadPool(Math.min(1, addrs.size()));
+
+ completionSrvc = new ExecutorCompletionService<>(executor);
for (final InetSocketAddress addr : addrs) {
- executor.execute(new Runnable() {
- @Override public void run() {
+ completionSrvc.submit(new Callable<GridTuple3<InetSocketAddress, Socket, Exception>>() {
+ @Override public GridTuple3<InetSocketAddress, Socket, Exception> call() {
Exception ex = null;
Socket sock = null;
for (int i = 0; i < retryCnt; i++) {
- synchronized (SocketMultiConnector.this) {
- if (closed)
- return;
- }
+ if (Thread.currentThread().isInterrupted())
+ return null; // Executor is shutdown.
try {
sock = openSocket(addr);
@@ -1057,16 +1054,7 @@ abstract class TcpDiscoverySpiAdapter extends IgniteSpiAdapter implements Discov
}
}
- synchronized (SocketMultiConnector.this) {
- if (closed)
- U.closeQuiet(sock);
- else
- queue.add(new GridTuple3<>(addr, sock, ex));
-
- connInProgress--;
-
- SocketMultiConnector.this.notifyAll();
- }
+ return new GridTuple3<>(addr, sock, ex);
}
});
}
@@ -1075,46 +1063,51 @@ abstract class TcpDiscoverySpiAdapter extends IgniteSpiAdapter implements Discov
/**
*
*/
- @Nullable public synchronized GridTuple3<InetSocketAddress, Socket, Exception> next() {
- try {
- do {
- if (closed)
- return null;
+ @Nullable public GridTuple3<InetSocketAddress, Socket, Exception> next() {
+ if (connInProgress == 0)
+ return null;
- GridTuple3<InetSocketAddress, Socket, Exception> res = queue.poll();
-
- if (res != null)
- return res;
-
- if (connInProgress == 0)
- return null;
+ try {
+ connInProgress--;
- wait();
- }
- while (true);
+ return completionSrvc.take().get();
}
catch (InterruptedException e) {
throw new IgniteSpiException("Thread has been interrupted.", e);
}
+ catch (ExecutionException e) {
+ throw new IgniteSpiException(e);
+ }
}
/**
*
*/
public void close() {
- synchronized (this) {
- if (closed)
- return;
-
- closed = true;
+ executor.shutdown();
- notifyAll();
- }
+ if (connInProgress > 0) {
+ new Thread(new Runnable() {
+ @Override public void run() {
+ try {
+ for (int i = 0; i < connInProgress; i++) {
+ try {
+ GridTuple3<InetSocketAddress, Socket, Exception> take = completionSrvc.take().get();
- executor.shutdown();
+ if (take != null)
+ IgniteUtils.closeQuiet(take.get2());
+ }
+ catch (ExecutionException ignored) {
- for (GridTuple3<InetSocketAddress, Socket, Exception> tuple : queue)
- U.closeQuiet(tuple.get2());
+ }
+ }
+ }
+ catch (InterruptedException e) {
+ throw new RuntimeException(e);
+ }
+ }
+ }).start();
+ }
}
}
}
[05/14] incubator-ignite git commit: Merge commit
Posted by ak...@apache.org.
Merge commit
Project: http://git-wip-us.apache.org/repos/asf/incubator-ignite/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-ignite/commit/153cbee4
Tree: http://git-wip-us.apache.org/repos/asf/incubator-ignite/tree/153cbee4
Diff: http://git-wip-us.apache.org/repos/asf/incubator-ignite/diff/153cbee4
Branch: refs/heads/ignite-187
Commit: 153cbee41b8adbcac1989f7746d1ef51049cda1f
Parents: 493775a bf8c048
Author: sevdokimov <se...@gridgain.com>
Authored: Thu Feb 26 17:01:52 2015 +0300
Committer: sevdokimov <se...@gridgain.com>
Committed: Thu Feb 26 17:01:52 2015 +0300
----------------------------------------------------------------------
examples/config/example-compute.xml | 2 +
.../hibernate/example-hibernate-L2-cache.xml | 2 +-
.../ComputeFibonacciContinuationExample.java | 17 +-
.../examples/datagrid/CacheApiExample.java | 4 +-
.../datagrid/CacheContinuousQueryExample.java | 6 +-
.../IgniteCountDownLatchExample.java | 3 +-
.../MessagingPingPongListenActorExample.java | 3 +-
.../examples/ScalarContinuationExample.scala | 20 +-
.../checkpoint/s3/S3CheckpointSpiSelfTest.java | 10 +-
.../internal/client/ClientStartNodeTask.java | 5 +-
.../processors/rest/RestProcessorTest.java | 8 +-
.../processors/rest/TestBinaryClient.java | 1 -
.../processors/rest/TestMemcacheClient.java | 13 +-
.../protocols/tcp/TcpRestParserSelfTest.java | 2 +-
.../ignite/codegen/MessageCodeGenerator.java | 28 +-
.../java/org/apache/ignite/IgniteCache.java | 69 +
.../java/org/apache/ignite/IgniteCluster.java | 3 +-
.../main/java/org/apache/ignite/IgniteFs.java | 2 +-
.../apache/ignite/IgniteSystemProperties.java | 5 +
.../ignite/cache/IgniteEntryProcessor.java | 28 +
.../CacheRendezvousAffinityFunction.java | 1 +
.../cache/store/jdbc/CacheJdbcPojoStore.java | 28 +-
.../ignite/cluster/ClusterNodeLocalMap.java | 60 -
.../org/apache/ignite/events/EventType.java | 8 +
.../IgfsByteDelimiterRecordResolver.java | 1 +
.../java/org/apache/ignite/igfs/package.html | 2 +-
.../ignite/internal/ClusterMetricsSnapshot.java | 9 +-
.../internal/GridEventConsumeHandler.java | 1 +
.../ignite/internal/GridKernalContext.java | 16 +-
.../ignite/internal/GridKernalContextImpl.java | 23 +-
.../internal/GridMessageListenHandler.java | 1 +
.../apache/ignite/internal/IgniteKernal.java | 11 +-
.../cluster/ClusterNodeLocalMapImpl.java | 27 +-
.../cluster/IgniteClusterAsyncImpl.java | 3 +-
.../internal/cluster/IgniteClusterImpl.java | 4 +-
.../internal/events/DiscoveryCustomEvent.java | 68 +
.../igfs/common/IgfsControlResponse.java | 1 +
.../internal/igfs/common/IgfsMarshaller.java | 1 +
.../internal/managers/GridManagerAdapter.java | 5 +
.../discovery/GridDiscoveryManager.java | 105 +-
.../affinity/GridAffinityMessage.java | 1 +
.../processors/cache/GridCacheEntryInfo.java | 5 +-
.../processors/cache/GridCacheMapEntry.java | 562 ++--
.../processors/cache/GridCacheSwapManager.java | 4 +-
.../processors/cache/GridCacheUtils.java | 4 +
.../processors/cache/IgniteCacheProxy.java | 63 +
.../GridDistributedTxRemoteAdapter.java | 66 +-
.../dht/atomic/GridDhtAtomicCache.java | 44 +-
.../dht/atomic/GridNearAtomicUpdateFuture.java | 84 +-
.../distributed/near/GridNearAtomicCache.java | 3 -
.../query/GridCacheDistributedQueryManager.java | 4 +-
.../cache/query/GridCacheQueryManager.java | 2 +-
.../continuous/CacheContinuousQueryEntry.java | 1 +
.../continuous/CacheContinuousQueryHandler.java | 1 +
.../cache/transactions/IgniteTxAdapter.java | 58 +-
.../cache/transactions/IgniteTxEntry.java | 17 +-
.../transactions/IgniteTxLocalAdapter.java | 48 +-
.../version/GridCacheRawVersionedEntry.java | 1 +
.../cache/version/GridCacheVersion.java | 3 +-
.../GridCacheVersionConflictContext.java | 35 +-
.../cache/version/GridCacheVersionEx.java | 2 +-
.../processors/clock/GridClockMessage.java | 1 +
.../closure/GridClosureProcessor.java | 82 +-
.../dataload/GridDataLoaderProcessor.java | 2 +-
.../datastructures/DataStructuresProcessor.java | 2 +-
.../dr/GridDrDataLoadCacheUpdater.java | 6 +-
.../processors/igfs/IgfsDataManager.java | 4 +-
.../internal/processors/igfs/IgfsImpl.java | 6 +-
.../processors/igfs/IgfsOutputStreamImpl.java | 4 +-
.../internal/processors/igfs/IgfsServer.java | 1 +
.../internal/processors/job/GridJobWorker.java | 2 +-
.../processors/rest/GridRestProcessor.java | 85 +-
.../processors/rest/GridRestResponse.java | 1 +
.../message/GridClientAbstractMessage.java | 1 +
.../message/GridClientHandshakeRequest.java | 1 +
.../cache/GridCacheQueryCommandHandler.java | 7 +-
.../protocols/tcp/GridMemcachedMessage.java | 3 +-
.../rest/protocols/tcp/GridTcpRestParser.java | 10 +-
.../securesession/GridSecureSession.java | 60 -
.../GridSecureSessionProcessor.java | 59 -
.../os/GridOsSecureSessionProcessor.java | 61 -
.../security/GridSecurityContext.java | 251 --
.../security/GridSecurityProcessor.java | 6 +-
.../processors/security/SecurityContext.java | 56 +
.../security/os/GridOsSecurityProcessor.java | 146 +-
.../processors/task/GridTaskWorker.java | 4 +-
.../internal/util/IgniteExceptionRegistry.java | 259 ++
.../ignite/internal/util/IgniteUtils.java | 2569 ++++++++----------
.../nio/GridConnectionBytesVerifyFilter.java | 1 +
.../util/nio/GridTcpCommunicationClient.java | 1 +
.../apache/ignite/internal/util/typedef/X.java | 3 +-
.../VisorComputeToggleMonitoringTask.java | 4 +-
.../visor/node/VisorNodeDataCollectorJob.java | 4 +-
.../node/VisorNodeEventsCollectorTask.java | 3 +-
.../visor/query/VisorQueryCleanupTask.java | 4 +-
.../visor/query/VisorQueryNextPageTask.java | 6 +-
.../internal/visor/query/VisorQueryTask.java | 4 +-
.../internal/visor/util/VisorTaskUtils.java | 45 +-
.../ignite/lang/IgniteProductVersion.java | 1 +
.../optimized/optimized-classnames.properties | 3 +-
.../org/apache/ignite/mxbean/IgniteMXBean.java | 6 +
.../org/apache/ignite/spi/IgniteSpiAdapter.java | 15 +
.../org/apache/ignite/spi/IgniteSpiContext.java | 8 +
.../ignite/spi/IgniteSpiThreadFactory.java | 2 +-
.../communication/tcp/TcpCommunicationSpi.java | 54 +-
.../ignite/spi/discovery/DiscoverySpi.java | 7 +
.../spi/discovery/DiscoverySpiListener.java | 11 +-
.../DiscoverySpiNodeAuthenticator.java | 2 +-
.../discovery/tcp/TcpClientDiscoverySpi.java | 7 +-
.../spi/discovery/tcp/TcpDiscoverySpi.java | 280 +-
.../discovery/tcp/TcpDiscoverySpiAdapter.java | 3 +
.../tcp/internal/TcpDiscoveryNode.java | 1 +
.../TcpDiscoveryMulticastIpFinder.java | 1 +
.../messages/TcpDiscoveryAuthFailedMessage.java | 1 +
.../TcpDiscoveryCustomEventMessage.java | 66 +
.../messages/TcpDiscoveryHeartbeatMessage.java | 1 +
.../spi/swapspace/file/FileSwapSpaceSpi.java | 2 +-
.../core/src/main/resources/ignite.properties | 2 +-
.../internal/GridDiscoveryEventSelfTest.java | 44 +
.../internal/GridEventStorageSelfTest.java | 3 +-
.../GridJobMasterLeaveAwareSelfTest.java | 24 +-
.../internal/GridMultipleJobsSelfTest.java | 2 +-
.../ignite/internal/GridNodeLocalSelfTest.java | 4 +-
.../GridTaskContinuousMapperSelfTest.java | 3 +-
.../GridTaskExecutionContextSelfTest.java | 2 +-
.../GridCheckpointManagerAbstractSelfTest.java | 20 +-
.../cache/GridCacheAbstractFullApiSelfTest.java | 101 +-
.../GridCacheConcurrentTxMultiNodeTest.java | 13 +-
.../cache/GridCachePutAllFailoverSelfTest.java | 5 +-
.../cache/IgniteTxMultiNodeAbstractTest.java | 33 +-
...cheAtomicReferenceMultiNodeAbstractTest.java | 12 +-
.../GridCacheMultiNodeDataStructureTest.java | 3 +-
...dCacheSequenceMultiNodeAbstractSelfTest.java | 2 +-
...titionedAtomicSequenceMultiThreadedTest.java | 16 +-
...dCachePartitionedQueueEntryMoveSelfTest.java | 2 +-
.../GridCacheAbstractJobExecutionTest.java | 2 +-
.../distributed/GridCacheEventAbstractTest.java | 4 +-
.../dht/GridCacheDhtInternalEntrySelfTest.java | 6 +-
.../dht/GridCacheDhtMultiBackupTest.java | 2 +-
...idCachePartitionedHitsAndMissesSelfTest.java | 3 +-
...ePartitionedMultiThreadedPutGetSelfTest.java | 2 +-
.../near/IgniteCacheNearReadCommittedTest.java | 3 +
.../GridCacheRandomEvictionPolicySelfTest.java | 2 +-
.../IgniteCacheLoaderWriterAbstractTest.java | 47 +
.../closure/GridClosureProcessorSelfTest.java | 14 +-
.../processors/igfs/IgfsAbstractSelfTest.java | 5 +-
.../igfs/IgfsDataManagerSelfTest.java | 1 +
.../processors/igfs/IgfsProcessorSelfTest.java | 3 +-
.../streamer/GridStreamerEvictionSelfTest.java | 2 +-
.../streamer/GridStreamerSelfTest.java | 2 +-
.../util/IgniteExceptionRegistrySelfTest.java | 89 +
.../internal/util/IgniteUtilsSelfTest.java | 6 +-
.../internal/util/nio/GridRoundTripTest.java | 1 +
.../offheap/GridOffHeapMapAbstractSelfTest.java | 1 +
.../cache/GridCacheDataStructuresLoadTest.java | 36 +-
.../loadtests/cache/GridCacheLoadTest.java | 6 +-
.../loadtests/cache/GridCacheSwapLoadTest.java | 5 +-
.../loadtests/colocation/GridTestMain.java | 3 +-
.../communication/GridIoManagerBenchmark.java | 3 +-
.../GridMultiSplitsRedeployLoadTest.java | 5 +-
.../loadtests/discovery/GridGcTimeoutTest.java | 3 +-
.../ignite/loadtests/dsi/GridDsiPerfJob.java | 16 +-
.../job/GridJobExecutionSingleNodeLoadTest.java | 2 +-
.../mapper/GridContinuousMapperLoadTest1.java | 3 +-
.../loadtests/mapper/GridNodeStartup.java | 3 +-
.../mergesort/GridMergeSortLoadTest.java | 3 +-
.../streamer/GridStreamerIndexLoadTest.java | 4 +-
.../swap/GridSwapEvictAllBenchmark.java | 3 +-
.../marshaller/GridMarshallerAbstractTest.java | 6 +-
...idSessionFutureWaitJobAttributeSelfTest.java | 3 +-
.../GridSessionSetTaskAttributeSelfTest.java | 3 +-
...GridSessionTaskWaitJobAttributeSelfTest.java | 3 +-
.../discovery/AbstractDiscoverySelfTest.java | 22 +-
.../tcp/TcpDiscoverySpiStartStopSelfTest.java | 23 -
.../roundrobin/GridRoundRobinTestUtils.java | 6 +-
.../file/GridFileSwapSpaceSpiSelfTest.java | 1 +
.../index/GridStreamerIndexSelfTest.java | 17 +-
.../window/GridStreamerWindowSelfTest.java | 3 +-
.../testframework/GridSpiTestContext.java | 6 +
.../junits/GridTestKernalContext.java | 2 +
.../ignite/testframework/junits/IgniteMock.java | 1 -
.../cache/GridAbstractCacheStoreSelfTest.java | 3 +-
.../junits/spi/GridSpiAbstractTest.java | 12 -
.../ignite/testsuites/IgniteCacheTestSuite.java | 3 +-
.../testsuites/IgniteUtilSelfTestSuite.java | 1 +
.../tests/p2p/GridP2PAwareTestUserResource.java | 5 +-
.../tests/p2p/GridTestMessageListener.java | 4 +-
modules/hadoop/pom.xml | 10 -
.../client/hadoop/GridHadoopClientProtocol.java | 3 +-
.../java/org/apache/ignite/igfs/package.html | 2 +-
.../internal/igfs/hadoop/IgfsHadoopWrapper.java | 2 +-
.../hadoop/GridHadoopDefaultJobInfo.java | 5 +-
.../processors/hadoop/GridHadoopSetup.java | 3 +-
.../GridHadoopDefaultMapReducePlanner.java | 3 +-
.../shuffle/GridHadoopShuffleMessage.java | 1 +
.../taskexecutor/GridHadoopExecutorService.java | 2 +-
.../hadoop/v2/GridHadoopSplitWrapper.java | 3 +-
.../hadoop/GridHadoopGroupingTest.java | 10 +-
.../hadoop/GridHadoopJobTrackerSelfTest.java | 2 +-
.../hadoop/GridHadoopSortingTest.java | 9 +-
.../processors/hadoop/GridHadoopStartup.java | 2 +-
.../ignite/loadtests/igfs/IgfsNodeStartup.java | 3 +-
.../testsuites/IgniteHadoopTestSuite.java | 7 +-
...idHibernateAbstractRegionAccessStrategy.java | 97 -
.../GridHibernateAccessStrategyAdapter.java | 369 ---
.../GridHibernateCollectionRegion.java | 99 -
.../hibernate/GridHibernateEntityRegion.java | 110 -
.../GridHibernateGeneralDataRegion.java | 69 -
.../hibernate/GridHibernateNaturalIdRegion.java | 98 -
.../GridHibernateNonStrictAccessStrategy.java | 220 --
.../GridHibernateQueryResultsRegion.java | 71 -
.../GridHibernateReadOnlyAccessStrategy.java | 106 -
.../GridHibernateReadWriteAccessStrategy.java | 282 --
.../cache/hibernate/GridHibernateRegion.java | 101 -
.../hibernate/GridHibernateRegionFactory.java | 231 --
.../GridHibernateTimestampsRegion.java | 40 -
...ridHibernateTransactionalAccessStrategy.java | 139 -
.../GridHibernateTransactionalDataRegion.java | 96 -
.../HibernateAbstractRegionAccessStrategy.java | 97 +
.../HibernateAccessStrategyAdapter.java | 369 +++
.../hibernate/HibernateCollectionRegion.java | 99 +
.../cache/hibernate/HibernateEntityRegion.java | 110 +
.../hibernate/HibernateGeneralDataRegion.java | 69 +
.../hibernate/HibernateNaturalIdRegion.java | 98 +
.../HibernateNonStrictAccessStrategy.java | 220 ++
.../hibernate/HibernateQueryResultsRegion.java | 71 +
.../HibernateReadOnlyAccessStrategy.java | 106 +
.../HibernateReadWriteAccessStrategy.java | 282 ++
.../ignite/cache/hibernate/HibernateRegion.java | 101 +
.../cache/hibernate/HibernateRegionFactory.java | 231 ++
.../hibernate/HibernateTimestampsRegion.java | 40 +
.../HibernateTransactionalAccessStrategy.java | 139 +
.../HibernateTransactionalDataRegion.java | 96 +
.../apache/ignite/cache/hibernate/package.html | 2 +-
...idHibernateL2CacheConfigurationSelfTest.java | 393 ---
.../hibernate/GridHibernateL2CacheSelfTest.java | 1923 -------------
...idHibernateL2CacheTransactionalSelfTest.java | 135 -
.../HibernateL2CacheConfigurationSelfTest.java | 393 +++
.../hibernate/HibernateL2CacheSelfTest.java | 1925 +++++++++++++
.../HibernateL2CacheTransactionalSelfTest.java | 135 +
.../testsuites/IgniteHibernateTestSuite.java | 6 +-
.../cache/GridCacheCrossCacheQuerySelfTest.java | 2 +-
.../GridCacheCrossCacheQuerySelfTestNewApi.java | 2 +-
.../http/jetty/GridJettyRestHandler.java | 1 +
.../p2p/GridP2PUserVersionChangeSelfTest.java | 4 +-
...gniteProjectionStartStopRestartSelfTest.java | 3 +-
pom.xml | 2 +-
247 files changed, 8023 insertions(+), 7780 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/153cbee4/examples/config/example-compute.xml
----------------------------------------------------------------------
diff --cc examples/config/example-compute.xml
index c532e17,c532e17..303b4eb
--- a/examples/config/example-compute.xml
+++ b/examples/config/example-compute.xml
@@@ -32,6 -32,6 +32,8 @@@
<!-- Set to true to enable distributed class loading for examples, default is false. -->
<property name="peerClassLoadingEnabled" value="true"/>
++ <property name="localHost" value="127.0.0.1" />
++
<property name="marshaller">
<bean class="org.apache.ignite.marshaller.optimized.OptimizedMarshaller">
<!-- Set to false to allow non-serializable objects in examples, default is true. -->
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/153cbee4/modules/core/src/main/java/org/apache/ignite/internal/util/IgniteUtils.java
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/153cbee4/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/TcpDiscoverySpi.java
----------------------------------------------------------------------
diff --cc modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/TcpDiscoverySpi.java
index 3e9c120,ecdc6cc..3fc52b1
--- a/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/TcpDiscoverySpi.java
+++ b/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/TcpDiscoverySpi.java
@@@ -1395,83 -1399,68 +1399,86 @@@ public class TcpDiscoverySpi extends Tc
return false;
boolean retry = false;
- IgniteCheckedException errs = null;
+ Collection<Exception> errs = new ArrayList<>();
- for (InetSocketAddress addr : addrs) {
- try {
- Integer res = sendMessageDirectly(joinReq, addr);
+ SocketMultiConnector multiConnector = new SocketMultiConnector(addrs, 2);
- assert res != null;
+ try {
+ GridTuple3<InetSocketAddress, Socket, Exception> tuple;
- noResAddrs.remove(addr);
+ while ((tuple = multiConnector.next()) != null) {
+ InetSocketAddress addr = tuple.get1();
+ Socket sock = tuple.get2();
+ Exception ex = tuple.get3();
- // Address is responsive, reset period start.
- noResStart = 0;
+ if (ex == null) {
+ assert sock != null;
- switch (res) {
- case RES_WAIT:
- // Concurrent startup, try sending join request again or wait if no success.
- retry = true;
+ try {
+ Integer res = sendMessageDirectly(joinReq, addr, sock);
- break;
- case RES_OK:
- if (log.isDebugEnabled())
- log.debug("Join request message has been sent to address [addr=" + addr +
- ", req=" + joinReq + ']');
+ assert res != null;
- // Join request sending succeeded, wait for response from topology.
- return true;
+ noResAddrs.remove(addr);
- default:
- // Concurrent startup, try next node.
- if (res == RES_CONTINUE_JOIN) {
- if (!fromAddrs.contains(addr))
+ // Address is responsive, reset period start.
+ noResStart = 0;
+
+ switch (res) {
+ case RES_WAIT:
+ // Concurrent startup, try sending join request again or wait if no success.
retry = true;
- }
- else {
- if (log.isDebugEnabled())
- log.debug("Unexpected response to join request: " + res);
- retry = true;
- }
+ break;
+ case RES_OK:
+ if (log.isDebugEnabled())
+ log.debug("Join request message has been sent to address [addr=" + addr +
+ ", req=" + joinReq + ']');
- break;
+ // Join request sending succeeded, wait for response from topology.
+ return true;
+
+ default:
+ // Concurrent startup, try next node.
+ if (res == RES_CONTINUE_JOIN) {
+ if (!fromAddrs.contains(addr))
+ retry = true;
+ }
+ else {
+ if (log.isDebugEnabled())
+ log.debug("Unexpected response to join request: " + res);
+
+ retry = true;
+ }
+
+ break;
+ }
+ }
+ catch (IgniteSpiException e) {
+ ex = e;
+ }
}
- }
- catch (IgniteSpiException e) {
- if (errs == null)
- errs = new IgniteCheckedException("Multiple connection attempts failed.");
- errs.addSuppressed(e);
+ if (ex != null) {
+ errs.add(ex);
- if (log.isDebugEnabled()) {
- IOException ioe = X.cause(e, IOException.class);
+ if (log.isDebugEnabled()) {
+ IOException ioe = X.cause(ex, IOException.class);
- log.debug("Failed to send join request message [addr=" + addr +
- ", msg=" + ioe != null ? ioe.getMessage() : e.getMessage() + ']');
+ log.debug("Failed to send join request message [addr=" + addr +
+ ", msg=" + ioe != null ? ioe.getMessage() : ex.getMessage() + ']');
+
- onException("Failed to send join request message [addr=" + addr +
- ", msg=" + ioe != null ? ioe.getMessage() : e.getMessage() + ']', ioe);
- }
++ onException("Failed to send join request message [addr=" + addr +
++ ", msg=" + ioe != null ? ioe.getMessage() : ex.getMessage() + ']', ioe);
+ }
- noResAddrs.add(addr);
+ noResAddrs.add(addr);
+ }
}
}
+ finally {
+ multiConnector.close();
+ }
if (retry) {
if (log.isDebugEnabled())
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/153cbee4/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/TcpDiscoverySpiAdapter.java
----------------------------------------------------------------------
[08/14] incubator-ignite git commit: ignite-11 Ad missing javadoc.
Posted by ak...@apache.org.
ignite-11 Ad missing javadoc.
Project: http://git-wip-us.apache.org/repos/asf/incubator-ignite/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-ignite/commit/2999d205
Tree: http://git-wip-us.apache.org/repos/asf/incubator-ignite/tree/2999d205
Diff: http://git-wip-us.apache.org/repos/asf/incubator-ignite/diff/2999d205
Branch: refs/heads/ignite-187
Commit: 2999d205d963f444812c9d380f0620f30c095196
Parents: 8b9e7f8
Author: sevdokimov <se...@gridgain.com>
Authored: Thu Feb 26 17:40:44 2015 +0300
Committer: sevdokimov <se...@gridgain.com>
Committed: Thu Feb 26 17:40:44 2015 +0300
----------------------------------------------------------------------
.../main/java/org/apache/ignite/internal/util/IgniteUtils.java | 4 +++-
1 file changed, 3 insertions(+), 1 deletion(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/2999d205/modules/core/src/main/java/org/apache/ignite/internal/util/IgniteUtils.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/util/IgniteUtils.java b/modules/core/src/main/java/org/apache/ignite/internal/util/IgniteUtils.java
index b24743a..de71f59 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/util/IgniteUtils.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/util/IgniteUtils.java
@@ -1434,6 +1434,9 @@ public abstract class IgniteUtils {
return locHost0 != null && !resetLocalHost().equals(locHost0);
}
+ /**
+ * @param addrs Addresses.
+ */
public static List<InetAddress> filterReachable(List<InetAddress> addrs) {
final int reachTimeout = 2000;
@@ -1495,7 +1498,6 @@ public abstract class IgniteUtils {
*/
public static IgniteBiTuple<Collection<String>, Collection<String>> resolveLocalAddresses(InetAddress locAddr)
throws IOException, IgniteCheckedException {
-
assert locAddr != null;
Collection<String> addrs = new ArrayList<>();
[04/14] incubator-ignite git commit: Merge remote-tracking branch
'remotes/origin/sprint-2' into ignite-11
Posted by ak...@apache.org.
Merge remote-tracking branch 'remotes/origin/sprint-2' into ignite-11
Project: http://git-wip-us.apache.org/repos/asf/incubator-ignite/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-ignite/commit/493775aa
Tree: http://git-wip-us.apache.org/repos/asf/incubator-ignite/tree/493775aa
Diff: http://git-wip-us.apache.org/repos/asf/incubator-ignite/diff/493775aa
Branch: refs/heads/ignite-187
Commit: 493775aa00c2ffd2e50be7289e17c448d6ae121f
Parents: e89a70c 02e5c37
Author: sevdokimov <se...@jetbrains.com>
Authored: Sun Feb 22 13:12:19 2015 +0300
Committer: sevdokimov <se...@jetbrains.com>
Committed: Sun Feb 22 13:12:19 2015 +0300
----------------------------------------------------------------------
README.md | 2 -
bin/setup-hadoop.sh | 2 +-
examples/pom-standalone.xml | 2 +-
.../examples/datagrid/CacheQueryExample.java | 2 +-
.../ClientAbstractMultiNodeSelfTest.java | 8 +-
.../rest/AbstractRestProcessorSelfTest.java | 2 +-
.../ignite/codegen/MessageCodeGenerator.java | 133 +--
.../java/org/apache/ignite/cache/GridCache.java | 48 -
.../ignite/internal/ClusterGroupAdapter.java | 889 -------------------
.../apache/ignite/internal/ClusterGroupEx.java | 44 -
.../internal/ClusterNodeLocalMapImpl.java | 103 ---
.../ignite/internal/GridJobCancelRequest.java | 26 +-
.../ignite/internal/GridJobExecuteRequest.java | 70 +-
.../ignite/internal/GridJobExecuteResponse.java | 34 +-
.../ignite/internal/GridJobSiblingsRequest.java | 24 +-
.../internal/GridJobSiblingsResponse.java | 22 +-
.../apache/ignite/internal/GridKillTask.java | 103 ---
.../ignite/internal/GridTaskCancelRequest.java | 22 +-
.../ignite/internal/GridTaskSessionRequest.java | 26 +-
.../ignite/internal/IgniteClusterAsyncImpl.java | 261 ------
.../ignite/internal/IgniteComputeImpl.java | 1 +
.../ignite/internal/IgniteEventsImpl.java | 1 +
.../org/apache/ignite/internal/IgniteEx.java | 14 +-
.../apache/ignite/internal/IgniteKernal.java | 613 +++----------
.../ignite/internal/IgniteMessagingImpl.java | 1 +
.../ignite/internal/IgniteServicesImpl.java | 1 +
.../org/apache/ignite/internal/IgnitionEx.java | 4 +-
.../internal/cluster/ClusterGroupAdapter.java | 866 ++++++++++++++++++
.../ignite/internal/cluster/ClusterGroupEx.java | 44 +
.../cluster/ClusterNodeLocalMapImpl.java | 104 +++
.../cluster/IgniteClusterAsyncImpl.java | 292 ++++++
.../internal/cluster/IgniteClusterEx.java | 27 +
.../internal/cluster/IgniteClusterImpl.java | 527 +++++++++++
.../ignite/internal/cluster/IgniteKillTask.java | 103 +++
.../internal/direct/DirectByteBufferStream.java | 44 +-
.../internal/direct/DirectMessageReader.java | 33 +-
.../internal/direct/DirectMessageWriter.java | 23 +-
.../direct/DirectMessageWriterState.java | 13 +-
.../internal/executor/GridExecutorService.java | 1 +
.../internal/managers/GridManagerAdapter.java | 4 +-
.../checkpoint/GridCheckpointRequest.java | 26 +-
.../managers/communication/GridIoManager.java | 30 +-
.../managers/communication/GridIoMessage.java | 38 +-
.../communication/GridIoMessageFactory.java | 33 +-
.../communication/GridIoUserMessage.java | 38 +-
.../deployment/GridDeploymentCommunication.java | 4 +-
.../deployment/GridDeploymentInfoBean.java | 35 +-
.../deployment/GridDeploymentRequest.java | 34 +-
.../deployment/GridDeploymentResponse.java | 26 +-
.../eventstorage/GridEventStorageMessage.java | 42 +-
.../processors/cache/GridCacheAdapter.java | 49 +-
.../processors/cache/GridCacheContext.java | 5 +
.../cache/GridCacheEvictionRequest.java | 26 +-
.../cache/GridCacheEvictionResponse.java | 30 +-
.../processors/cache/GridCacheMapEntry.java | 58 +-
.../processors/cache/GridCacheMessage.java | 21 +-
.../processors/cache/GridCacheProcessor.java | 4 +
.../processors/cache/GridCacheProjectionEx.java | 47 +
.../cache/GridCacheProjectionImpl.java | 11 +
.../processors/cache/GridCacheProxyImpl.java | 8 +-
.../processors/cache/GridCacheUtils.java | 46 +-
.../processors/cache/GridCacheValueBytes.java | 24 +-
.../processors/cache/IgniteCacheProxy.java | 14 +-
...idCacheOptimisticCheckPreparedTxRequest.java | 30 +-
...dCacheOptimisticCheckPreparedTxResponse.java | 26 +-
.../distributed/GridCacheTtlUpdateRequest.java | 58 +-
.../distributed/GridDistributedBaseMessage.java | 33 +-
.../GridDistributedCacheAdapter.java | 4 +-
.../distributed/GridDistributedLockRequest.java | 52 +-
.../GridDistributedLockResponse.java | 30 +-
.../GridDistributedTxFinishRequest.java | 42 +-
.../GridDistributedTxFinishResponse.java | 24 +-
.../GridDistributedTxPrepareRequest.java | 58 +-
.../GridDistributedTxPrepareResponse.java | 24 +-
.../GridDistributedTxRemoteAdapter.java | 11 +-
.../GridDistributedUnlockRequest.java | 26 +-
.../dht/GridDhtAffinityAssignmentRequest.java | 22 +-
.../dht/GridDhtAffinityAssignmentResponse.java | 24 +-
.../distributed/dht/GridDhtCacheAdapter.java | 16 +-
.../distributed/dht/GridDhtLockRequest.java | 42 +-
.../distributed/dht/GridDhtLockResponse.java | 40 +-
.../distributed/dht/GridDhtTxFinishRequest.java | 42 +-
.../dht/GridDhtTxFinishResponse.java | 22 +-
.../dht/GridDhtTxPrepareRequest.java | 48 +-
.../dht/GridDhtTxPrepareResponse.java | 42 +-
.../distributed/dht/GridDhtUnlockRequest.java | 26 +-
.../GridDhtAtomicDeferredUpdateResponse.java | 26 +-
.../dht/atomic/GridDhtAtomicUpdateRequest.java | 92 +-
.../dht/atomic/GridDhtAtomicUpdateResponse.java | 32 +-
.../dht/atomic/GridNearAtomicUpdateFuture.java | 44 +-
.../dht/atomic/GridNearAtomicUpdateRequest.java | 78 +-
.../atomic/GridNearAtomicUpdateResponse.java | 54 +-
.../dht/preloader/GridDhtForceKeysRequest.java | 32 +-
.../dht/preloader/GridDhtForceKeysResponse.java | 32 +-
.../GridDhtPartitionDemandMessage.java | 36 +-
.../preloader/GridDhtPartitionExchangeId.java | 27 +-
.../GridDhtPartitionSupplyMessage.java | 40 +-
.../GridDhtPartitionsAbstractMessage.java | 19 +-
.../preloader/GridDhtPartitionsFullMessage.java | 24 +-
.../GridDhtPartitionsSingleMessage.java | 22 +-
.../GridDhtPartitionsSingleRequest.java | 18 +-
.../distributed/near/GridNearAtomicCache.java | 4 +-
.../distributed/near/GridNearCacheAdapter.java | 8 +-
.../distributed/near/GridNearGetRequest.java | 47 +-
.../distributed/near/GridNearGetResponse.java | 38 +-
.../distributed/near/GridNearLockRequest.java | 52 +-
.../distributed/near/GridNearLockResponse.java | 42 +-
.../near/GridNearTxFinishRequest.java | 32 +-
.../near/GridNearTxFinishResponse.java | 26 +-
.../near/GridNearTxPrepareRequest.java | 44 +-
.../near/GridNearTxPrepareResponse.java | 48 +-
.../distributed/near/GridNearUnlockRequest.java | 18 +-
.../cache/query/GridCacheQueryManager.java | 2 +-
.../cache/query/GridCacheQueryRequest.java | 58 +-
.../cache/query/GridCacheQueryResponse.java | 40 +-
.../continuous/CacheContinuousQueryManager.java | 4 +-
.../cache/version/GridCacheVersion.java | 29 +-
.../clock/GridClockDeltaSnapshotMessage.java | 28 +-
.../processors/clock/GridClockDeltaVersion.java | 24 +-
.../continuous/GridContinuousMessage.java | 28 +-
.../dataload/GridDataLoadRequest.java | 50 +-
.../dataload/GridDataLoadResponse.java | 26 +-
.../dataload/IgniteDataLoaderImpl.java | 4 +-
.../datastructures/GridCacheSetImpl.java | 4 +-
.../processors/igfs/IgfsAckMessage.java | 26 +-
.../internal/processors/igfs/IgfsBlockKey.java | 28 +-
.../processors/igfs/IgfsBlocksMessage.java | 30 +-
.../igfs/IgfsCommunicationMessage.java | 18 +-
.../processors/igfs/IgfsDeleteMessage.java | 24 +-
.../processors/igfs/IgfsFileAffinityRange.java | 30 +-
.../igfs/IgfsFragmentizerRequest.java | 28 +-
.../igfs/IgfsFragmentizerResponse.java | 22 +-
.../processors/igfs/IgfsSyncMessage.java | 24 +-
.../plugin/IgnitePluginProcessor.java | 2 +-
.../processors/query/GridQueryProcessor.java | 4 +-
.../handlers/cache/GridCacheCommandHandler.java | 4 +-
.../cache/GridCacheQueryCommandHandler.java | 4 +-
.../handlers/task/GridTaskCommandHandler.java | 4 +-
.../handlers/task/GridTaskResultRequest.java | 24 +-
.../handlers/task/GridTaskResultResponse.java | 28 +-
.../top/GridTopologyCommandHandler.java | 2 +-
.../streamer/GridStreamerCancelRequest.java | 22 +-
.../streamer/GridStreamerContextImpl.java | 2 +-
.../streamer/GridStreamerExecutionRequest.java | 38 +-
.../streamer/GridStreamerResponse.java | 24 +-
.../processors/streamer/IgniteStreamerImpl.java | 4 +-
.../ignite/internal/util/GridByteArrayList.java | 24 +-
.../ignite/internal/util/GridLongList.java | 24 +-
.../ignite/internal/util/IgniteUtils.java | 32 +-
.../internal/util/future/GridFutureAdapter.java | 8 +-
.../util/future/GridFutureAdapterEx.java | 3 +-
.../internal/util/ipc/IpcToNioAdapter.java | 4 +-
.../util/nio/GridCommunicationClient.java | 2 +-
.../internal/util/nio/GridDirectParser.java | 33 +-
.../internal/util/nio/GridNioMessageReader.java | 2 +-
.../internal/util/nio/GridNioMessageWriter.java | 4 +-
.../ignite/internal/util/nio/GridNioServer.java | 59 +-
.../util/nio/GridShmemCommunicationClient.java | 2 +-
.../util/nio/GridTcpCommunicationClient.java | 2 +-
.../util/nio/GridTcpNioCommunicationClient.java | 2 +-
.../visor/cache/VisorCacheClearTask.java | 3 +-
.../compute/VisorComputeCancelSessionsTask.java | 2 +-
.../compute/VisorComputeResetMetricsTask.java | 2 +-
.../VisorComputeToggleMonitoringTask.java | 2 +-
.../visor/node/VisorNodeDataCollectorJob.java | 4 +-
.../node/VisorNodeEventsCollectorTask.java | 2 +-
.../internal/visor/node/VisorNodePingTask.java | 2 +-
.../visor/query/VisorQueryCleanupTask.java | 3 +-
.../visor/query/VisorQueryNextPageTask.java | 6 +-
.../internal/visor/query/VisorQueryTask.java | 10 +-
.../optimized/optimized-classnames.properties | 24 +-
.../extensions/communication/Message.java | 58 ++
.../communication/MessageAdapter.java | 143 ---
.../MessageCollectionItemType.java | 101 +++
.../communication/MessageFactory.java | 4 +-
.../communication/MessageFormatter.java | 3 +-
.../extensions/communication/MessageReader.java | 24 +-
.../extensions/communication/MessageWriter.java | 26 +-
.../jobstealing/JobStealingRequest.java | 22 +-
.../communication/tcp/TcpCommunicationSpi.java | 80 +-
.../core/src/main/resources/ignite.properties | 3 +-
.../ignite/IgniteCacheAffinitySelfTest.java | 8 +-
.../IgniteCacheExpiryStoreLoadSelfTest.java | 81 +-
.../ignite/internal/ClusterMetricsSelfTest.java | 2 +-
.../GridJobMasterLeaveAwareSelfTest.java | 12 +-
.../internal/GridMultipleJobsSelfTest.java | 2 +-
.../internal/GridProjectionAbstractTest.java | 2 +-
.../ignite/internal/GridProjectionSelfTest.java | 2 +-
.../apache/ignite/internal/GridSelfTest.java | 15 +-
.../GridCommunicationSendMessageSelfTest.java | 13 +-
.../communication/GridIoManagerSelfTest.java | 18 +-
.../GridDeploymentMessageCountSelfTest.java | 2 +-
.../GridAffinityProcessorAbstractSelfTest.java | 7 +-
.../cache/GridCacheAbstractFullApiSelfTest.java | 28 +-
.../cache/GridCacheAffinityApiSelfTest.java | 18 +-
.../GridCacheAtomicMessageCountSelfTest.java | 2 +-
.../cache/GridCacheEntryMemorySizeSelfTest.java | 4 +-
...GridCacheMixedPartitionExchangeSelfTest.java | 2 +-
...ridCacheReplicatedSynchronousCommitTest.java | 2 +-
.../IgniteCacheAbstractStopBusySelfTest.java | 5 +-
.../cache/IgniteTxReentryAbstractSelfTest.java | 2 +-
...ridCacheQueueJoinedNodeSelfAbstractTest.java | 4 +-
...GridCacheQueueMultiNodeAbstractSelfTest.java | 4 +-
...dCacheSequenceMultiNodeAbstractSelfTest.java | 4 +-
...dCachePartitionedQueueEntryMoveSelfTest.java | 2 +-
.../GridCacheAbstractJobExecutionTest.java | 13 +-
.../GridCacheAtomicTimeoutSelfTest.java | 3 +-
...xOriginatingNodeFailureAbstractSelfTest.java | 2 +-
...cOriginatingNodeFailureAbstractSelfTest.java | 2 +-
.../dht/GridCacheDhtEntrySelfTest.java | 2 +-
...GridCacheDhtEvictionNearReadersSelfTest.java | 4 +-
.../dht/GridCacheDhtEvictionSelfTest.java | 2 +-
.../dht/GridCacheDhtInternalEntrySelfTest.java | 2 +-
.../GridCacheDhtPreloadMessageCountTest.java | 2 +-
...eAtomicInvalidPartitionHandlingSelfTest.java | 2 +-
.../near/GridCacheNearMultiNodeSelfTest.java | 4 +-
.../near/GridCacheNearReadersSelfTest.java | 18 +-
...ePartitionedBasicStoreMultiNodeSelfTest.java | 12 +-
...titionedExplicitLockNodeFailureSelfTest.java | 4 +-
...achePartitionedMultiNodeFullApiSelfTest.java | 2 +-
...hePartitionedQueryMultiThreadedSelfTest.java | 2 +-
.../GridCacheReplicatedInvalidateSelfTest.java | 2 +-
...CacheReplicatedPreloadLifecycleSelfTest.java | 2 +-
...ridCacheContinuousQueryAbstractSelfTest.java | 14 +-
.../closure/GridClosureProcessorRemoteTest.java | 2 +-
.../closure/GridClosureProcessorSelfTest.java | 14 +-
.../continuous/GridEventConsumeSelfTest.java | 18 +-
.../continuous/GridMessageListenSelfTest.java | 14 +-
.../processors/igfs/IgfsSizeSelfTest.java | 4 +-
.../processors/igfs/IgfsStreamsSelfTest.java | 2 +-
.../GridServiceReassignmentSelfTest.java | 2 +-
.../communication/GridIoManagerBenchmark0.java | 6 +-
.../communication/GridTestMessage.java | 9 +-
.../marshaller/GridMarshallerAbstractTest.java | 14 +-
.../ignite/messaging/GridMessagingSelfTest.java | 3 +-
.../spi/GridTcpSpiForwardingSelfTest.java | 4 +-
.../GridAbstractCommunicationSelfTest.java | 22 +-
.../spi/communication/GridTestMessage.java | 25 +-
.../tcp/GridCacheDhtLockBackupSelfTest.java | 4 +-
.../GridTcpCommunicationSpiAbstractTest.java | 2 +-
...mmunicationSpiConcurrentConnectSelfTest.java | 16 +-
.../tcp/GridTcpCommunicationSpiLanTest.java | 4 +-
...cpCommunicationSpiMultithreadedSelfTest.java | 22 +-
...dTcpCommunicationSpiRecoveryAckSelfTest.java | 10 +-
...GridTcpCommunicationSpiRecoverySelfTest.java | 10 +-
.../tcp/TcpDiscoverySpiWildcardSelfTest.java | 2 +-
.../testframework/GridSpiTestContext.java | 6 +-
.../testframework/junits/GridAbstractTest.java | 4 +-
modules/hadoop/pom.xml | 6 -
.../IgfsHadoop20FileSystemAbstractSelfTest.java | 2 +-
...idHadoopDefaultMapReducePlannerSelfTest.java | 227 +----
.../GridCacheAbstractFieldsQuerySelfTest.java | 7 +-
.../cache/GridCacheQueryMetricsSelfTest.java | 4 +-
.../near/GridCachePartitionedQuerySelfTest.java | 4 +-
.../GridCacheReplicatedFieldsQuerySelfTest.java | 2 +-
.../tcp/GridOrderedMessageCancelSelfTest.java | 6 +-
.../resource/GridServiceInjectionSelfTest.java | 4 +-
.../visor/commands/ack/VisorAckCommand.scala | 4 +-
.../commands/alert/VisorAlertCommand.scala | 11 +-
.../commands/cache/VisorCacheClearCommand.scala | 4 +-
.../commands/cache/VisorCacheCommand.scala | 6 +-
.../cache/VisorCacheCompactCommand.scala | 4 +-
.../commands/cache/VisorCacheScanCommand.scala | 4 +-
.../commands/cache/VisorCacheSwapCommand.scala | 4 +-
.../config/VisorConfigurationCommand.scala | 4 +-
.../commands/disco/VisorDiscoveryCommand.scala | 6 +-
.../commands/events/VisorEventsCommand.scala | 4 +-
.../visor/commands/gc/VisorGcCommand.scala | 4 +-
.../visor/commands/kill/VisorKillCommand.scala | 12 +-
.../visor/commands/node/VisorNodeCommand.scala | 2 +-
.../visor/commands/ping/VisorPingCommand.scala | 4 +-
.../commands/start/VisorStartCommand.scala | 4 +-
.../commands/tasks/VisorTasksCommand.scala | 12 +-
.../commands/top/VisorTopologyCommand.scala | 4 +-
.../visor/commands/vvm/VisorVvmCommand.scala | 6 +-
.../scala/org/apache/ignite/visor/visor.scala | 32 +-
pom.xml | 2 +-
readme.md | 2 -
278 files changed, 5109 insertions(+), 4121 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/493775aa/modules/core/src/main/java/org/apache/ignite/internal/util/IgniteUtils.java
----------------------------------------------------------------------
[03/14] incubator-ignite git commit: # IGNITE-11 Optimization
obtaining localhosts.
Posted by ak...@apache.org.
# IGNITE-11 Optimization obtaining localhosts.
Project: http://git-wip-us.apache.org/repos/asf/incubator-ignite/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-ignite/commit/e89a70cc
Tree: http://git-wip-us.apache.org/repos/asf/incubator-ignite/tree/e89a70cc
Diff: http://git-wip-us.apache.org/repos/asf/incubator-ignite/diff/e89a70cc
Branch: refs/heads/ignite-187
Commit: e89a70cc911648b081b56c4c19e6f59d137b3a8e
Parents: e7171b0
Author: sevdokimov <se...@jetbrains.com>
Authored: Sun Feb 22 13:11:28 2015 +0300
Committer: sevdokimov <se...@jetbrains.com>
Committed: Sun Feb 22 13:11:28 2015 +0300
----------------------------------------------------------------------
.../ignite/internal/util/IgniteUtils.java | 87 +++++++++++++++++---
1 file changed, 76 insertions(+), 11 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/e89a70cc/modules/core/src/main/java/org/apache/ignite/internal/util/IgniteUtils.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/util/IgniteUtils.java b/modules/core/src/main/java/org/apache/ignite/internal/util/IgniteUtils.java
index 5db0da4..4cf5718 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/util/IgniteUtils.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/util/IgniteUtils.java
@@ -300,6 +300,8 @@ public abstract class IgniteUtils {
private static final Map<Class<? extends IgniteCheckedException>, C1<IgniteCheckedException, IgniteException>>
exceptionConverters;
+ private volatile static IgniteBiTuple<Collection<String>, Collection<String>> cachedLocalAddr;
+
/**
* Initializes enterprise check.
*/
@@ -1489,6 +1491,55 @@ public abstract class IgniteUtils {
return locHost0 != null && !resetLocalHost().equals(locHost0);
}
+ public static List<InetAddress> filterReachable(List<InetAddress> addrs) {
+ final int reachTimeout = 2000;
+
+ if (addrs.isEmpty())
+ return Collections.emptyList();
+
+ if (addrs.size() == 1) {
+ if (reachable(addrs.get(1), reachTimeout))
+ return Collections.singletonList(addrs.get(1));
+
+ return Collections.emptyList();
+ }
+
+ final List<InetAddress> res = new ArrayList<>(addrs.size());
+
+ Collection<Future<?>> futs = new ArrayList<>(addrs.size());
+
+ ExecutorService executor = Executors.newFixedThreadPool(Math.min(10, addrs.size()));
+
+ for (final InetAddress addr : addrs) {
+ futs.add(executor.submit(new Runnable() {
+ @Override
+ public void run() {
+ if (reachable(addr, reachTimeout)) {
+ synchronized (res) {
+ res.add(addr);
+ }
+ }
+ }
+ }));
+ }
+
+ for (Future<?> fut : futs) {
+ try {
+ fut.get();
+ } catch (InterruptedException e) {
+ Thread.currentThread().interrupt();
+
+ throw new IgniteException("Thread has been interrupted.", e);
+ } catch (ExecutionException e) {
+ throw new IgniteException(e);
+ }
+ }
+
+ executor.shutdown();
+
+ return res;
+ }
+
/**
* Returns host names consistent with {@link #resolveLocalHost(String)}. So when it returns
* a common address this method returns single host name, and when a wildcard address passed
@@ -1501,28 +1552,42 @@ public abstract class IgniteUtils {
*/
public static IgniteBiTuple<Collection<String>, Collection<String>> resolveLocalAddresses(InetAddress locAddr)
throws IOException, IgniteCheckedException {
+
assert locAddr != null;
Collection<String> addrs = new ArrayList<>();
Collection<String> hostNames = new ArrayList<>();
if (locAddr.isAnyLocalAddress()) {
- // It should not take longer than 2 seconds to reach
- // local address on any network.
- int reachTimeout = 2000;
+ IgniteBiTuple<Collection<String>, Collection<String>> res = cachedLocalAddr;
- for (NetworkInterface itf : asIterable(NetworkInterface.getNetworkInterfaces())) {
- for (InetAddress addr : asIterable(itf.getInetAddresses())) {
- if (!addr.isLinkLocalAddress() && reachable(itf, addr, reachTimeout))
- addresses(addr, addrs, hostNames);
+ if (res == null) {
+ List<InetAddress> localAddrs = new ArrayList<>();
+
+ for (NetworkInterface itf : asIterable(NetworkInterface.getNetworkInterfaces())) {
+ for (InetAddress addr : asIterable(itf.getInetAddresses())) {
+ if (!addr.isLinkLocalAddress())
+ localAddrs.add(addr);
+ }
}
+
+ localAddrs = filterReachable(localAddrs);
+
+ for (InetAddress addr : localAddrs)
+ addresses(addr, addrs, hostNames);
+
+ if (F.isEmpty(addrs))
+ throw new IgniteCheckedException("No network addresses found (is networking enabled?).");
+
+ res = F.t(addrs, hostNames);
+
+ cachedLocalAddr = res;
}
- if (F.isEmpty(addrs))
- throw new IgniteCheckedException("No network addresses found (is networking enabled?).");
+ return res;
}
- else
- addresses(locAddr, addrs, hostNames);
+
+ addresses(locAddr, addrs, hostNames);
return F.t(addrs, hostNames);
}
[13/14] incubator-ignite git commit: Merge remote-tracking branch
'remotes/origin/ignite-11' into sprint-2
Posted by ak...@apache.org.
Merge remote-tracking branch 'remotes/origin/ignite-11' into sprint-2
Project: http://git-wip-us.apache.org/repos/asf/incubator-ignite/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-ignite/commit/c9f46c1b
Tree: http://git-wip-us.apache.org/repos/asf/incubator-ignite/tree/c9f46c1b
Diff: http://git-wip-us.apache.org/repos/asf/incubator-ignite/diff/c9f46c1b
Branch: refs/heads/ignite-187
Commit: c9f46c1b39577c82d1084f13ffedb965a8e2c83c
Parents: 036bd71 6130f7e
Author: sevdokimov <se...@jetbrains.com>
Authored: Sun Mar 1 22:59:09 2015 +0300
Committer: sevdokimov <se...@jetbrains.com>
Committed: Sun Mar 1 22:59:09 2015 +0300
----------------------------------------------------------------------
.../ignite/internal/util/IgniteUtils.java | 90 ++++++++++--
.../spi/discovery/tcp/TcpDiscoverySpi.java | 137 +++++++++++--------
.../discovery/tcp/TcpDiscoverySpiAdapter.java | 116 ++++++++++++++++
3 files changed, 275 insertions(+), 68 deletions(-)
----------------------------------------------------------------------
[10/14] incubator-ignite git commit: sprint-2 - Added
isWithinTransaction() method to session.
Posted by ak...@apache.org.
sprint-2 - Added isWithinTransaction() method to session.
Project: http://git-wip-us.apache.org/repos/asf/incubator-ignite/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-ignite/commit/16105ec9
Tree: http://git-wip-us.apache.org/repos/asf/incubator-ignite/tree/16105ec9
Diff: http://git-wip-us.apache.org/repos/asf/incubator-ignite/diff/16105ec9
Branch: refs/heads/ignite-187
Commit: 16105ec9687732d0b01cfeaee9a5b1c227b0921f
Parents: 6097e7b
Author: Dmitiry Setrakyan <ds...@gridgain.com>
Authored: Sat Feb 28 09:44:30 2015 -0800
Committer: Dmitiry Setrakyan <ds...@gridgain.com>
Committed: Sat Feb 28 09:44:30 2015 -0800
----------------------------------------------------------------------
.../store/jdbc/CacheJdbcPersonStore.java | 110 +++++++------------
.../ignite/cache/store/CacheStoreSession.java | 9 ++
.../processors/cache/GridCacheStoreManager.java | 6 +-
.../junits/cache/TestCacheSession.java | 5 +
.../cache/TestThreadLocalCacheSession.java | 5 +
5 files changed, 62 insertions(+), 73 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/16105ec9/examples/src/main/java/org/apache/ignite/examples/datagrid/store/jdbc/CacheJdbcPersonStore.java
----------------------------------------------------------------------
diff --git a/examples/src/main/java/org/apache/ignite/examples/datagrid/store/jdbc/CacheJdbcPersonStore.java b/examples/src/main/java/org/apache/ignite/examples/datagrid/store/jdbc/CacheJdbcPersonStore.java
index d80861d..0473280 100644
--- a/examples/src/main/java/org/apache/ignite/examples/datagrid/store/jdbc/CacheJdbcPersonStore.java
+++ b/examples/src/main/java/org/apache/ignite/examples/datagrid/store/jdbc/CacheJdbcPersonStore.java
@@ -22,7 +22,6 @@ import org.apache.ignite.cache.store.*;
import org.apache.ignite.examples.datagrid.store.*;
import org.apache.ignite.lang.*;
import org.apache.ignite.resources.*;
-import org.apache.ignite.transactions.*;
import org.jetbrains.annotations.*;
import javax.cache.*;
@@ -72,8 +71,6 @@ public class CacheJdbcPersonStore extends CacheStoreAdapter<Long, Person> {
/** {@inheritDoc} */
@Override public void txEnd(boolean commit) {
- Transaction tx = transaction();
-
Map<String, Connection> props = ses.properties();
try (Connection conn = props.remove(ATTR_NAME)) {
@@ -84,23 +81,21 @@ public class CacheJdbcPersonStore extends CacheStoreAdapter<Long, Person> {
conn.rollback();
}
- System.out.println(">>> Transaction ended [xid=" + tx.xid() + ", commit=" + commit + ']');
+ System.out.println(">>> Transaction ended [commit=" + commit + ']');
}
catch (SQLException e) {
- throw new CacheWriterException("Failed to end transaction [xid=" + tx.xid() + ", commit=" + commit + ']', e);
+ throw new CacheWriterException("Failed to end transaction: " + ses.transaction(), e);
}
}
/** {@inheritDoc} */
@Override public Person load(Long key) {
- Transaction tx = transaction();
-
- System.out.println(">>> Store load [key=" + key + ", xid=" + (tx == null ? null : tx.xid()) + ']');
+ System.out.println(">>> Loading key: " + key);
Connection conn = null;
try {
- conn = connection(tx);
+ conn = connection();
try (PreparedStatement st = conn.prepareStatement("select * from PERSONS where id=?")) {
st.setString(1, key.toString());
@@ -108,14 +103,14 @@ public class CacheJdbcPersonStore extends CacheStoreAdapter<Long, Person> {
ResultSet rs = st.executeQuery();
if (rs.next())
- return person(rs.getLong(1), rs.getString(2), rs.getString(3));
+ return new Person(rs.getLong(1), rs.getString(2), rs.getString(3));
}
}
catch (SQLException e) {
throw new CacheLoaderException("Failed to load object: " + key, e);
}
finally {
- end(tx, conn);
+ end(conn);
}
return null;
@@ -123,60 +118,57 @@ public class CacheJdbcPersonStore extends CacheStoreAdapter<Long, Person> {
/** {@inheritDoc} */
@Override public void write(Cache.Entry<? extends Long, ? extends Person> entry) {
- Transaction tx = transaction();
-
Long key = entry.getKey();
Person val = entry.getValue();
- System.out.println(">>> Store put [key=" + key + ", val=" + val + ", xid=" + (tx == null ? null : tx.xid()) + ']');
+ System.out.println(">>> Putting [key=" + key + ", val=" + val + ']');
Connection conn = null;
try {
- conn = connection(tx);
+ conn = connection();
- int updated;
+ int updated;
- try (PreparedStatement st = conn.prepareStatement(
- "update PERSONS set firstName=?, lastName=? where id=?")) {
- st.setString(1, val.getFirstName());
- st.setString(2, val.getLastName());
- st.setLong(3, val.getId());
+ // Try update first.
+ try (PreparedStatement st = conn.prepareStatement(
+ "update PERSONS set firstName=?, lastName=? where id=?")) {
+ st.setString(1, val.getFirstName());
+ st.setString(2, val.getLastName());
+ st.setLong(3, val.getId());
- updated = st.executeUpdate();
- }
+ updated = st.executeUpdate();
+ }
- // If update failed, try to insert.
- if (updated == 0) {
- try (PreparedStatement st = conn.prepareStatement(
- "insert into PERSONS (id, firstName, lastName) values(?, ?, ?)")) {
- st.setLong(1, val.getId());
- st.setString(2, val.getFirstName());
- st.setString(3, val.getLastName());
+ // If update failed, try to insert.
+ if (updated == 0) {
+ try (PreparedStatement st = conn.prepareStatement(
+ "insert into PERSONS (id, firstName, lastName) values(?, ?, ?)")) {
+ st.setLong(1, val.getId());
+ st.setString(2, val.getFirstName());
+ st.setString(3, val.getLastName());
- st.executeUpdate();
+ st.executeUpdate();
+ }
}
}
- }
catch (SQLException e) {
throw new CacheLoaderException("Failed to put object [key=" + key + ", val=" + val + ']', e);
}
finally {
- end(tx, conn);
+ end(conn);
}
}
/** {@inheritDoc} */
@Override public void delete(Object key) {
- Transaction tx = transaction();
-
- System.out.println(">>> Store remove [key=" + key + ", xid=" + (tx == null ? null : tx.xid()) + ']');
+ System.out.println(">>> Removing key: " + key);
Connection conn = null;
try {
- conn = connection(tx);
+ conn = connection();
try (PreparedStatement st = conn.prepareStatement("delete from PERSONS where id=?")) {
st.setLong(1, (Long)key);
@@ -188,7 +180,7 @@ public class CacheJdbcPersonStore extends CacheStoreAdapter<Long, Person> {
throw new CacheWriterException("Failed to remove object: " + key, e);
}
finally {
- end(tx, conn);
+ end(conn);
}
}
@@ -199,17 +191,13 @@ public class CacheJdbcPersonStore extends CacheStoreAdapter<Long, Person> {
final int entryCnt = (Integer)args[0];
- Connection conn = null;
-
- try {
- conn = connection(null);
-
+ try (Connection conn = connection()) {
try (PreparedStatement st = conn.prepareStatement("select * from PERSONS")) {
try (ResultSet rs = st.executeQuery()) {
int cnt = 0;
while (cnt < entryCnt && rs.next()) {
- Person person = person(rs.getLong(1), rs.getString(2), rs.getString(3));
+ Person person = new Person(rs.getLong(1), rs.getString(2), rs.getString(3));
clo.apply(person.getId(), person);
@@ -223,18 +211,16 @@ public class CacheJdbcPersonStore extends CacheStoreAdapter<Long, Person> {
catch (SQLException e) {
throw new CacheLoaderException("Failed to load values from cache store.", e);
}
- finally {
- end(null, conn);
- }
}
/**
- * @param tx Cache transaction.
* @return Connection.
* @throws SQLException In case of error.
*/
- private Connection connection(@Nullable Transaction tx) throws SQLException {
- if (tx != null) {
+ private Connection connection() throws SQLException {
+ // If there is an ongoing transaction,
+ // we must reuse the same connection.
+ if (ses.isWithinTransaction()) {
Map<Object, Object> props = ses.properties();
Connection conn = (Connection)props.get(ATTR_NAME);
@@ -257,11 +243,10 @@ public class CacheJdbcPersonStore extends CacheStoreAdapter<Long, Person> {
/**
* Closes allocated resources depending on transaction status.
*
- * @param tx Active transaction, if any.
* @param conn Allocated connection.
*/
- private void end(@Nullable Transaction tx, @Nullable Connection conn) {
- if (tx == null && conn != null) {
+ private void end(@Nullable Connection conn) {
+ if (!ses.isWithinTransaction() && conn != null) {
// Close connection right away if there is no transaction.
try {
conn.close();
@@ -286,23 +271,4 @@ public class CacheJdbcPersonStore extends CacheStoreAdapter<Long, Person> {
return conn;
}
-
- /**
- * Builds person object out of provided values.
- *
- * @param id ID.
- * @param firstName First name.
- * @param lastName Last name.
- * @return Person.
- */
- private Person person(Long id, String firstName, String lastName) {
- return new Person(id, firstName, lastName);
- }
-
- /**
- * @return Current transaction.
- */
- private Transaction transaction() {
- return ses != null ? ses.transaction() : null;
- }
}
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/16105ec9/modules/core/src/main/java/org/apache/ignite/cache/store/CacheStoreSession.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/cache/store/CacheStoreSession.java b/modules/core/src/main/java/org/apache/ignite/cache/store/CacheStoreSession.java
index a2be4c5..38fe95c 100644
--- a/modules/core/src/main/java/org/apache/ignite/cache/store/CacheStoreSession.java
+++ b/modules/core/src/main/java/org/apache/ignite/cache/store/CacheStoreSession.java
@@ -43,6 +43,15 @@ public interface CacheStoreSession {
public Transaction transaction();
/**
+ * Returns {@code true} if performing store operation within a transaction,
+ * {@code false} otherwise. Analogous to calling {@code transaction() != null}.
+ *
+ * @return {@code True} if performing store operation within a transaction,
+ * {@code false} otherwise.
+ */
+ public boolean isWithinTransaction();
+
+ /**
* Gets current session properties. You can add properties directly to the
* returned map.
*
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/16105ec9/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheStoreManager.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheStoreManager.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheStoreManager.java
index fac6ea3..9262a8f 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheStoreManager.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheStoreManager.java
@@ -36,7 +36,6 @@ import org.jetbrains.annotations.*;
import javax.cache.*;
import javax.cache.integration.*;
-import java.lang.reflect.*;
import java.util.*;
/**
@@ -913,6 +912,11 @@ public class GridCacheStoreManager<K, V> extends GridCacheManagerAdapter<K, V> {
}
/** {@inheritDoc} */
+ @Override public boolean isWithinTransaction() {
+ return transaction() != null;
+ }
+
+ /** {@inheritDoc} */
@SuppressWarnings("unchecked")
@Override public <K1, V1> Map<K1, V1> properties() {
SessionData ses0 = sesHolder.get();
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/16105ec9/modules/core/src/test/java/org/apache/ignite/testframework/junits/cache/TestCacheSession.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/apache/ignite/testframework/junits/cache/TestCacheSession.java b/modules/core/src/test/java/org/apache/ignite/testframework/junits/cache/TestCacheSession.java
index cca20fe..0709880 100644
--- a/modules/core/src/test/java/org/apache/ignite/testframework/junits/cache/TestCacheSession.java
+++ b/modules/core/src/test/java/org/apache/ignite/testframework/junits/cache/TestCacheSession.java
@@ -50,6 +50,11 @@ public class TestCacheSession implements CacheStoreSession {
}
/** {@inheritDoc} */
+ @Override public boolean isWithinTransaction() {
+ return transaction() != null;
+ }
+
+ /** {@inheritDoc} */
@SuppressWarnings("unchecked")
@Override public <K, V> Map<K, V> properties() {
if (props == null)
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/16105ec9/modules/core/src/test/java/org/apache/ignite/testframework/junits/cache/TestThreadLocalCacheSession.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/apache/ignite/testframework/junits/cache/TestThreadLocalCacheSession.java b/modules/core/src/test/java/org/apache/ignite/testframework/junits/cache/TestThreadLocalCacheSession.java
index 6687f1f..2bbcf1b 100644
--- a/modules/core/src/test/java/org/apache/ignite/testframework/junits/cache/TestThreadLocalCacheSession.java
+++ b/modules/core/src/test/java/org/apache/ignite/testframework/junits/cache/TestThreadLocalCacheSession.java
@@ -49,6 +49,11 @@ public class TestThreadLocalCacheSession implements CacheStoreSession {
}
/** {@inheritDoc} */
+ @Override public boolean isWithinTransaction() {
+ return transaction() != null;
+ }
+
+ /** {@inheritDoc} */
@SuppressWarnings("unchecked")
@Override public <K, V> Map<K, V> properties() {
TestCacheSession ses = sesHolder.get();