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/11 13:22:54 UTC
[20/25] ignite git commit: Merge remote-tracking branch
'remotes/community/ignite-gg-8.0.2.ea2' into ignite-gg-11810
http://git-wip-us.apache.org/repos/asf/ignite/blob/4183186a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/database/tree/io/PageMetaIO.java
----------------------------------------------------------------------
diff --cc modules/core/src/main/java/org/apache/ignite/internal/processors/cache/database/tree/io/PageMetaIO.java
index 413f306,8d12f7c..5e6dd87
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/database/tree/io/PageMetaIO.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/database/tree/io/PageMetaIO.java
@@@ -68,16 -72,17 +71,17 @@@ public class PageMetaIO extends PageIO
}
/** {@inheritDoc} */
- @Override public void initNewPage(ByteBuffer buf, long pageId) {
- super.initNewPage(buf, pageId);
+ @Override public void initNewPage(long pageAddr, long pageId, int pageSize) {
+ super.initNewPage(pageAddr, pageId, pageSize);
- setTreeRoot(pageAddr, 0);
- setReuseListRoot(pageAddr, 0);
- setLastSuccessfulFullBackupId(pageAddr, 0);
- setLastSuccessfulBackupId(pageAddr, 0);
- setNextBackupId(pageAddr, 1);
- setLastAllocatedIndex(pageAddr, 0);
- setCandidateAllocatedIndex(pageAddr, 0);
+ setTreeRoot(buf, 0);
+ setReuseListRoot(buf, 0);
+ setLastSuccessfulFullSnapshotId(buf, 0);
+ setLastSuccessfulSnapshotId(buf, 0);
+ setNextSnapshotTag(buf, 1);
+ setLastSuccessfulSnapshotTag(buf, 0);
+ setLastAllocatedIndex(buf, 0);
+ setCandidateAllocatedIndex(buf, 0);
}
/**
@@@ -121,10 -126,10 +125,10 @@@
}
/**
- * @param buf Buffer.
+ * @param pageAddr Page address.
*/
- public long getLastSuccessfulBackupId(long pageAddr) {
- return PageUtils.getLong(pageAddr, LAST_SUCCESSFUL_BACKUP_ID_OFF);
+ public long getLastSuccessfulSnapshotId(@NotNull ByteBuffer buf) {
+ return buf.getLong(LAST_SUCCESSFUL_SNAPSHOT_ID_OFF);
}
/**
@@@ -136,10 -141,10 +140,10 @@@
}
/**
- * @param buf Buffer.
+ * @param pageAddr Page address.
*/
- public long getLastSuccessfulFullBackupId(long pageAddr) {
- return PageUtils.getLong(pageAddr, LAST_SUCCESSFUL_FULL_BACKUP_ID_OFF);
+ public long getLastSuccessfulFullSnapshotId(@NotNull ByteBuffer buf) {
+ return buf.getLong(LAST_SUCCESSFUL_FULL_SNAPSHOT_ID_OFF);
}
/**
@@@ -174,16 -201,9 +200,9 @@@
}
/**
- * @param buf Buffer.
+ * @param pageAddr Page address.
*/
- public int getCandidateAllocatedIndex(@NotNull ByteBuffer buf) {
- return buf.getInt(CANDIDATE_ALLOCATED_INDEX_OFF);
+ public int getCandidateAllocatedIndex(long pageAddr) {
+ return PageUtils.getInt(pageAddr, CANDIDATE_ALLOCATED_INDEX_OFF);
}
-
- /**
- * @param pageAddr Page address.
- */
- public long getNextBackupId(long pageAddr) {
- return PageUtils.getLong(pageAddr, NEXT_BACKUP_ID_OFF);
- }
}
http://git-wip-us.apache.org/repos/asf/ignite/blob/4183186a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/database/tree/io/TrackingPageIO.java
----------------------------------------------------------------------
diff --cc modules/core/src/main/java/org/apache/ignite/internal/processors/cache/database/tree/io/TrackingPageIO.java
index 4beef7d,136ebff..a2fed21
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/database/tree/io/TrackingPageIO.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/database/tree/io/TrackingPageIO.java
@@@ -147,21 -149,21 +149,21 @@@ public class TrackingPageIO extends Pag
newSize += Long.bitCount(newVal);
- buf.putLong(sizeOff2 + SIZE_FIELD_SIZE + i, newVal);
+ PageUtils.putLong(buf, sizeOff2 + SIZE_FIELD_SIZE + i, newVal);
}
- for (i -= 8; i < len; i ++) {
- byte newVal = (byte) (PageUtils.getByte(buf, sizeOff + SIZE_FIELD_SIZE + i) | PageUtils.getByte(buf, sizeOff2 + SIZE_FIELD_SIZE + i));
+ for (; i < len; i ++) {
+ byte newVal = (byte) (buf.get(sizeOff + SIZE_FIELD_SIZE + i) | buf.get(sizeOff2 + SIZE_FIELD_SIZE + i));
newSize += Integer.bitCount(newVal & 0xFF);
- buf.put(sizeOff2 + SIZE_FIELD_SIZE + i, newVal);
+ PageUtils.putByte(buf, sizeOff2 + SIZE_FIELD_SIZE + i, newVal);
}
- buf.putShort(sizeOff2, (short)newSize);
+ PageUtils.putShort(buf, sizeOff2, (short)newSize);
}
- PageUtils.putLong(buf, LAST_BACKUP_OFFSET, nextBackupId);
+ buf.putLong(LAST_SNAPSHOT_TAG_OFFSET, nextSnapshotTag);
PageHandler.zeroMemory(buf, sizeOff, len + SIZE_FIELD_SIZE);
}
@@@ -191,10 -196,10 +196,10 @@@
byte byteToTest;
- if (useLeftHalf(curBackupId))
- byteToTest = PageUtils.getByte(buf, BITMAP_OFFSET + (idxToTest >> 3));
+ if (useLeftHalf(curSnapshotTag))
+ byteToTest = buf.get(BITMAP_OFFSET + (idxToTest >> 3));
else
- byteToTest = buf.get(BITMAP_OFFSET + SIZE_FIELD_SIZE + ((idxToTest + cntOfPage) >> 3));
+ byteToTest = PageUtils.getByte(buf, BITMAP_OFFSET + SIZE_FIELD_SIZE + ((idxToTest + cntOfPage) >> 3));
int testTemplate = 1 << (idxToTest & 0b111);
@@@ -214,10 -219,10 +219,10 @@@
if (dif != 0 && dif != 1)
return -1;
- if (useLeftHalf(backupId))
- return PageUtils.getShort(buf, SIZE_FIELD_OFFSET);
+ if (useLeftHalf(snapshotTag))
+ return buf.getShort(SIZE_FIELD_OFFSET);
else
- return buf.getShort(BITMAP_OFFSET + (countOfPageToTrack(pageSize) >> 3));
+ return PageUtils.getShort(buf, BITMAP_OFFSET + (countOfPageToTrack(pageSize) >> 3));
}
/**
http://git-wip-us.apache.org/repos/asf/ignite/blob/4183186a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/database/tree/util/PageHandler.java
----------------------------------------------------------------------
diff --cc modules/core/src/main/java/org/apache/ignite/internal/processors/cache/database/tree/util/PageHandler.java
index ccd8dee,fadf74d..222a6a0
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/database/tree/util/PageHandler.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/database/tree/util/PageHandler.java
@@@ -285,11 -275,38 +285,16 @@@ public abstract class PageHandler<X, R
(page.fullPageWalRecordPolicy() == FALSE || page.isDirty());
}
- /**
- * @param src Source.
- * @param dst Destination.
- * @param srcOff Source offset in bytes.
- * @param dstOff Destination offset in bytes.
- * @param cnt Bytes count to copy.
- */
- public static void copyMemory(ByteBuffer src, ByteBuffer dst, long srcOff, long dstOff, long cnt) {
- byte[] srcArr = src.hasArray() ? src.array() : null;
- byte[] dstArr = dst.hasArray() ? dst.array() : null;
- long srcArrOff = src.hasArray() ? src.arrayOffset() + GridUnsafe.BYTE_ARR_OFF : 0;
- long dstArrOff = dst.hasArray() ? dst.arrayOffset() + GridUnsafe.BYTE_ARR_OFF : 0;
-
- long srcPtr = src.isDirect() ? ((DirectBuffer)src).address() : 0;
- long dstPtr = dst.isDirect() ? ((DirectBuffer)dst).address() : 0;
-
- GridUnsafe.copyMemory(srcArr, srcPtr + srcArrOff + srcOff, dstArr, dstPtr + dstArrOff + dstOff, cnt);
+ public static void copyMemory(long srcAddr, long dstAddr, long srcOff, long dstOff, long cnt) {
+ GridUnsafe.copyMemory(null, srcAddr + srcOff, null, dstAddr + dstOff, cnt);
}
+ /**
- * Will zero memory in buf
- * @param buf Buffer.
++ * @param addr Address.
+ * @param off Offset.
+ * @param len Length.
+ */
- public static void zeroMemory(ByteBuffer buf, int off, int len) {
- if (buf.isDirect())
- GridUnsafe.setMemory(((DirectBuffer)buf).address() + off, len, (byte)0);
-
- else {
- for (int i = off; i < off + len; i++)
- buf.put(i, (byte)0); //TODO Optimize!
- }
+ public static void zeroMemory(long addr, int off, int len) {
+ GridUnsafe.setMemory(addr + off, len, (byte)0);
}
}
http://git-wip-us.apache.org/repos/asf/ignite/blob/4183186a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridDhtLocalPartition.java
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/ignite/blob/4183186a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/atomic/GridDhtAtomicCache.java
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/ignite/blob/4183186a/modules/core/src/main/java/org/apache/ignite/internal/util/GridUnsafe.java
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/ignite/blob/4183186a/modules/core/src/test/java/org/apache/ignite/internal/pagemem/impl/PageMemoryNoLoadSelfTest.java
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/ignite/blob/4183186a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/database/tree/io/TrackingPageIOTest.java
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/ignite/blob/4183186a/modules/indexing/src/test/java/org/apache/ignite/internal/processors/query/h2/GridIndexingSpiAbstractSelfTest.java
----------------------------------------------------------------------