Revision: 135
http://polepos.svn.sourceforge.net/polepos/?rev=135&view=rev
Author: carlrosenberger
Date: 2010-10-05 13:12:22 +0000 (Tue, 05 Oct 2010)
Log Message:
-----------
cr + pr: Start on NestedLists implementation, for db4o only for now.
Modified Paths:
--------------
trunk/polepos/settings/Circuits.properties
trunk/polepos/settings/DebugCircuits.properties
trunk/polepos/src/org/polepos/RunSeason.java
trunk/polepos/src/org/polepos/circuits/barcelona/Barcelona.java
trunk/polepos/src/org/polepos/circuits/sepang/Sepang.java
trunk/polepos/src/org/polepos/enhance/AllEnhance.java
trunk/polepos/src/org/polepos/framework/DriverBase.java
trunk/polepos/src/org/polepos/framework/TurnSetup.java
trunk/polepos/src/org/polepos/framework/TurnSetupConfig.java
trunk/polepos/src/org/polepos/teams/cobra/SepangCobra.java
trunk/polepos/src/org/polepos/teams/db4o/Db4oTeam.java
trunk/polepos/src/org/polepos/teams/db4o/SepangDb4o.java
trunk/polepos/src/org/polepos/teams/hibernate/SepangHibernate.java
trunk/polepos/src/org/polepos/teams/jdbc/SepangJdbc.java
trunk/polepos/src/org/polepos/teams/jdo/JdoCar.java
trunk/polepos/src/org/polepos/teams/jdo/SepangJdo.java
trunk/polepos/src/org/polepos/teams/jdo/data/JdoTree.java
trunk/polepos/src/org/polepos/teams/jdo/data/package.jdo
trunk/polepos/src/org/polepos/teams/jpa/SepangJpa.java
trunk/polepos/src/org/polepos/teams/jvi/SepangJvi.java
Added Paths:
-----------
trunk/polepos/src/org/polepos/circuits/nestedlists/
trunk/polepos/src/org/polepos/circuits/nestedlists/NestedLists.java
trunk/polepos/src/org/polepos/data/ListHolder.java
trunk/polepos/src/org/polepos/enhance/VodEnhancer.java
trunk/polepos/src/org/polepos/framework/IdGenerator.java
trunk/polepos/src/org/polepos/framework/Procedure.java
trunk/polepos/src/org/polepos/framework/Visitor.java
trunk/polepos/src/org/polepos/teams/db4o/NestedListsDb4o.java
Modified: trunk/polepos/settings/Circuits.properties
===================================================================
--- trunk/polepos/settings/Circuits.properties 2010-07-01 11:39:10 UTC (rev 134)
+++ trunk/polepos/settings/Circuits.properties 2010-10-05 13:12:22 UTC (rev 135)
@@ -3,7 +3,7 @@
# Global settings for all circuits
-concurrency=true
+concurrency=false
threads=1,3,10
@@ -18,6 +18,18 @@
flatobject.updates=3000,3000,3000
flatobject.commitinterval=10000,10000,10000
+
+# nestedlists
+#
+# [reuse]: number of objects to reuse
+# [objects]: number of objects to store as leafs
+# [updates]: number of updates and deletes to be run
+# [depth]: depth of the tree
+nestedlists.reuse=1,5,15
+nestedlists.objects=30,30,30
+nestedlists.updates=10,10,10
+nestedlists.depth=4,4,4
+
# Settings for all circuits in the database benchmark.
# melbourne
Modified: trunk/polepos/settings/DebugCircuits.properties
===================================================================
--- trunk/polepos/settings/DebugCircuits.properties 2010-07-01 11:39:10 UTC (rev 134)
+++ trunk/polepos/settings/DebugCircuits.properties 2010-10-05 13:12:22 UTC (rev 135)
@@ -1,7 +1,7 @@
# Global settings for all circuits
-concurrency=true
+concurrency=false
threads=1,3,10
@@ -18,6 +18,18 @@
flatobject.commitinterval=100,100,100
+# nestedlists
+#
+# [reuse]: number of objects to reuse
+# [objects]: number of objects to store as leafs
+# [updates]: number of updates and deletes to be run
+# [depth]: depth of the tree
+nestedlists.reuse=1,2,3
+nestedlists.objects=10,10,30
+nestedlists.updates=2,2,2
+nestedlists.depth=2,2,2
+
+
# Settings for the database benchmark
# with short test runs for debugging only
# Results are not signifant
Modified: trunk/polepos/src/org/polepos/RunSeason.java
===================================================================
--- trunk/polepos/src/org/polepos/RunSeason.java 2010-07-01 11:39:10 UTC (rev 134)
+++ trunk/polepos/src/org/polepos/RunSeason.java 2010-10-05 13:12:22 UTC (rev 135)
@@ -26,6 +26,7 @@
import org.polepos.circuits.melbourne.*;
import org.polepos.circuits.monaco.*;
import org.polepos.circuits.montreal.*;
+import org.polepos.circuits.nestedlists.*;
import org.polepos.circuits.nurburgring.*;
import org.polepos.circuits.sepang.*;
import org.polepos.framework.*;
@@ -57,7 +58,10 @@
@Override
public CircuitBase[] circuits() {
return new CircuitBase[] {
+
// new ReflectiveCircuitBase(FlatObject.class),
+ // new ReflectiveCircuitBase(NestedLists.class),
+
new Melbourne(),
new Sepang(),
new Bahrain(),
Modified: trunk/polepos/src/org/polepos/circuits/barcelona/Barcelona.java
===================================================================
--- trunk/polepos/src/org/polepos/circuits/barcelona/Barcelona.java 2010-07-01 11:39:10 UTC (rev 134)
+++ trunk/polepos/src/org/polepos/circuits/barcelona/Barcelona.java 2010-10-05 13:12:22 UTC (rev 135)
@@ -41,6 +41,11 @@
public Class requiredDriver() {
return BarcelonaDriver.class;
}
+
+ @Override
+ public String name() {
+ return "Inheritance Hierarchy";
+ }
}
Added: trunk/polepos/src/org/polepos/circuits/nestedlists/NestedLists.java
===================================================================
--- trunk/polepos/src/org/polepos/circuits/nestedlists/NestedLists.java (rev 0)
+++ trunk/polepos/src/org/polepos/circuits/nestedlists/NestedLists.java 2010-10-05 13:12:22 UTC (rev 135)
@@ -0,0 +1,40 @@
+/*
+This file is part of the PolePosition database benchmark
+http://www.polepos.org
+
+This program is free software; you can redistribute it and/or
+modify it under the terms of the GNU General Public License
+as published by the Free Software Foundation; either version 2
+of the License, or (at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public
+License along with this program; if not, write to the Free
+Software Foundation, Inc., 59 Temple Place - Suite 330, Boston,
+MA 02111-1307, USA. */
+
+
+package org.polepos.circuits.nestedlists;
+
+import org.polepos.framework.*;
+
+@CircuitDescription("write and read nested lists")
+public interface NestedLists {
+
+ @Order(1)
+ void create() throws Throwable;
+
+ @Order(2)
+ void read() throws Throwable;
+
+ @Order(3)
+ void update() throws Throwable;
+
+ @Order(4)
+ void delete() throws Throwable;
+
+}
Property changes on: trunk/polepos/src/org/polepos/circuits/nestedlists/NestedLists.java
___________________________________________________________________
Added: svn:mime-type
+ text/plain
Modified: trunk/polepos/src/org/polepos/circuits/sepang/Sepang.java
===================================================================
--- trunk/polepos/src/org/polepos/circuits/sepang/Sepang.java 2010-07-01 11:39:10 UTC (rev 134)
+++ trunk/polepos/src/org/polepos/circuits/sepang/Sepang.java 2010-10-05 13:12:22 UTC (rev 135)
@@ -43,5 +43,10 @@
public Class requiredDriver() {
return SepangDriver.class;
}
+
+ @Override
+ public String name() {
+ return "Tree";
+ }
}
Added: trunk/polepos/src/org/polepos/data/ListHolder.java
===================================================================
--- trunk/polepos/src/org/polepos/data/ListHolder.java (rev 0)
+++ trunk/polepos/src/org/polepos/data/ListHolder.java 2010-10-05 13:12:22 UTC (rev 135)
@@ -0,0 +1,121 @@
+/*
+This file is part of the PolePosition database benchmark
+http://www.polepos.org
+
+This program is free software; you can redistribute it and/or
+modify it under the terms of the GNU General Public License
+as published by the Free Software Foundation; either version 2
+of the License, or (at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public
+License along with this program; if not, write to the Free
+Software Foundation, Inc., 59 Temple Place - Suite 330, Boston,
+MA 02111-1307, USA. */
+
+
+package org.polepos.data;
+
+import java.util.*;
+
+import org.polepos.framework.*;
+
+public class ListHolder implements CheckSummable {
+
+ public static final String ROOT_NAME = "root";
+
+ private static final IdGenerator _idGenerator = new IdGenerator();
+
+ private long _id;
+
+ private String _name;
+
+ private List<ListHolder> _list;
+
+ private transient boolean _visited;
+
+ public static ListHolder generate(int depth, int leafs, int reuse){
+ ListHolder root = generate(new ArrayList<ListHolder>(), depth, leafs, reuse);
+ root._name = ROOT_NAME;
+ return root;
+ }
+
+
+ public static ListHolder generate(List<ListHolder> flatList, int depth, int leafs, int reuse){
+ if(depth == 0){
+ return null;
+ }
+ ListHolder listHolder = new ListHolder();
+ listHolder._id = _idGenerator.nextId();
+
+ flatList.add(listHolder);
+ if(depth == 1){
+ return listHolder;
+ }
+ listHolder._list = new ArrayList<ListHolder>();
+ int childDepth = depth -1;
+ for (int i = leafs -1; i >= 0; i--) {
+ if(i < reuse){
+ int indexInList = (flatList.size() - i) / 2;
+ listHolder._list.add(flatList.get(indexInList) );
+ } else {
+ ListHolder child = generate(flatList, childDepth, leafs, reuse);
+ child._name = "child:" + depth + ":" + i;
+ listHolder._list.add(child);
+ }
+ }
+ return listHolder;
+ }
+
+ @Override
+ public long checkSum() {
+ return _name.hashCode() * (_list == null ? 1 : _list.size());
+ }
+
+ public void accept(Visitor<ListHolder> visitor) {
+ visitor.visit(this);
+ if(_list == null){
+ return;
+ }
+ Iterator<ListHolder> i = _list.iterator();
+ while(i.hasNext()){
+ ListHolder child = i.next();
+
+ if(child._id > _id){
+
+ // We might still get multiple visits of the same
+ // child this way but that's fine, we are simulating
+ // network access.
+ child.accept(visitor);
+ }
+ }
+ }
+
+
+ public int update(int maxDepth, int depth, int updateCount, Procedure<Object> storeProcedure) {
+ if(depth > maxDepth){
+ return 0;
+ }
+ int updatedCount = 1;
+ _name = "updated " + _name;
+ if(_list != null){
+ for (int i = 0; i < updateCount; i++) {
+ if(i < _list.size()){
+ ListHolder child = _list.get(i);
+ updatedCount += child.update(maxDepth, depth + 1, updateCount, storeProcedure);
+ }
+ }
+ if(_list.size() > 1){
+ _list.remove(_list.size() - 1);
+ }
+ }
+ storeProcedure.apply(this);
+ return updatedCount;
+ }
+
+
+}
Property changes on: trunk/polepos/src/org/polepos/data/ListHolder.java
___________________________________________________________________
Added: svn:mime-type
+ text/plain
Modified: trunk/polepos/src/org/polepos/enhance/AllEnhance.java
===================================================================
--- trunk/polepos/src/org/polepos/enhance/AllEnhance.java 2010-07-01 11:39:10 UTC (rev 134)
+++ trunk/polepos/src/org/polepos/enhance/AllEnhance.java 2010-10-05 13:12:22 UTC (rev 135)
@@ -22,9 +22,15 @@
public class AllEnhance {
public static void main(String[] args) throws Throwable {
- JdoEnhance.main(null);
- new JviEnhance().runWithoutSystemExit();
- JpaEnhance.main(null);
+
+// Call Versant's enhancer directly.
+ VodEnhancer.main(null);
+
+// JdoEnhance.main(null);
+
+// new JviEnhance().runWithoutSystemExit();
+
+// JpaEnhance.main(null);
}
}
Added: trunk/polepos/src/org/polepos/enhance/VodEnhancer.java
===================================================================
--- trunk/polepos/src/org/polepos/enhance/VodEnhancer.java (rev 0)
+++ trunk/polepos/src/org/polepos/enhance/VodEnhancer.java 2010-10-05 13:12:22 UTC (rev 135)
@@ -0,0 +1,24 @@
+/* Copyright (C) 2004 - 2010 Versant Inc. http://www.db4o.com */
+
+package org.polepos.enhance;
+
+import java.io.*;
+
+import com.versant.core.jdo.tools.enhancer.*;
+
+public class VodEnhancer {
+
+ public static void main(String[] args) throws Exception {
+ String propertiesFilePath = "settings/versant.properties";
+ String outputDir = "bin";
+
+ Enhancer enhancer = new Enhancer();
+ enhancer.setPropertiesFile(new File(propertiesFilePath));
+
+ System.out.println("Enhancing to: " + new File(outputDir).getAbsolutePath());
+
+ enhancer.setOutputDir(new File(outputDir));
+ enhancer.enhance();
+ }
+
+}
Property changes on: trunk/polepos/src/org/polepos/enhance/VodEnhancer.java
___________________________________________________________________
Added: svn:mime-type
+ text/plain
Modified: trunk/polepos/src/org/polepos/framework/DriverBase.java
===================================================================
--- trunk/polepos/src/org/polepos/framework/DriverBase.java 2010-07-01 11:39:10 UTC (rev 134)
+++ trunk/polepos/src/org/polepos/framework/DriverBase.java 2010-10-05 13:12:22 UTC (rev 135)
@@ -185,6 +185,18 @@
return setup().getObjectCount();
}
+ protected int updateCount() {
+ return setup().getUpdateCount();
+ }
+
+ protected int depth(){
+ return setup().getDepth();
+ }
+
+ protected int reuse() {
+ return setup().getReuse();
+ }
+
protected boolean doCommit(){
if(_objectCount == 0){
return true;
Added: trunk/polepos/src/org/polepos/framework/IdGenerator.java
===================================================================
--- trunk/polepos/src/org/polepos/framework/IdGenerator.java (rev 0)
+++ trunk/polepos/src/org/polepos/framework/IdGenerator.java 2010-10-05 13:12:22 UTC (rev 135)
@@ -0,0 +1,33 @@
+/*
+This file is part of the PolePosition database benchmark
+http://www.polepos.org
+
+This program is free software; you can redistribute it and/or
+modify it under the terms of the GNU General Public License
+as published by the Free Software Foundation; either version 2
+of the License, or (at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public
+License along with this program; if not, write to the Free
+Software Foundation, Inc., 59 Temple Place - Suite 330, Boston,
+MA 02111-1307, USA. */
+
+
+package org.polepos.framework;
+
+import java.util.concurrent.atomic.*;
+
+public class IdGenerator {
+
+ private AtomicLong _atomicLong = new AtomicLong(0);
+
+ public long nextId(){
+ return _atomicLong.getAndIncrement();
+ }
+
+}
Property changes on: trunk/polepos/src/org/polepos/framework/IdGenerator.java
___________________________________________________________________
Added: svn:mime-type
+ text/plain
Added: trunk/polepos/src/org/polepos/framework/Procedure.java
===================================================================
--- trunk/polepos/src/org/polepos/framework/Procedure.java (rev 0)
+++ trunk/polepos/src/org/polepos/framework/Procedure.java 2010-10-05 13:12:22 UTC (rev 135)
@@ -0,0 +1,9 @@
+/* Copyright (C) 2004 - 2010 Versant Inc. http://www.db4o.com */
+
+package org.polepos.framework;
+
+public interface Procedure<T> {
+
+ void apply(T obj);
+
+}
Property changes on: trunk/polepos/src/org/polepos/framework/Procedure.java
___________________________________________________________________
Added: svn:mime-type
+ text/plain
Modified: trunk/polepos/src/org/polepos/framework/TurnSetup.java
===================================================================
--- trunk/polepos/src/org/polepos/framework/TurnSetup.java 2010-07-01 11:39:10 UTC (rev 134)
+++ trunk/polepos/src/org/polepos/framework/TurnSetup.java 2010-10-05 13:12:22 UTC (rev 135)
@@ -68,6 +68,10 @@
return getSetting(TurnSetupConfig.OBJECTCOUNT);
}
+ public int getReuse(){
+ return getSetting(TurnSetupConfig.REUSE);
+ }
+
public int getSelectCount(){
return getSetting(TurnSetupConfig.SELECTCOUNT);
}
@@ -80,8 +84,8 @@
return getSetting(TurnSetupConfig.TREEWIDTH);
}
- public int getTreeDepth(){
- return getSetting(TurnSetupConfig.TREEDEPTH);
+ public int getDepth(){
+ return getSetting(TurnSetupConfig.DEPTH);
}
public int getObjectSize(){
Modified: trunk/polepos/src/org/polepos/framework/TurnSetupConfig.java
===================================================================
--- trunk/polepos/src/org/polepos/framework/TurnSetupConfig.java 2010-07-01 11:39:10 UTC (rev 134)
+++ trunk/polepos/src/org/polepos/framework/TurnSetupConfig.java 2010-10-05 13:12:22 UTC (rev 135)
@@ -24,12 +24,13 @@
public class TurnSetupConfig {
private final PropertiesHandler mProperties;
+ public final static String REUSE = "reuse";
public final static String OBJECTCOUNT = "objects";
public final static String SELECTCOUNT = "selects";
public final static String UPDATECOUNT = "updates";
public final static String COMMITCOUNT = "commits";
public final static String TREEWIDTH = "width";
- public final static String TREEDEPTH = "depth";
+ public final static String DEPTH = "depth";
public final static String COMMITINTERVAL = "commitinterval";
public final static String OBJECTSIZE = "size";
@@ -38,12 +39,13 @@
public final static String THREADCOUNT = "threads";
final static String[] AVAILABLE_SETTINGS = new String[]{
+ REUSE,
OBJECTCOUNT,
SELECTCOUNT,
UPDATECOUNT,
COMMITCOUNT,
TREEWIDTH,
- TREEDEPTH,
+ DEPTH,
COMMITINTERVAL,
OBJECTSIZE
};
Added: trunk/polepos/src/org/polepos/framework/Visitor.java
===================================================================
--- trunk/polepos/src/org/polepos/framework/Visitor.java (rev 0)
+++ trunk/polepos/src/org/polepos/framework/Visitor.java 2010-10-05 13:12:22 UTC (rev 135)
@@ -0,0 +1,27 @@
+/*
+This file is part of the PolePosition database benchmark
+http://www.polepos.org
+
+This program is free software; you can redistribute it and/or
+modify it under the terms of the GNU General Public License
+as published by the Free Software Foundation; either version 2
+of the License, or (at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public
+License along with this program; if not, write to the Free
+Software Foundation, Inc., 59 Temple Place - Suite 330, Boston,
+MA 02111-1307, USA. */
+
+
+package org.polepos.framework;
+
+public interface Visitor<T> {
+
+ void visit(T t);
+
+}
Property changes on: trunk/polepos/src/org/polepos/framework/Visitor.java
___________________________________________________________________
Added: svn:mime-type
+ text/plain
Modified: trunk/polepos/src/org/polepos/teams/cobra/SepangCobra.java
===================================================================
--- trunk/polepos/src/org/polepos/teams/cobra/SepangCobra.java 2010-07-01 11:39:10 UTC (rev 134)
+++ trunk/polepos/src/org/polepos/teams/cobra/SepangCobra.java 2010-10-05 13:12:22 UTC (rev 135)
@@ -120,7 +120,7 @@
public void write(){
begin();
- DatastoreObject tree = writeTree(setup().getTreeDepth());
+ DatastoreObject tree = writeTree(setup().getDepth());
oid = tree.getLOID();
commit();
}
Modified: trunk/polepos/src/org/polepos/teams/db4o/Db4oTeam.java
===================================================================
--- trunk/polepos/src/org/polepos/teams/db4o/Db4oTeam.java 2010-07-01 11:39:10 UTC (rev 134)
+++ trunk/polepos/src/org/polepos/teams/db4o/Db4oTeam.java 2010-10-05 13:12:22 UTC (rev 135)
@@ -51,6 +51,7 @@
private void addDrivers(){
addDriver(new FlatObjectDb4o());
+ addDriver(new NestedListsDb4o());
addDriver(new MelbourneDb4o());
addDriver(new SepangDb4o());
Added: trunk/polepos/src/org/polepos/teams/db4o/NestedListsDb4o.java
===================================================================
--- trunk/polepos/src/org/polepos/teams/db4o/NestedListsDb4o.java (rev 0)
+++ trunk/polepos/src/org/polepos/teams/db4o/NestedListsDb4o.java 2010-10-05 13:12:22 UTC (rev 135)
@@ -0,0 +1,86 @@
+/*
+This file is part of the PolePosition database benchmark
+http://www.polepos.org
+
+This program is free software; you can redistribute it and/or
+modify it under the terms of the GNU General Public License
+as published by the Free Software Foundation; either version 2
+of the License, or (at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public
+License along with this program; if not, write to the Free
+Software Foundation, Inc., 59 Temple Place - Suite 330, Boston,
+MA 02111-1307, USA. */
+
+
+package org.polepos.teams.db4o;
+
+import org.polepos.circuits.nestedlists.*;
+import org.polepos.data.*;
+import org.polepos.framework.*;
+
+import com.db4o.*;
+import com.db4o.config.*;
+import com.db4o.query.*;
+
+public class NestedListsDb4o extends Db4oDriver implements NestedLists {
+
+ @Override
+ public void create() throws Throwable {
+ ListHolder root = ListHolder.generate(depth(), objectCount(), reuse());
+ store(root);
+ }
+
+ @Override
+ public void read() throws Throwable {
+ ListHolder root = root();
+ root.accept(new Visitor<ListHolder>(){
+ public void visit(ListHolder listHolder){
+ addToCheckSum(listHolder);
+ }
+ });
+ }
+
+ private ListHolder root() {
+ Query query = db().query();
+ query.constrain(ListHolder.class);
+ query.descend("_name").constrain(ListHolder.ROOT_NAME);
+ ObjectSet<Object> objectSet = query.execute();
+ ListHolder root = (ListHolder) objectSet.next();
+ return root;
+ }
+
+ @Override
+ public void update() throws Throwable {
+ ListHolder root = root();
+ addToCheckSum(root.update(depth(), 0, updateCount(), new Procedure<Object>() {
+ @Override
+ public void apply(Object obj) {
+ store(obj);
+ }
+ }));
+ }
+
+ @Override
+ public void delete() throws Throwable {
+ ListHolder root = root();
+ root.accept(new Visitor<ListHolder>(){
+ public void visit(ListHolder listHolder){
+ delete(listHolder);
+ }
+ });
+ }
+
+ @Override
+ public void configure(Configuration config) {
+
+
+ }
+
+
+}
Property changes on: trunk/polepos/src/org/polepos/teams/db4o/NestedListsDb4o.java
___________________________________________________________________
Added: svn:mime-type
+ text/plain
Modified: trunk/polepos/src/org/polepos/teams/db4o/SepangDb4o.java
===================================================================
--- trunk/polepos/src/org/polepos/teams/db4o/SepangDb4o.java 2010-07-01 11:39:10 UTC (rev 134)
+++ trunk/polepos/src/org/polepos/teams/db4o/SepangDb4o.java 2010-10-05 13:12:22 UTC (rev 135)
@@ -37,7 +37,7 @@
public void write(){
begin();
- Tree tree = Tree.createTree(setup().getTreeDepth());
+ Tree tree = Tree.createTree(setup().getDepth());
store(tree);
treeRootID = db().getID(tree);
commit();
Modified: trunk/polepos/src/org/polepos/teams/hibernate/SepangHibernate.java
===================================================================
--- trunk/polepos/src/org/polepos/teams/hibernate/SepangHibernate.java 2010-07-01 11:39:10 UTC (rev 134)
+++ trunk/polepos/src/org/polepos/teams/hibernate/SepangHibernate.java 2010-10-05 13:12:22 UTC (rev 135)
@@ -28,7 +28,7 @@
public void write(){
try{
Transaction tx = db().beginTransaction();
- HibernateTree tree = HibernateTree.createTree(setup().getTreeDepth());
+ HibernateTree tree = HibernateTree.createTree(setup().getDepth());
HibernateTree.traverse(tree, new HibernateTreeVisitor() {
public void visit(HibernateTree tree) {
try {
Modified: trunk/polepos/src/org/polepos/teams/jdbc/SepangJdbc.java
===================================================================
--- trunk/polepos/src/org/polepos/teams/jdbc/SepangJdbc.java 2010-07-01 11:39:10 UTC (rev 134)
+++ trunk/polepos/src/org/polepos/teams/jdbc/SepangJdbc.java 2010-10-05 13:12:22 UTC (rev 135)
@@ -41,7 +41,7 @@
public void write(){
final PreparedStatement statement = prepareStatement("insert into " + TABLE + " (id, preceding, subsequent, name, depth ) values (?,?,?,?,?)");
- Tree tree = Tree.createTree(setup().getTreeDepth());
+ Tree tree = Tree.createTree(setup().getDepth());
Tree.traverse(tree, new TreeVisitor() {
public void visit(Tree tree) {
try {
Modified: trunk/polepos/src/org/polepos/teams/jdo/JdoCar.java
===================================================================
--- trunk/polepos/src/org/polepos/teams/jdo/JdoCar.java 2010-07-01 11:39:10 UTC (rev 134)
+++ trunk/polepos/src/org/polepos/teams/jdo/JdoCar.java 2010-10-05 13:12:22 UTC (rev 135)
@@ -78,6 +78,9 @@
// Turning this on can make the Concurrency tests crash.
properties.setProperty("versant.l2CacheEnabled", "false");
+ // Reduces RPC calls for VOD for optimistic read from 3 to 1
+ properties.setProperty("versant.retainConnectionInOptTx", "true");
+
properties.setProperty("versant.l2CacheMaxObjects", "5000000");
properties.setProperty("versant.l2QueryCacheEnabled", "true");
properties.setProperty("versant.logDownloader", "none");
@@ -86,6 +89,9 @@
properties.setProperty("versant.metricStoreCapacity", "0");
properties.setProperty("versant.vdsNamingPolicy", "none");
+
+
+
properties.setProperty("versant.remoteMaxActive", "30");
properties.setProperty("versant.maxActive", "30");
Modified: trunk/polepos/src/org/polepos/teams/jdo/SepangJdo.java
===================================================================
--- trunk/polepos/src/org/polepos/teams/jdo/SepangJdo.java 2010-07-01 11:39:10 UTC (rev 134)
+++ trunk/polepos/src/org/polepos/teams/jdo/SepangJdo.java 2010-10-05 13:12:22 UTC (rev 135)
@@ -32,7 +32,7 @@
public void write(){
begin();
- JdoTree tree = JdoTree.createTree(setup().getTreeDepth());
+ JdoTree tree = JdoTree.createTree(setup().getDepth());
db().makePersistent(tree);
oid = db().getObjectId(tree);
commit();
Modified: trunk/polepos/src/org/polepos/teams/jdo/data/JdoTree.java
===================================================================
--- trunk/polepos/src/org/polepos/teams/jdo/data/JdoTree.java 2010-07-01 11:39:10 UTC (rev 134)
+++ trunk/polepos/src/org/polepos/teams/jdo/data/JdoTree.java 2010-10-05 13:12:22 UTC (rev 135)
@@ -70,8 +70,8 @@
// We first write into local variables, so we don't get access
// to the deleted parent after deletion.
- JdoTree preceding = tree.preceding;
- JdoTree subsequent = tree.subsequent;
+ JdoTree preceding = tree.getPreceding();
+ JdoTree subsequent = tree.getSubsequent();
visitor.visit(tree);
traverse(preceding, visitor);
@@ -82,6 +82,17 @@
return depth;
}
+ public JdoTree getPreceding(){
+ return preceding;
+ }
+ public JdoTree getSubsequent(){
+ return subsequent;
+ }
+
+
+
+
+
}
Modified: trunk/polepos/src/org/polepos/teams/jdo/data/package.jdo
===================================================================
--- trunk/polepos/src/org/polepos/teams/jdo/data/package.jdo 2010-07-01 11:39:10 UTC (rev 134)
+++ trunk/polepos/src/org/polepos/teams/jdo/data/package.jdo 2010-10-05 13:12:22 UTC (rev 135)
@@ -11,12 +11,15 @@
<class name="JB3" persistence-capable-superclass="org.polepos.teams.jdo.data.JB2">
</class>
<class name="JB4" persistence-capable-superclass="org.polepos.teams.jdo.data.JB3">
- </class>
- <class name="JdoTree">
- <fetch-group name="tree">
- <field name="subsequent" recursion-depth="16"/>
- </fetch-group>
- </class>
+ </class>
+ <class name="JdoTree">
+ <fetch-group name="subsequent">
+ <field name="subsequent" recursion-depth="16"/>
+ </fetch-group>
+ <fetch-group name="preceding">
+ <field name="preceding" recursion-depth="16"/>
+ </fetch-group>
+ </class>
<class name="JdoPilot" />
<class name="JdoIndexedPilot">
Modified: trunk/polepos/src/org/polepos/teams/jpa/SepangJpa.java
===================================================================
--- trunk/polepos/src/org/polepos/teams/jpa/SepangJpa.java 2010-07-01 11:39:10 UTC (rev 134)
+++ trunk/polepos/src/org/polepos/teams/jpa/SepangJpa.java 2010-10-05 13:12:22 UTC (rev 135)
@@ -32,7 +32,7 @@
public void write(){
begin();
- JpaTree tree = JpaTree.createTree(setup().getTreeDepth());
+ JpaTree tree = JpaTree.createTree(setup().getDepth());
db().persist(tree);
// JpaTree.traverse(tree, new JpaTreeVisitor() {
// public void visit(JpaTree tree) {
Modified: trunk/polepos/src/org/polepos/teams/jvi/SepangJvi.java
===================================================================
--- trunk/polepos/src/org/polepos/teams/jvi/SepangJvi.java 2010-07-01 11:39:10 UTC (rev 134)
+++ trunk/polepos/src/org/polepos/teams/jvi/SepangJvi.java 2010-10-05 13:12:22 UTC (rev 135)
@@ -32,7 +32,7 @@
public void write(){
begin();
- JviTree tree = JviTree.createTree(setup().getTreeDepth());
+ JviTree tree = JviTree.createTree(setup().getDepth());
db().makePersistent(tree);
oid = db().getOidAsLong(tree);
commit();
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|