Repository: ignite Updated Branches: refs/heads/ignite-3477-no-wlock [created] 75dbef734
minor Project: http://git-wip-us.apache.org/repos/asf/ignite/repo Commit: http://git-wip-us.apache.org/repos/asf/ignite/commit/75dbef73 Tree: http://git-wip-us.apache.org/repos/asf/ignite/tree/75dbef73 Diff: http://git-wip-us.apache.org/repos/asf/ignite/diff/75dbef73 Branch: refs/heads/ignite-3477-no-wlock Commit: 75dbef7345372e315a19b82048f1842b7d842f9b Parents: 76cd44d Author: Yakov Zhdanov <[email protected]> Authored: Thu Mar 2 18:13:46 2017 +0300 Committer: Yakov Zhdanov <[email protected]> Committed: Thu Mar 2 18:13:46 2017 +0300 ---------------------------------------------------------------------- .../apache/ignite/internal/pagemem/impl/PageNoStoreImpl.java | 2 +- .../processors/cache/database/freelist/FreeListImpl.java | 6 +++++- 2 files changed, 6 insertions(+), 2 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/ignite/blob/75dbef73/modules/core/src/main/java/org/apache/ignite/internal/pagemem/impl/PageNoStoreImpl.java ---------------------------------------------------------------------- diff --git a/modules/core/src/main/java/org/apache/ignite/internal/pagemem/impl/PageNoStoreImpl.java b/modules/core/src/main/java/org/apache/ignite/internal/pagemem/impl/PageNoStoreImpl.java index e82b5d2..b32a7ae 100644 --- a/modules/core/src/main/java/org/apache/ignite/internal/pagemem/impl/PageNoStoreImpl.java +++ b/modules/core/src/main/java/org/apache/ignite/internal/pagemem/impl/PageNoStoreImpl.java @@ -53,7 +53,7 @@ public class PageNoStoreImpl implements Page { /** * @return Data pointer. */ - private long pointer() { + public long pointer() { return absPtr + PageMemoryNoStoreImpl.PAGE_OVERHEAD; } http://git-wip-us.apache.org/repos/asf/ignite/blob/75dbef73/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 d6debd8..80139dd 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 @@ -25,6 +25,7 @@ import org.apache.ignite.internal.pagemem.PageIdAllocator; import org.apache.ignite.internal.pagemem.PageIdUtils; import org.apache.ignite.internal.pagemem.PageMemory; import org.apache.ignite.internal.pagemem.PageUtils; +import org.apache.ignite.internal.pagemem.impl.PageNoStoreImpl; import org.apache.ignite.internal.pagemem.wal.IgniteWriteAheadLogManager; import org.apache.ignite.internal.pagemem.wal.record.delta.DataPageInsertFragmentRecord; import org.apache.ignite.internal.pagemem.wal.record.delta.DataPageInsertRecord; @@ -437,7 +438,10 @@ public class FreeListImpl extends PagesList implements FreeList, ReuseList { int itemId = PageIdUtils.itemId(link); try (Page page = pageMem.page(cacheId, pageId)) { - Boolean updated = writePage(pageMem, page, this, updateRow, row, itemId, null); + DataPageIO init = PageIO.getPageIO(((PageNoStoreImpl)page).pointer()); + + Boolean updated = updateRow.run(page, init, + ((PageNoStoreImpl)page).pointer(), row, itemId); assert updated != null; // Can't fail here.
