提交 8d94ec9e authored 作者: Thomas Mueller's avatar Thomas Mueller

MVStore: bugfixes

上级 e33531e7
...@@ -169,7 +169,7 @@ public class MVRTreeMap<V> extends MVMap<SpatialKey, V> { ...@@ -169,7 +169,7 @@ public class MVRTreeMap<V> extends MVMap<SpatialKey, V> {
// this will mark the old page as deleted // this will mark the old page as deleted
// so we need to update the parent in any case // so we need to update the parent in any case
// (otherwise the old page might be deleted again) // (otherwise the old page might be deleted again)
Page c = copyOnWrite(cOld, writeVersion, true); Page c = copyOnWrite(cOld, writeVersion);
long oldSize = c.getTotalCount(); long oldSize = c.getTotalCount();
result = remove(c, writeVersion, key); result = remove(c, writeVersion, key);
p.setChild(i, c); p.setChild(i, c);
...@@ -224,7 +224,7 @@ public class MVRTreeMap<V> extends MVMap<SpatialKey, V> { ...@@ -224,7 +224,7 @@ public class MVRTreeMap<V> extends MVMap<SpatialKey, V> {
beforeWrite(); beforeWrite();
try { try {
long v = writeVersion; long v = writeVersion;
Page p = copyOnWrite(root, v, true); Page p = copyOnWrite(root, v);
Object result; Object result;
if (alwaysAdd || get(key) == null) { if (alwaysAdd || get(key) == null) {
if (p.getMemory() > store.getPageSplitSize() && p.getKeyCount() > 1) { if (p.getMemory() > store.getPageSplitSize() && p.getKeyCount() > 1) {
...@@ -268,7 +268,7 @@ public class MVRTreeMap<V> extends MVMap<SpatialKey, V> { ...@@ -268,7 +268,7 @@ public class MVRTreeMap<V> extends MVMap<SpatialKey, V> {
if (!p.isLeaf()) { if (!p.isLeaf()) {
for (int i = 0; i < p.getKeyCount(); i++) { for (int i = 0; i < p.getKeyCount(); i++) {
if (contains(p, i, key)) { if (contains(p, i, key)) {
Page c = copyOnWrite(p.getChildPage(i), writeVersion, true); Page c = copyOnWrite(p.getChildPage(i), writeVersion);
Object result = set(c, writeVersion, key, value); Object result = set(c, writeVersion, key, value);
if (result == null) { if (result == null) {
throw DataUtils.newIllegalStateException( throw DataUtils.newIllegalStateException(
...@@ -314,11 +314,11 @@ public class MVRTreeMap<V> extends MVMap<SpatialKey, V> { ...@@ -314,11 +314,11 @@ public class MVRTreeMap<V> extends MVMap<SpatialKey, V> {
} }
} }
} }
Page c = copyOnWrite(p.getChildPage(index), writeVersion, true); Page c = copyOnWrite(p.getChildPage(index), writeVersion);
if (c.getMemory() > store.getPageSplitSize() && c.getKeyCount() > 1) { if (c.getMemory() > store.getPageSplitSize() && c.getKeyCount() > 1) {
// split on the way down // split on the way down
Page split = split(c, writeVersion); Page split = split(c, writeVersion);
p = copyOnWrite(p, writeVersion, true); p = copyOnWrite(p, writeVersion);
p.setKey(index, getBounds(c)); p.setKey(index, getBounds(c));
p.setChild(index, c); p.setChild(index, c);
p.setCounts(index, c); p.setCounts(index, c);
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论