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 2017/01/18 15:27:41 UTC
[5/9] ignite git commit: debug
debug
Project: http://git-wip-us.apache.org/repos/asf/ignite/repo
Commit: http://git-wip-us.apache.org/repos/asf/ignite/commit/3447cd4b
Tree: http://git-wip-us.apache.org/repos/asf/ignite/tree/3447cd4b
Diff: http://git-wip-us.apache.org/repos/asf/ignite/diff/3447cd4b
Branch: refs/heads/ignite-db-x-opt
Commit: 3447cd4b3e5869fe49aa6882a351131e3faa42cd
Parents: 177f399
Author: sboikov <sb...@gridgain.com>
Authored: Thu Dec 15 18:54:42 2016 +0300
Committer: sboikov <sb...@gridgain.com>
Committed: Thu Dec 15 18:54:42 2016 +0300
----------------------------------------------------------------------
.../ignite/internal/GridKernalContextImpl.java | 4 +--
.../cache/IgniteCacheOffheapManagerImpl.java | 35 ++++++++++++++++----
.../cache/database/freelist/FreeListImpl.java | 12 ++++---
.../cache/database/tree/io/DataPageIO.java | 4 ---
.../dht/atomic/GridDhtAtomicCache.java | 12 +------
.../ignite/internal/util/PutStatistic.java | 11 +++---
.../cache/IgniteSqlQueryPutBenchmark.java | 25 ++------------
7 files changed, 45 insertions(+), 58 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/ignite/blob/3447cd4b/modules/core/src/main/java/org/apache/ignite/internal/GridKernalContextImpl.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/GridKernalContextImpl.java b/modules/core/src/main/java/org/apache/ignite/internal/GridKernalContextImpl.java
index d7c6e5d..29cff66 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/GridKernalContextImpl.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/GridKernalContextImpl.java
@@ -445,9 +445,9 @@ public class GridKernalContextImpl implements GridKernalContext, Externalizable
@Override public void run() {
try {
while (true) {
- stat0.dump(log0);
+ Thread.sleep(10000);
- Thread.sleep(5000);
+ stat0.dump(log0);
}
}
catch (Exception e) {
http://git-wip-us.apache.org/repos/asf/ignite/blob/3447cd4b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/IgniteCacheOffheapManagerImpl.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/IgniteCacheOffheapManagerImpl.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/IgniteCacheOffheapManagerImpl.java
index da2c070..2343bb9 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/IgniteCacheOffheapManagerImpl.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/IgniteCacheOffheapManagerImpl.java
@@ -50,9 +50,11 @@ import org.apache.ignite.internal.processors.cache.local.GridLocalCache;
import org.apache.ignite.internal.processors.cache.query.GridCacheQueryManager;
import org.apache.ignite.internal.processors.cache.version.GridCacheVersion;
import org.apache.ignite.internal.processors.query.GridQueryProcessor;
+import org.apache.ignite.internal.util.CacheStatistics;
import org.apache.ignite.internal.util.GridAtomicLong;
import org.apache.ignite.internal.util.GridCloseableIteratorAdapter;
import org.apache.ignite.internal.util.GridEmptyCloseableIterator;
+import org.apache.ignite.internal.util.PutStatistic;
import org.apache.ignite.internal.util.lang.GridCloseableIterator;
import org.apache.ignite.internal.util.lang.GridCursor;
import org.apache.ignite.internal.util.lang.GridIterator;
@@ -67,6 +69,7 @@ import org.jetbrains.annotations.Nullable;
import static org.apache.ignite.internal.pagemem.PageIdAllocator.FLAG_IDX;
import static org.apache.ignite.internal.pagemem.PageIdAllocator.INDEX_PARTITION;
import static org.apache.ignite.internal.util.PutStatistic.Ops.FIND_ONE;
+import static org.apache.ignite.internal.util.PutStatistic.Ops.IDX_UPDATE;
import static org.apache.ignite.internal.util.PutStatistic.Ops.STORE_ADD;
import static org.apache.ignite.internal.util.PutStatistic.Ops.STORE_RMV;
import static org.apache.ignite.internal.util.PutStatistic.Ops.TREE_PUT;
@@ -97,6 +100,8 @@ public class IgniteCacheOffheapManagerImpl extends GridCacheManagerAdapter imple
/** */
private final GridAtomicLong globalRmvId = new GridAtomicLong(U.currentTimeMillis() * 1000_000);
+ private ConcurrentMap<KeyCacheObject, CacheDataRow> data = new ConcurrentHashMap<>();
+
/** {@inheritDoc} */
@Override public GridAtomicLong globalRemoveId() {
return globalRmvId;
@@ -837,11 +842,17 @@ public class IgniteCacheOffheapManagerImpl extends GridCacheManagerAdapter imple
key.valueBytes(cctx.cacheObjectContext());
val.valueBytes(cctx.cacheObjectContext());
- cctx.stats().opStart(STORE_ADD);
+ if (true) {
+ cctx.stats().opStart(TREE_PUT);
- rowStore.addRow(dataRow);
+ data.put(key, dataRow);
+
+ cctx.stats().opEnd(TREE_PUT);
+
+ return;
+ }
- cctx.stats().opEnd(STORE_ADD);
+ rowStore.addRow(dataRow);
assert dataRow.link() != 0 : dataRow;
@@ -855,6 +866,8 @@ public class IgniteCacheOffheapManagerImpl extends GridCacheManagerAdapter imple
storageSize.incrementAndGet();
if (indexingEnabled) {
+ cctx.stats().opStart(IDX_UPDATE);
+
GridCacheQueryManager qryMgr = cctx.queries();
assert qryMgr.enabled();
@@ -863,19 +876,26 @@ public class IgniteCacheOffheapManagerImpl extends GridCacheManagerAdapter imple
qryMgr.store(key, p, old.value(), old.version(), val, ver, expireTime, dataRow.link());
else
qryMgr.store(key, p, null, null, val, ver, expireTime, dataRow.link());
+
+ cctx.stats().opEnd(IDX_UPDATE);
}
if (old != null) {
assert old.link() != 0 : old;
- if (pendingEntries != null && old.expireTime() != 0)
+ if (pendingEntries != null && old.expireTime() != 0) {
+ if (true)
+ throw new IgniteCheckedException("Error");
+
pendingEntries.remove(new PendingRow(old.expireTime(), old.link()));
+ }
- cctx.stats().opStart(STORE_RMV);
+ CacheStatistics.opStart(PutStatistic.Ops.STORE_RMV);
rowStore.removeRow(old.link());
- cctx.stats().opEnd(STORE_RMV);
+ CacheStatistics.opEnd(PutStatistic.Ops.STORE_RMV);
+
}
if (pendingEntries != null && expireTime != 0)
@@ -920,7 +940,8 @@ public class IgniteCacheOffheapManagerImpl extends GridCacheManagerAdapter imple
cctx.stats().opStart(FIND_ONE);
try {
- return dataTree.findOne(new KeySearchRow(key.hashCode(), key, 0));
+ return data.get(key);
+ //return dataTree.findOne(new KeySearchRow(key.hashCode(), key, 0));
}
finally {
cctx.stats().opEnd(FIND_ONE);
http://git-wip-us.apache.org/repos/asf/ignite/blob/3447cd4b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/database/freelist/FreeListImpl.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/database/freelist/FreeListImpl.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/database/freelist/FreeListImpl.java
index 5568867..43c6a46 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/database/freelist/FreeListImpl.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/database/freelist/FreeListImpl.java
@@ -83,25 +83,25 @@ public class FreeListImpl extends PagesList implements FreeList, ReuseList {
assert oldFreeSpace > 0 : oldFreeSpace;
- CacheStatistics.opStart(PutStatistic.Ops.DATA_ADD);
+ CacheStatistics.opStart(PutStatistic.Ops.STORE_ADD);
// If the full row does not fit into this page write only a fragment.
written = (written == 0 && oldFreeSpace >= rowSize) ? addRow(page, buf, io, row, rowSize):
addRowFragment(page, buf, io, row, written, rowSize);
- CacheStatistics.opEnd(PutStatistic.Ops.DATA_ADD);
+ CacheStatistics.opEnd(PutStatistic.Ops.STORE_ADD);
// Reread free space after update.
int newFreeSpace = io.getFreeSpace(buf);
if (newFreeSpace > MIN_PAGE_FREE_SPACE) {
- CacheStatistics.opStart(PutStatistic.Ops.FREE_LIST_PUT);
+ CacheStatistics.opStart(PutStatistic.Ops.STORE_ADD_FREE_LIST_PUT);
int bucket = bucket(newFreeSpace, false);
put(null, page, buf, bucket);
- CacheStatistics.opEnd(PutStatistic.Ops.FREE_LIST_PUT);
+ CacheStatistics.opEnd(PutStatistic.Ops.STORE_ADD_FREE_LIST_PUT);
}
// Avoid boxing with garbage generation for usual case.
@@ -222,9 +222,13 @@ public class FreeListImpl extends PagesList implements FreeList, ReuseList {
int oldBucket = bucket(oldFreeSpace, false);
if (oldBucket != newBucket) {
+ CacheStatistics.opStart(PutStatistic.Ops.STORE_RMV_FREE_LIST_PUT);
+
// It is possible that page was concurrently taken for put, in this case put will handle bucket change.
if (removeDataPage(page, buf, io, oldBucket))
put(null, page, buf, newBucket);
+
+ CacheStatistics.opEnd(PutStatistic.Ops.STORE_RMV_FREE_LIST_PUT);
}
}
else
http://git-wip-us.apache.org/repos/asf/ignite/blob/3447cd4b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/database/tree/io/DataPageIO.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/database/tree/io/DataPageIO.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/database/tree/io/DataPageIO.java
index a282d98..816a575 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/database/tree/io/DataPageIO.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/database/tree/io/DataPageIO.java
@@ -1129,8 +1129,6 @@ public class DataPageIO extends PageIO {
private int compactDataEntries(ByteBuffer buf, int directCnt) {
assert checkCount(directCnt) : directCnt;
- CacheStatistics.opStart(PutStatistic.Ops.DATA_ADD1);
-
int[] offs = new int[directCnt];
for (int i = 0; i < directCnt; i++) {
@@ -1208,8 +1206,6 @@ public class DataPageIO extends PageIO {
prevOff = off;
}
- CacheStatistics.opEnd(PutStatistic.Ops.DATA_ADD1);
-
return prevOff;
}
http://git-wip-us.apache.org/repos/asf/ignite/blob/3447cd4b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/atomic/GridDhtAtomicCache.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/atomic/GridDhtAtomicCache.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/atomic/GridDhtAtomicCache.java
index c5ed1e7..2916050 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/atomic/GridDhtAtomicCache.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/atomic/GridDhtAtomicCache.java
@@ -1692,8 +1692,6 @@ public class GridDhtAtomicCache<K, V> extends GridDhtCacheAdapter<K, V> {
GridNearAtomicAbstractUpdateRequest req,
CI2<GridNearAtomicAbstractUpdateRequest, GridNearAtomicUpdateResponse> completionCb
) {
- ctx.stats().opStart(UPDATE_INTERNAL);
-
GridNearAtomicUpdateResponse res = new GridNearAtomicUpdateResponse(ctx.cacheId(), nodeId, req.futureVersion(),
ctx.deploymentEnabled());
@@ -1710,12 +1708,8 @@ public class GridDhtAtomicCache<K, V> extends GridDhtCacheAdapter<K, V> {
try {
// If batch store update is enabled, we need to lock all entries.
// First, need to acquire locks on cache entries, then check filter.
- ctx.stats().opStart(LOCK);
-
List<GridDhtCacheEntry> locked = lockEntries(req, req.topologyVersion());
- ctx.stats().opEnd(LOCK);
-
Collection<IgniteBiTuple<GridDhtCacheEntry, GridCacheVersion>> deleted = null;
try {
@@ -1845,13 +1839,9 @@ public class GridDhtAtomicCache<K, V> extends GridDhtCacheAdapter<K, V> {
e.printStackTrace();
}
finally {
- ctx.stats().opStart(UNLOCK);
-
if (locked != null)
unlockEntries(locked, req.topologyVersion());
- ctx.stats().opEnd(UNLOCK);
-
// Enqueue if necessary after locks release.
if (deleted != null) {
assert !deleted.isEmpty();
@@ -1890,7 +1880,7 @@ public class GridDhtAtomicCache<K, V> extends GridDhtCacheAdapter<K, V> {
return;
}
finally {
- ctx.stats().opEnd(UPDATE_INTERNAL);
+ //ctx.stats().opEnd(UPDATE_INTERNAL);
}
if (remap) {
http://git-wip-us.apache.org/repos/asf/ignite/blob/3447cd4b/modules/core/src/main/java/org/apache/ignite/internal/util/PutStatistic.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/util/PutStatistic.java b/modules/core/src/main/java/org/apache/ignite/internal/util/PutStatistic.java
index 389dad7..9747d6c 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/util/PutStatistic.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/util/PutStatistic.java
@@ -62,19 +62,16 @@ public class PutStatistic extends OperationStatistic {
FREE_LIST_FIND,
/** */
- FREE_LIST_PUT,
+ STORE_ADD_FREE_LIST_PUT,
/** */
- DATA_ADD,
-
- /** */
- DATA_ADD1,
+ STORE_RMV_FREE_LIST_PUT,
/** */
- DATA_ADD2,
+ DATA_ADD,
/** */
- DATA_ADD3
+ IDX_UPDATE,
;
}
}
http://git-wip-us.apache.org/repos/asf/ignite/blob/3447cd4b/modules/yardstick/src/main/java/org/apache/ignite/yardstick/cache/IgniteSqlQueryPutBenchmark.java
----------------------------------------------------------------------
diff --git a/modules/yardstick/src/main/java/org/apache/ignite/yardstick/cache/IgniteSqlQueryPutBenchmark.java b/modules/yardstick/src/main/java/org/apache/ignite/yardstick/cache/IgniteSqlQueryPutBenchmark.java
index dfa4cbc..cf194e4 100644
--- a/modules/yardstick/src/main/java/org/apache/ignite/yardstick/cache/IgniteSqlQueryPutBenchmark.java
+++ b/modules/yardstick/src/main/java/org/apache/ignite/yardstick/cache/IgniteSqlQueryPutBenchmark.java
@@ -48,30 +48,9 @@ public class IgniteSqlQueryPutBenchmark extends IgniteCacheAbstractBenchmark<Int
@Override public boolean test(Map<Object, Object> ctx) throws Exception {
ThreadLocalRandom rnd = ThreadLocalRandom.current();
- if (rnd.nextBoolean()) {
- double salary = rnd.nextDouble() * args.range() * 1000;
+ int i = rnd.nextInt(args.range());
- double maxSalary = salary + 1000;
-
- Collection<Cache.Entry<Integer, Object>> entries = executeQuery(salary, maxSalary);
-
- for (Cache.Entry<Integer, Object> entry : entries) {
- Person p = (Person)entry.getValue();
-
- if (p.getSalary() < salary || p.getSalary() > maxSalary)
- throw new Exception("Invalid person retrieved [min=" + salary + ", max=" + maxSalary +
- ", person=" + p + ']');
- }
-
- qryCnt.getAndIncrement();
- }
- else {
- int i = rnd.nextInt(args.range());
-
- cache.put(i, new Person(i, "firstName" + i, "lastName" + i, i * 1000));
-
- putCnt.getAndIncrement();
- }
+ cache.put(i, new Person(i, "firstName" + i, "lastName" + i, i * 1000));
return true;
}