Author: nzamosenchuk
Date: 2009-12-08 08:31:21 -0500 (Tue, 08 Dec 2009)
New Revision: 944
Added:
jcr/branches/1.12.0-JBC/component/core/src/main/java/org/exoplatform/services/jcr/impl/core/query/jbosscache/ChangesFilterListsWrapper.java
Modified:
jcr/branches/1.12.0-JBC/component/core/src/main/java/org/exoplatform/services/jcr/impl/core/query/jbosscache/IndexerCacheLoader.java
jcr/branches/1.12.0-JBC/component/core/src/main/java/org/exoplatform/services/jcr/impl/core/query/jbosscache/JbossCacheIndexChangesFilter.java
jcr/branches/1.12.0-JBC/component/core/src/test/resources/conf/standalone/test-jbosscache-indexer-config-exoloader_db1_ws.xml
Log:
EXOJCR-291: Experimentally Indexer cache is reused without batching
Added:
jcr/branches/1.12.0-JBC/component/core/src/main/java/org/exoplatform/services/jcr/impl/core/query/jbosscache/ChangesFilterListsWrapper.java
===================================================================
---
jcr/branches/1.12.0-JBC/component/core/src/main/java/org/exoplatform/services/jcr/impl/core/query/jbosscache/ChangesFilterListsWrapper.java
(rev 0)
+++
jcr/branches/1.12.0-JBC/component/core/src/main/java/org/exoplatform/services/jcr/impl/core/query/jbosscache/ChangesFilterListsWrapper.java 2009-12-08
13:31:21 UTC (rev 944)
@@ -0,0 +1,35 @@
+package org.exoplatform.services.jcr.impl.core.query.jbosscache;
+
+import java.io.Serializable;
+import java.util.Set;
+
+/**
+ * FOR TESTING PURPOSES ONLY
+ *
+ * @author <a href="mailto:nikolazius@gmail.com">Nikolay
Zamosenchuk</a>
+ * @version $Id: ChangesFilterListsWrapper.java 34360 2009-07-22 23:58:59Z nzamosenchuk
$
+ *
+ */
+public class ChangesFilterListsWrapper implements Serializable
+{
+ private static final long serialVersionUID = 1L;
+
+ public Set<String> addedNodes;
+
+ public Set<String> removedNodes;
+
+ public Set<String> parentAddedNodes;
+
+ public Set<String> parentRemovedNodes;
+
+ public ChangesFilterListsWrapper(Set<String> addedNodes, Set<String>
removedNodes, Set<String> parentAddedNodes,
+ Set<String> parentRemovedNodes)
+ {
+ super();
+ this.addedNodes = addedNodes;
+ this.removedNodes = removedNodes;
+ this.parentAddedNodes = parentAddedNodes;
+ this.parentRemovedNodes = parentRemovedNodes;
+ }
+
+}
Property changes on:
jcr/branches/1.12.0-JBC/component/core/src/main/java/org/exoplatform/services/jcr/impl/core/query/jbosscache/ChangesFilterListsWrapper.java
___________________________________________________________________
Name: svn:mime-type
+ text/plain
Modified:
jcr/branches/1.12.0-JBC/component/core/src/main/java/org/exoplatform/services/jcr/impl/core/query/jbosscache/IndexerCacheLoader.java
===================================================================
---
jcr/branches/1.12.0-JBC/component/core/src/main/java/org/exoplatform/services/jcr/impl/core/query/jbosscache/IndexerCacheLoader.java 2009-12-08
11:01:23 UTC (rev 943)
+++
jcr/branches/1.12.0-JBC/component/core/src/main/java/org/exoplatform/services/jcr/impl/core/query/jbosscache/IndexerCacheLoader.java 2009-12-08
13:31:21 UTC (rev 944)
@@ -21,11 +21,9 @@
import
org.exoplatform.services.jcr.impl.storage.jbosscache.AbstractWriteOnlyCacheLoader;
import org.exoplatform.services.log.ExoLogger;
import org.exoplatform.services.log.Log;
+import org.jboss.cache.Fqn;
import org.jboss.cache.Modification;
-import org.jboss.cache.Modification.ModificationType;
-import org.jboss.cache.factories.annotations.Inject;
-import java.util.HashSet;
import java.util.List;
import java.util.Set;
@@ -52,48 +50,77 @@
@Override
public void put(List<Modification> modifications) throws Exception
{
- if (log.isDebugEnabled())
- {
- log.info("Received list of modifications");
- }
- final Set<String> addedNodes = new HashSet<String>();
- final Set<String> removedNodes = new HashSet<String>();
-
- final Set<String> parentAddedNodes = new HashSet<String>();
- final Set<String> parentRemovedNodes = new HashSet<String>();
+ // FOR TESTING PURPOSES
for (Modification m : modifications)
{
-
- if (m.getType() == ModificationType.PUT_KEY_VALUE && m.getFqn().size()
== 1)
+ switch (m.getType())
{
- if (m.getKey().equals(JbossCacheIndexChangesFilter.ADDED) &&
m.getValue() instanceof Set<?>)
- {
- addedNodes.addAll((Set<String>)m.getValue());
- }
- else if (m.getKey().equals(JbossCacheIndexChangesFilter.REMOVED) &&
m.getValue() instanceof Set<?>)
- {
- removedNodes.addAll((Set<String>)m.getValue());
- }
- if (m.getKey().equals(JbossCacheIndexChangesFilter.PARENT_ADDED) &&
m.getValue() instanceof Set<?>)
- {
- parentAddedNodes.addAll((Set<String>)m.getValue());
- }
- else if (m.getKey().equals(JbossCacheIndexChangesFilter.PARENT_REMOVED)
&& m.getValue() instanceof Set<?>)
- {
- parentRemovedNodes.addAll((Set<String>)m.getValue());
- }
+ case PUT_KEY_VALUE :
+ put(m.getFqn(), m.getKey(), m.getValue());
+ break;
+ case REMOVE_DATA :
}
- else
- {
- if (log.isDebugEnabled())
- {
- log.info("Received " + m.getType() + " modification,
skipping...");
- }
- }
}
- new StubSearchManager().updateIndex(addedNodes, removedNodes);
- if (searchManager != null)
+
+ // if (log.isDebugEnabled())
+ // {
+ // log.info("Received list of modifications");
+ // }
+ // final Set<String> addedNodes = new HashSet<String>();
+ // final Set<String> removedNodes = new HashSet<String>();
+ //
+ // final Set<String> parentAddedNodes = new HashSet<String>();
+ // final Set<String> parentRemovedNodes = new
HashSet<String>();
+ // for (Modification m : modifications)
+ // {
+ //
+ // if (m.getType() == ModificationType.PUT_KEY_VALUE &&
m.getFqn().size() == 1)
+ // {
+ // if (m.getKey().equals(JbossCacheIndexChangesFilter.ADDED)
&& m.getValue() instanceof Set<?>)
+ // {
+ // addedNodes.addAll((Set<String>)m.getValue());
+ // }
+ // else if (m.getKey().equals(JbossCacheIndexChangesFilter.REMOVED)
&& m.getValue() instanceof Set<?>)
+ // {
+ // removedNodes.addAll((Set<String>)m.getValue());
+ // }
+ // if (m.getKey().equals(JbossCacheIndexChangesFilter.PARENT_ADDED)
&& m.getValue() instanceof Set<?>)
+ // {
+ // parentAddedNodes.addAll((Set<String>)m.getValue());
+ // }
+ // else if
(m.getKey().equals(JbossCacheIndexChangesFilter.PARENT_REMOVED) && m.getValue()
instanceof Set<?>)
+ // {
+ // parentRemovedNodes.addAll((Set<String>)m.getValue());
+ // }
+ // }
+ // else
+ // {
+ // if (log.isDebugEnabled())
+ // {
+ // log.info("Received " + m.getType() + "
modification, skipping...");
+ // }
+ // }
+ // }
+ // updateIndex(addedNodes, removedNodes, parentAddedNodes,
parentRemovedNodes);
+
+ }
+
+ @Override
+ public Object put(Fqn arg0, Object key, Object val) throws Exception
+ {
+ if (key.equals("key"))
{
+ ChangesFilterListsWrapper wrapper = (ChangesFilterListsWrapper)val;
+ updateIndex(wrapper.addedNodes, wrapper.removedNodes, wrapper.parentAddedNodes,
wrapper.parentRemovedNodes);
+ }
+ return null;
+ }
+
+ protected void updateIndex(Set<String> addedNodes, Set<String>
removedNodes, Set<String> parentAddedNodes,
+ Set<String> parentRemovedNodes)
+ {
+ if (searchManager != null && addedNodes.size() + removedNodes.size() >
0)
+ {
try
{
searchManager.updateIndex(removedNodes, addedNodes);
@@ -103,7 +130,7 @@
e.printStackTrace();
}
}
- if (parentSearchManager != null)
+ if (parentSearchManager != null && addedNodes.size() + removedNodes.size()
> 0)
{
try
{
@@ -114,21 +141,5 @@
e.printStackTrace();
}
}
-
}
-
- class StubSearchManager
- {
- public void updateIndex(Set<String> added, Set<String> removed)
- {
- for (String uuid : added)
- {
- System.out.println("A\t" + uuid);
- }
- for (String uuid : removed)
- {
- System.out.println("D\t" + uuid);
- }
- }
- }
}
Modified:
jcr/branches/1.12.0-JBC/component/core/src/main/java/org/exoplatform/services/jcr/impl/core/query/jbosscache/JbossCacheIndexChangesFilter.java
===================================================================
---
jcr/branches/1.12.0-JBC/component/core/src/main/java/org/exoplatform/services/jcr/impl/core/query/jbosscache/JbossCacheIndexChangesFilter.java 2009-12-08
11:01:23 UTC (rev 943)
+++
jcr/branches/1.12.0-JBC/component/core/src/main/java/org/exoplatform/services/jcr/impl/core/query/jbosscache/JbossCacheIndexChangesFilter.java 2009-12-08
13:31:21 UTC (rev 944)
@@ -101,7 +101,6 @@
this.cache.getConfiguration().setCacheLoaderConfig(cacheLoaderConfig);
this.cache.create();
this.cache.start();
-
}
/**
@@ -111,8 +110,10 @@
protected void doUpdateIndex(Set<String> removedNodes, Set<String>
addedNodes, Set<String> parentRemovedNodes,
Set<String> parentAddedNodes)
{
- cache.startBatch();
String id = IdGenerator.generate();
+ cache.put(id, "key", new ChangesFilterListsWrapper(addedNodes,
removedNodes, parentAddedNodes, parentRemovedNodes));
+/* cache.startBatch();
+ String id = IdGenerator.generate();
cache.put(id, ADDED, addedNodes);
cache.put(id, PARENT_ADDED, parentAddedNodes);
@@ -120,7 +121,7 @@
cache.put(id, REMOVED, removedNodes);
cache.put(id, PARENT_REMOVED, parentRemovedNodes);
- cache.endBatch(true);
+ cache.endBatch(true);*/
}
}
Modified:
jcr/branches/1.12.0-JBC/component/core/src/test/resources/conf/standalone/test-jbosscache-indexer-config-exoloader_db1_ws.xml
===================================================================
---
jcr/branches/1.12.0-JBC/component/core/src/test/resources/conf/standalone/test-jbosscache-indexer-config-exoloader_db1_ws.xml 2009-12-08
11:01:23 UTC (rev 943)
+++
jcr/branches/1.12.0-JBC/component/core/src/test/resources/conf/standalone/test-jbosscache-indexer-config-exoloader_db1_ws.xml 2009-12-08
13:31:21 UTC (rev 944)
@@ -54,7 +54,7 @@
<loaders passivation="false" shared="false">
loader class="org.jboss.cache.loader.FileCacheLoader"
async="false"
- fetchPersistentState="true" ignoreModifications="false"
+ fetchPersistentState="false" ignoreModifications="false"
purgeOnStartup="false">
<properties>
location=/tmp/test-jboss-cache/proxy
@@ -62,7 +62,7 @@
</loader
loader
class="org.exoplatform.services.jcr.impl.storage.jbosscache.JDBCCacheLoader"
- async="false" fetchPersistentState="true"
ignoreModifications="false" purgeOnStartup="false">
+ async="false" fetchPersistentState="false"
ignoreModifications="false" purgeOnStartup="false">
<properties>
</properties>
</loader
@@ -76,5 +76,5 @@
</loaders>
--><!-- Enable batching -->
- <invocationBatching enabled="true"/>
+ <invocationBatching enabled="false"/>
</jbosscache>