You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ignite.apache.org by sb...@apache.org on 2016/12/09 11:49:59 UTC
ignite git commit: Merge remote-tracking branch
'remotes/origin/master' into ignite-4371
Repository: ignite
Updated Branches:
refs/heads/ignite-4371 37a76190d -> 59d8cf683
Merge remote-tracking branch 'remotes/origin/master' into ignite-4371
# Conflicts:
# modules/core/src/main/java/org/apache/ignite/internal/managers/communication/GridIoMessageFactory.java
# modules/core/src/main/java/org/apache/ignite/internal/managers/communication/IgniteIoTestMessage.java
# modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCachePartitionExchangeManager.java
# modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCachePreloader.java
# modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCachePreloaderAdapter.java
# modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/preloader/GridDhtPartitionDemander.java
# modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/preloader/GridDhtPreloader.java
# modules/core/src/main/java/org/apache/ignite/spi/communication/tcp/TcpCommunicationSpi.java
Project: http://git-wip-us.apache.org/repos/asf/ignite/repo
Commit: http://git-wip-us.apache.org/repos/asf/ignite/commit/59d8cf68
Tree: http://git-wip-us.apache.org/repos/asf/ignite/tree/59d8cf68
Diff: http://git-wip-us.apache.org/repos/asf/ignite/diff/59d8cf68
Branch: refs/heads/ignite-4371
Commit: 59d8cf683ba6e4fcb18b898010fe15ae2fcfb84f
Parents: 37a7619
Author: sboikov <sb...@gridgain.com>
Authored: Fri Dec 9 14:49:51 2016 +0300
Committer: sboikov <sb...@gridgain.com>
Committed: Fri Dec 9 14:49:51 2016 +0300
----------------------------------------------------------------------
.../java/org/apache/ignite/BenchAtomic.java | 270 -------------------
.../cache/transactions/IgniteTxHandler.java | 9 +-
2 files changed, 2 insertions(+), 277 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/ignite/blob/59d8cf68/modules/core/src/main/java/org/apache/ignite/BenchAtomic.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/BenchAtomic.java b/modules/core/src/main/java/org/apache/ignite/BenchAtomic.java
deleted file mode 100644
index dd4dbcf..0000000
--- a/modules/core/src/main/java/org/apache/ignite/BenchAtomic.java
+++ /dev/null
@@ -1,270 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.apache.ignite;
-
-import java.util.concurrent.Semaphore;
-import java.util.concurrent.ThreadLocalRandom;
-import org.apache.ignite.cache.CacheAtomicWriteOrderMode;
-import org.apache.ignite.cache.CacheAtomicityMode;
-import org.apache.ignite.cache.CacheRebalanceMode;
-import org.apache.ignite.cache.CacheWriteSynchronizationMode;
-import org.apache.ignite.cluster.ClusterNode;
-import org.apache.ignite.configuration.CacheConfiguration;
-import org.apache.ignite.configuration.IgniteConfiguration;
-import org.apache.ignite.internal.IgniteKernal;
-import org.apache.ignite.internal.NodeStoppingException;
-import org.apache.ignite.internal.util.typedef.X;
-import org.apache.ignite.internal.util.typedef.internal.U;
-import org.apache.ignite.lang.IgniteFuture;
-import org.apache.ignite.lang.IgniteInClosure;
-import org.apache.ignite.spi.communication.tcp.TcpCommunicationSpi;
-import org.apache.ignite.transactions.Transaction;
-import org.apache.ignite.transactions.TransactionConcurrency;
-import org.apache.ignite.transactions.TransactionIsolation;
-import org.jsr166.LongAdder8;
-
-/**
- * Copy
- * scp -i ../.ssh/yzhdanov_key ignite_core_jar/ignite-core.jar yzhdanov@172.25.1.26:
- * Client.
- * java -DCHEAT_CACHE=1 -DIGNITE_QUIET=false -DIGNITE_OVERRIDE_MCAST_GRP=228.1.2.6 -server -Xmx3g -Xms3g -cp ignite-core.jar org.apache.ignite.BenchAtomic true 128 512
- *
- * Server
- * java -DCHEAT_CACHE=1 -DIGNITE_QUIET=false -DIGNITE_OVERRIDE_MCAST_GRP=228.1.2.6 -server -Xmx3g -Xms3g -cp ignite-core.jar org.apache.ignite.BenchAtomic false
- *
- * -XX:+PrintGCDetails -XX:+PrintGCTimeStamps -XX:+PrintGCDateStamps -XX:+PrintHeapAtGC -XX:+PrintTenuringDistribution -Xloggc:~/`date +%Y%m%d%H%M%S`gc.log
- */
-public class BenchAtomic {
- public static final int KEYS = 100_000;
-
- public static void main(String[] args) throws InterruptedException {
- boolean client = Boolean.parseBoolean(args[0]);
- int threadCnt = args.length > 1 ? Integer.parseInt(args[1]) : 64;
- final int payLoad = args.length > 2 ? Integer.parseInt(args[2]) : 512;
- final CacheWriteSynchronizationMode writeSync = args.length > 3 ?
- CacheWriteSynchronizationMode.valueOf(args[3]) : CacheWriteSynchronizationMode.FULL_SYNC;
-
- String locHost = System.getProperty("LOC_HOST");
- int msgQLim = Integer.getInteger(
- "MSG_Q_LIM",
- 0);
- final boolean ioTest = Boolean.getBoolean("IO_TEST");
- final boolean ioTestNio = Boolean.getBoolean("IO_TEST_NIO");
- final int connPairs = Integer.getInteger("CONN_PAIRS", 1);
- final int selectors = Integer.getInteger("SELECTORS", 2);
- final boolean async = Boolean.getBoolean("ASYNC");
-
- System.out.println("Params [client=" + client +
- ", threads=" + threadCnt +
- ", payLoad=" + payLoad +
- ", writeSync=" + writeSync +
- ", locHost=" + locHost +
- ", msgQLim=" + msgQLim +
- ", ioTest=" + ioTest +
- ", ioTestNio=" + ioTestNio +
- ", selectors=" + selectors +
- ", async=" + async +
- ']');
-
- final Ignite ignite = Ignition.start(
- config(
- null,
- client,
- msgQLim,
- connPairs,
- locHost,
- selectors));
-
- if (!client)
- return;
-
- final LongAdder8 cnt = new LongAdder8();
-
- new Thread(
- new Runnable() {
- @Override public void run() {
- long avg = 0;
- int i = 0;
-
- for (;;) {
- try {
- Thread.sleep(1000);
- }
- catch (InterruptedException e) {
- e.printStackTrace();
- }
-
- long c;
-
- System.out.println("TPS [cnt=" + (c = cnt.sumThenReset()) + ']');
-
- avg += c;
-
- i++;
-
- if (i == 30) {
- i = 0;
-
- System.out.println("30 sec avg: " + avg * 1.0 / 30);
-
- avg = 0;
- }
- }
- }
- }
- ).start();
-
- final IgniteCache<Integer, byte[]> cache0 = ignite.getOrCreateCache(
- BenchAtomic.<Integer, byte[]>cacheConfig(writeSync));
-
-// final IgniteCache<Integer, byte[]> asyncCache = cache0.withAsync();
-
- final Semaphore sem = new Semaphore(2048);
-
- final IgniteInClosure<IgniteFuture<Object>> lsnr = new IgniteInClosure<IgniteFuture<Object>>() {
- @Override public void apply(IgniteFuture<Object> future) {
- sem.release();
- }
- };
-
- final ClusterNode[] servers = ignite.cluster().forServers().nodes().toArray(new ClusterNode[0]);
-
- for (int i = 0; i < (async ? 32 : threadCnt); i++) {
- new Thread(
- new Runnable() {
- @Override public void run() {
- IgniteKernal kernal = (IgniteKernal)ignite;
-
- for (;;) {
- cnt.increment();
-
- byte[] val = new byte[ThreadLocalRandom.current().nextInt(
- 64,
- payLoad)];
-
- if (ioTest) {
- try {
- kernal.sendIoTest(
- servers[ThreadLocalRandom.current().nextInt(servers.length)],
- val,
- ioTestNio
- ).get();
- }
- catch (IgniteCheckedException e) {
- e.printStackTrace();
-
- return;
- }
-
- continue;
- }
-
- int key = ThreadLocalRandom.current().nextInt(KEYS);
-
-// if (async) {
-// sem.acquireUninterruptibly();
-//
-// asyncCache.put(key, val);
-//
-// IgniteFuture<Object> f = asyncCache.future();
-//
-// f.listen(lsnr);
-//
-// continue;
-// }
-
- boolean startTx = cache0.getConfiguration(CacheConfiguration.class).getAtomicityMode() ==
- CacheAtomicityMode.TRANSACTIONAL;
-
- try {
- Transaction tx = startTx ?
- ignite.transactions().txStart(TransactionConcurrency.PESSIMISTIC,
- TransactionIsolation.REPEATABLE_READ) :
- null;
-
- cache0.put(key,
- val);
-
- if (tx != null)
- tx.commit();
- }
- catch (Exception e) {
- if (!X.hasCause(e,
- NodeStoppingException.class))
- e.printStackTrace();
- else
- U.debug("Process stopping.");
-
- break;
- }
-
- }
- }
- }
- ).start();
- }
- }
-
- /**
- * @return Cache config.
- * @param writeSync
- */
- private static <K, V> CacheConfiguration<K, V> cacheConfig(CacheWriteSynchronizationMode writeSync) {
- return new CacheConfiguration<K, V>()
- .setName("1")
- .setAtomicityMode(CacheAtomicityMode.ATOMIC)
-// .setAtomicWriteOrderMode(CacheAtomicWriteOrderMode.PRIMARY)
- // .setAffinity(new FairAffinityFunction(1024))
- .setBackups(0)
- .setAtomicWriteOrderMode(CacheAtomicWriteOrderMode.PRIMARY)
- .setRebalanceMode(CacheRebalanceMode.SYNC)
- .setCopyOnRead(false)
-// .setMemoryMode(CacheMemoryMode.OFFHEAP_TIERED)
- .setWriteSynchronizationMode(writeSync);
- }
-
- private static IgniteConfiguration config(
- String name,
- boolean client,
- Integer msgQLim,
- int connPairs,
- String locHost,
- int selectors
- ) {
- TcpCommunicationSpi commSpi = new TcpCommunicationSpi();
-
- commSpi.setSharedMemoryPort(-1);
- commSpi.setMessageQueueLimit(msgQLim);
- commSpi.setConnectionsPerNode(connPairs);
- commSpi.setSelectorsCount(selectors);
-
- IgniteConfiguration cfg = new IgniteConfiguration()
- .setGridName(name)
- .setClientMode(client)
- .setLocalHost(locHost)
- .setCommunicationSpi(commSpi)
- .setMetricsLogFrequency(15000)
- .setConnectorConfiguration(null);
-
-
- if (U.isMacOs())
- cfg.setLocalHost("127.0.0.1");
-
- return cfg;
- }
-}
http://git-wip-us.apache.org/repos/asf/ignite/blob/59d8cf68/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/transactions/IgniteTxHandler.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/transactions/IgniteTxHandler.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/transactions/IgniteTxHandler.java
index 2db8b00..eaf1c87 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/transactions/IgniteTxHandler.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/transactions/IgniteTxHandler.java
@@ -472,13 +472,8 @@ public class IgniteTxHandler {
req.last());
if (tx.isRollbackOnly() && !tx.commitOnPrepare()) {
- try {
- if (tx.state() != TransactionState.ROLLED_BACK && tx.state() != TransactionState.ROLLING_BACK)
- tx.rollback();
- }
- catch (IgniteCheckedException e) {
- U.error(log, "Failed to rollback transaction: " + tx, e);
- }
+ if (tx.state() != TransactionState.ROLLED_BACK && tx.state() != TransactionState.ROLLING_BACK)
+ tx.rollbackAsync();
}
final GridDhtTxLocal tx0 = tx;