Merge branch ignite-db-x into ignite-db-2

Project: http://git-wip-us.apache.org/repos/asf/ignite/repo
Commit: http://git-wip-us.apache.org/repos/asf/ignite/commit/cf5ad2bc
Tree: http://git-wip-us.apache.org/repos/asf/ignite/tree/cf5ad2bc
Diff: http://git-wip-us.apache.org/repos/asf/ignite/diff/cf5ad2bc

Branch: refs/heads/ignite-db-x-10884
Commit: cf5ad2bc7139d58364eccfe302d07b8943e28fbd
Parents: d67fa20 6d68db9
Author: Alexey Goncharuk <[email protected]>
Authored: Wed Apr 27 00:49:06 2016 -0700
Committer: Alexey Goncharuk <[email protected]>
Committed: Wed Apr 27 00:49:06 2016 -0700

----------------------------------------------------------------------
 .../internal/pagemem/DirectMemoryUtils.java     |  10 +
 .../ignite/internal/pagemem/FullPageId.java     |  44 +++-
 .../ignite/internal/pagemem/PageIdUtils.java    |  89 +++++---
 .../ignite/internal/pagemem/PageMemory.java     |   3 +-
 .../internal/pagemem/impl/FullPageIdTable.java  | 111 +++++++--
 .../ignite/internal/pagemem/impl/PageImpl.java  |   9 +
 .../internal/pagemem/impl/PageMemoryImpl.java   | 225 ++++++++++++++++++-
 .../pagemem/impl/PageIdUtilsSelfTest.java       |  39 ++++
 .../IgniteDbMultiNodePutGetSelfTest.java        |   5 +
 .../IgniteDbSingleNodePutGetSelfTest.java       | 120 ++++++++++
 10 files changed, 578 insertions(+), 77 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/ignite/blob/cf5ad2bc/modules/core/src/main/java/org/apache/ignite/internal/pagemem/impl/PageImpl.java
----------------------------------------------------------------------
diff --cc 
modules/core/src/main/java/org/apache/ignite/internal/pagemem/impl/PageImpl.java
index 1e1fb78,28d4a19..91e7798
--- 
a/modules/core/src/main/java/org/apache/ignite/internal/pagemem/impl/PageImpl.java
+++ 
b/modules/core/src/main/java/org/apache/ignite/internal/pagemem/impl/PageImpl.java
@@@ -161,12 -165,16 +165,14 @@@ class PageImpl extends AbstractQueuedSy
  
      /** {@inheritDoc} */
      @Override public ByteBuffer getForWrite() {
 -        Thread th = Thread.currentThread();
 +        acquire(1); // This call is not reentrant.
  
 -        if (getExclusiveOwnerThread() != th) {
 -            acquire(1);
 +        assert getExclusiveOwnerThread() == null: fullId();
  
 -            setExclusiveOwnerThread(th);
 +        setExclusiveOwnerThread(Thread.currentThread());
  
 -            pageMem.writeCurrentTimestamp(ptr);
 -        }
++        pageMem.writeCurrentTimestamp(ptr);
+ 
          return reset(buf);
      }
  

http://git-wip-us.apache.org/repos/asf/ignite/blob/cf5ad2bc/modules/core/src/main/java/org/apache/ignite/internal/pagemem/impl/PageMemoryImpl.java
----------------------------------------------------------------------
diff --cc 
modules/core/src/main/java/org/apache/ignite/internal/pagemem/impl/PageMemoryImpl.java
index 09e0df8,4422962..7611675
--- 
a/modules/core/src/main/java/org/apache/ignite/internal/pagemem/impl/PageMemoryImpl.java
+++ 
b/modules/core/src/main/java/org/apache/ignite/internal/pagemem/impl/PageMemoryImpl.java
@@@ -214,16 -223,18 +229,21 @@@ public class  PageMemoryImpl implement
                      break;
              }
  
 +            // Assign page ID according to flags and partition ID.
 +            pageId = PageIdUtils.pageId(partId, flags, pageId);
 +
              relPtr = allocateFreePage();
  
+             if (relPtr == INVALID_REL_PTR)
+                 throw new OutOfMemoryException();
+ 
              absPtr = absolute(relPtr);
 -
 -            writePageId(absPtr, pageId);
 -            writePageCacheId(absPtr, cacheId);
 -            writeCurrentTimestamp(absPtr);
          }
  
 +        writePageId(absPtr, pageId);
++        writePageCacheId(absPtr, cacheId);
++        writeCurrentTimestamp(absPtr);
 +
          // TODO pass an argument to decide whether the page should be cleaned.
          mem.setMemory(absPtr + PAGE_OVERHEAD, sysPageSize - PAGE_OVERHEAD, 
(byte)0);
  

http://git-wip-us.apache.org/repos/asf/ignite/blob/cf5ad2bc/modules/indexing/src/test/java/org/apache/ignite/internal/processors/database/IgniteDbSingleNodePutGetSelfTest.java
----------------------------------------------------------------------

Reply via email to