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
----------------------------------------------------------------------