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/24 15:15:46 UTC
ignite git commit: ignite-3477 store single object per page
Repository: ignite
Updated Branches:
refs/heads/ignite-3477-no-compact [created] cd338e8e6
ignite-3477 store single object per page
Project: http://git-wip-us.apache.org/repos/asf/ignite/repo
Commit: http://git-wip-us.apache.org/repos/asf/ignite/commit/cd338e8e
Tree: http://git-wip-us.apache.org/repos/asf/ignite/tree/cd338e8e
Diff: http://git-wip-us.apache.org/repos/asf/ignite/diff/cd338e8e
Branch: refs/heads/ignite-3477-no-compact
Commit: cd338e8e6b1c35ffc5326a036993e5b31b401be2
Parents: 4db65d2
Author: sboikov <sb...@gridgain.com>
Authored: Tue Jan 24 18:13:26 2017 +0300
Committer: sboikov <sb...@gridgain.com>
Committed: Tue Jan 24 18:13:26 2017 +0300
----------------------------------------------------------------------
.../configuration/MemoryConfiguration.java | 2 +-
.../cache/database/freelist/FreeListImpl.java | 43 +++++++++++---------
2 files changed, 25 insertions(+), 20 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/ignite/blob/cd338e8e/modules/core/src/main/java/org/apache/ignite/configuration/MemoryConfiguration.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/configuration/MemoryConfiguration.java b/modules/core/src/main/java/org/apache/ignite/configuration/MemoryConfiguration.java
index 242354e..ed37784 100644
--- a/modules/core/src/main/java/org/apache/ignite/configuration/MemoryConfiguration.java
+++ b/modules/core/src/main/java/org/apache/ignite/configuration/MemoryConfiguration.java
@@ -29,7 +29,7 @@ public class MemoryConfiguration implements Serializable {
private static final long serialVersionUID = 0L;
/** Default cache size is 1Gb. */
- public static final long DFLT_PAGE_CACHE_SIZE = 1024 * 1024 * 1024;
+ public static final long DFLT_PAGE_CACHE_SIZE = 4L * 1024 * 1024 * 1024;
/** Default page size. */
public static final int DFLT_PAGE_SIZE = 2 * 1024;
http://git-wip-us.apache.org/repos/asf/ignite/blob/cd338e8e/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 87d5e4d..f4bb082 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
@@ -115,18 +115,20 @@ public class FreeListImpl extends PagesList implements FreeList, ReuseList {
assert oldFreeSpace > 0 : oldFreeSpace;
+ assert ((DataPageIO) iox).isEmpty(pageAddr);
+
// If the full row does not fit into this page write only a fragment.
written = (written == 0 && oldFreeSpace >= rowSize) ? addRow(page, pageAddr, io, row, rowSize):
addRowFragment(page, pageAddr, io, row, written, rowSize);
- // Reread free space after update.
- int newFreeSpace = io.getFreeSpace(pageAddr);
-
- if (newFreeSpace > MIN_PAGE_FREE_SPACE) {
- int bucket = bucket(newFreeSpace, false);
-
- put(null, page, pageAddr, bucket);
- }
+// // Reread free space after update.
+// int newFreeSpace = io.getFreeSpace(pageAddr);
+//
+// if (newFreeSpace > MIN_PAGE_FREE_SPACE) {
+// int bucket = bucket(newFreeSpace, false);
+//
+// put(null, page, pageAddr, bucket);
+// }
// Avoid boxing with garbage generation for usual case.
return written == rowSize ? COMPLETE : written;
@@ -221,6 +223,8 @@ public class FreeListImpl extends PagesList implements FreeList, ReuseList {
long nextLink = io.removeRow(pageAddr, itemId, pageSize());
+ assert io.isEmpty(pageAddr);
+
if (isWalDeltaRecordNeeded(wal, page))
wal.log(new DataPageRemoveRecord(cacheId, page.id(), itemId));
@@ -237,17 +241,18 @@ public class FreeListImpl extends PagesList implements FreeList, ReuseList {
if (newFreeSpace > MIN_PAGE_FREE_SPACE) {
int newBucket = bucket(newFreeSpace, false);
- if (oldFreeSpace > MIN_PAGE_FREE_SPACE) {
- int oldBucket = bucket(oldFreeSpace, false);
-
- if (oldBucket != newBucket) {
- // It is possible that page was concurrently taken for put, in this case put will handle bucket change.
- if (removeDataPage(page, pageAddr, io, oldBucket))
- put(null, page, pageAddr, newBucket);
- }
- }
- else
- put(null, page, pageAddr, newBucket);
+ put(null, page, pageAddr, newBucket);
+// if (oldFreeSpace > MIN_PAGE_FREE_SPACE) {
+// int oldBucket = bucket(oldFreeSpace, false);
+//
+// if (oldBucket != newBucket) {
+// // It is possible that page was concurrently taken for put, in this case put will handle bucket change.
+// if (removeDataPage(page, pageAddr, io, oldBucket))
+// put(null, page, pageAddr, newBucket);
+// }
+// }
+// else
+// put(null, page, pageAddr, newBucket);
}
// For common case boxed 0L will be cached inside of Long, so no garbage will be produced.