Revision: 143
http://polepos.svn.sourceforge.net/polepos/?rev=143&view=rev
Author: carlrosenberger
Date: 2010-11-22 13:35:04 +0000 (Mon, 22 Nov 2010)
Log Message:
-----------
cr + frm: NestedLists is now working without different checksums.
Modified Paths:
--------------
trunk/polepos/settings/Circuits.properties
trunk/polepos/src/org/polepos/data/ListHolder.java
trunk/polepos/src/org/polepos/teams/db4o/NestedListsDb4o.java
trunk/polepos/src/org/polepos/teams/hibernate/data/ListHolder.java
trunk/polepos/src/org/polepos/teams/jdo/JdoTeam.java
trunk/polepos/src/org/polepos/teams/jdo/data/ListHolder.java
trunk/polepos/src/org/polepos/teams/jdo/data/package.jdo
Modified: trunk/polepos/settings/Circuits.properties
===================================================================
--- trunk/polepos/settings/Circuits.properties 2010-11-22 12:03:56 UTC (rev 142)
+++ trunk/polepos/settings/Circuits.properties 2010-11-22 13:35:04 UTC (rev 143)
@@ -26,7 +26,7 @@
# [updates]: number of updates and deletes to be run
# [depth]: depth of the tree
nestedlists.objects=50,50,50
-nestedlists.reuse=10,20,40
+nestedlists.reuse=0,15,30
nestedlists.updates=20,20,20
nestedlists.depth=4,4,4
Modified: trunk/polepos/src/org/polepos/data/ListHolder.java
===================================================================
--- trunk/polepos/src/org/polepos/data/ListHolder.java 2010-11-22 12:03:56 UTC (rev 142)
+++ trunk/polepos/src/org/polepos/data/ListHolder.java 2010-11-22 13:35:04 UTC (rev 143)
@@ -117,11 +117,9 @@
_name = "updated " + name();
}
if(_list != null){
- for (int i = 0; i < updateCount; i++) {
- if(i < _list.size()){
- ListHolder child = _list.get(i);
- updatedCount += child.updateInternal(visited, maxDepth, depth + 1, updateCount, storeProcedure);
- }
+ for (int i = 0; i < _list.size(); i++) {
+ ListHolder child = _list.get(i);
+ updatedCount += child.updateInternal(visited, maxDepth, depth + 1, updateCount, storeProcedure);
}
}
storeProcedure.apply(this);
@@ -143,11 +141,9 @@
}
int deletedCount = 1;
if(_list != null){
- for (int i = 0; i < updateCount; i++) {
- if(i < _list.size()){
- ListHolder child = _list.get(i);
- deletedCount += child.deleteInternal(visited, maxDepth, depth + 1, updateCount, deleteProcedure);
- }
+ for (int i = 0; i < _list.size(); i++) {
+ ListHolder child = _list.get(i);
+ deletedCount += child.deleteInternal(visited, maxDepth, depth + 1, updateCount, deleteProcedure);
}
}
deleteProcedure.apply(this);
Modified: trunk/polepos/src/org/polepos/teams/db4o/NestedListsDb4o.java
===================================================================
--- trunk/polepos/src/org/polepos/teams/db4o/NestedListsDb4o.java 2010-11-22 12:03:56 UTC (rev 142)
+++ trunk/polepos/src/org/polepos/teams/db4o/NestedListsDb4o.java 2010-11-22 13:35:04 UTC (rev 143)
@@ -84,7 +84,7 @@
@Override
public void configure(Configuration config) {
-
+ config.objectClass(ListHolder.class).objectField("_name").indexed(true);
}
}
Modified: trunk/polepos/src/org/polepos/teams/hibernate/data/ListHolder.java
===================================================================
--- trunk/polepos/src/org/polepos/teams/hibernate/data/ListHolder.java 2010-11-22 12:03:56 UTC (rev 142)
+++ trunk/polepos/src/org/polepos/teams/hibernate/data/ListHolder.java 2010-11-22 13:35:04 UTC (rev 143)
@@ -115,12 +115,11 @@
if(depth > 0){
name = "updated " + name;
}
- if(getList() != null){
- for (int i = 0; i < updateCount; i++) {
- if(i < getList().size()){
- ListHolder child = getList().get(i);
- updatedCount += child.updateInternal(visited, maxDepth, depth + 1, updateCount, storeProcedure);
- }
+
+ if(list != null){
+ for (int i = 0; i < list.size(); i++) {
+ ListHolder child = list.get(i);
+ updatedCount += child.updateInternal(visited, maxDepth, depth + 1, updateCount, storeProcedure);
}
}
storeProcedure.apply(this);
@@ -141,12 +140,10 @@
return 0;
}
int deletedCount = 1;
- if(getList() != null){
- for (int i = 0; i < updateCount; i++) {
- if(i < getList().size()){
- ListHolder child = getList().get(i);
- deletedCount += child.deleteInternal(visited, maxDepth, depth + 1, updateCount, deleteProcedure);
- }
+ if(list != null){
+ for (int i = 0; i < list.size(); i++) {
+ ListHolder child = getList().get(i);
+ deletedCount += child.deleteInternal(visited, maxDepth, depth + 1, updateCount, deleteProcedure);
}
}
deleteProcedure.apply(this);
Modified: trunk/polepos/src/org/polepos/teams/jdo/JdoTeam.java
===================================================================
--- trunk/polepos/src/org/polepos/teams/jdo/JdoTeam.java 2010-11-22 12:03:56 UTC (rev 142)
+++ trunk/polepos/src/org/polepos/teams/jdo/JdoTeam.java 2010-11-22 13:35:04 UTC (rev 143)
@@ -165,6 +165,7 @@
private void deleteAllBatched(PersistenceManager pm, Class clazz) {
+
pm.currentTransaction().begin();
int batchSize = 10000;
int commitctr = 0;
Modified: trunk/polepos/src/org/polepos/teams/jdo/data/ListHolder.java
===================================================================
--- trunk/polepos/src/org/polepos/teams/jdo/data/ListHolder.java 2010-11-22 12:03:56 UTC (rev 142)
+++ trunk/polepos/src/org/polepos/teams/jdo/data/ListHolder.java 2010-11-22 13:35:04 UTC (rev 143)
@@ -115,12 +115,11 @@
if(depth > 0){
_name = "updated " + _name;
}
- if(getList() != null){
- for (int i = 0; i < updateCount; i++) {
- if(i < getList().size()){
- ListHolder child = getList().get(i);
- updatedCount += child.updateInternal(visited, maxDepth, depth + 1, updateCount, storeProcedure);
- }
+
+ if(_list != null){
+ for (int i = 0; i < _list.size(); i++) {
+ ListHolder child = _list.get(i);
+ updatedCount += child.updateInternal(visited, maxDepth, depth + 1, updateCount, storeProcedure);
}
}
storeProcedure.apply(this);
@@ -128,25 +127,24 @@
}
public int delete(int maxDepth, int depth, int updateCount, Procedure<ListHolder> deleteProcedure) {
- Set<ListHolder> visited = new HashSet<ListHolder>();
+ // We use an IdentityHashMap here so hashCode is not called on deleted items.
+ Map<ListHolder, ListHolder> visited = new IdentityHashMap<ListHolder, ListHolder>();
return deleteInternal(visited, maxDepth, depth, updateCount, deleteProcedure);
}
- public int deleteInternal(Set<ListHolder> visited, int maxDepth, int depth, int updateCount, Procedure<ListHolder> deleteProcedure) {
- if(visited.contains(this)){
+ public int deleteInternal(Map<ListHolder, ListHolder> visited, int maxDepth, int depth, int updateCount, Procedure<ListHolder> deleteProcedure) {
+ if(visited.containsKey(this)){
return 0;
}
- visited.add(this);
+ visited.put(this, this);
if(depth > maxDepth){
return 0;
}
int deletedCount = 1;
- if(getList() != null){
- for (int i = 0; i < updateCount; i++) {
- if(i < getList().size()){
- ListHolder child = getList().get(i);
- deletedCount += child.deleteInternal(visited, maxDepth, depth + 1, updateCount, deleteProcedure);
- }
+ if(_list != null){
+ for (int i = 0; i < _list.size(); i++) {
+ ListHolder child = getList().get(i);
+ deletedCount += child.deleteInternal(visited, maxDepth, depth + 1, updateCount, deleteProcedure);
}
}
deleteProcedure.apply(this);
@@ -192,4 +190,9 @@
return (int)_id;
}
+ @Override
+ public String toString() {
+ return "ListHolder [_id=" + _id + "]";
+ }
+
}
Modified: trunk/polepos/src/org/polepos/teams/jdo/data/package.jdo
===================================================================
--- trunk/polepos/src/org/polepos/teams/jdo/data/package.jdo 2010-11-22 12:03:56 UTC (rev 142)
+++ trunk/polepos/src/org/polepos/teams/jdo/data/package.jdo 2010-11-22 13:35:04 UTC (rev 143)
@@ -37,7 +37,13 @@
<field name = "_int" indexed = "true"/>
<field name = "_string" indexed = "true"/>
</class>
- <class name="ListHolder"/>
+ <class name="ListHolder">
+ <field name="_id" indexed = "true" />
+ <field name="_name" indexed = "true"/>
+ <field name = "_list">
+ <collection element-type="ListHolder"/>
+ </field>
+ </class>
</package>
</jdo>
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|