[infinispan-commits] Infinispan SVN: r1119 - in trunk: lucene-directory/src/main/java/org/infinispan/lucene and 1 other directories.
infinispan-commits at lists.jboss.org
infinispan-commits at lists.jboss.org
Mon Nov 9 18:35:32 EST 2009
Author: sannegrinovero
Date: 2009-11-09 18:35:31 -0500 (Mon, 09 Nov 2009)
New Revision: 1119
Modified:
trunk/core/src/main/java/org/infinispan/util/concurrent/ConcurrentHashSet.java
trunk/lucene-directory/src/main/java/org/infinispan/lucene/InfinispanDirectory.java
trunk/lucene-directory/src/test/java/org/infinispan/lucene/InfinispanDirectoryStressTest.java
Log:
[ISPN-260] (Transactions aborting on high load from readers)
Modified: trunk/core/src/main/java/org/infinispan/util/concurrent/ConcurrentHashSet.java
===================================================================
--- trunk/core/src/main/java/org/infinispan/util/concurrent/ConcurrentHashSet.java 2009-11-09 18:38:03 UTC (rev 1118)
+++ trunk/core/src/main/java/org/infinispan/util/concurrent/ConcurrentHashSet.java 2009-11-09 23:35:31 UTC (rev 1119)
@@ -21,6 +21,7 @@
*/
package org.infinispan.util.concurrent;
+import java.io.Serializable;
import java.util.AbstractSet;
import java.util.Collection;
import java.util.Iterator;
@@ -35,9 +36,15 @@
* @author <a href="mailto:manik at jboss.org">Manik Surtani</a>
* @since 4.0
*/
-public class ConcurrentHashSet<E> extends AbstractSet<E> {
- protected ConcurrentHashMap<E, Object> map;
- private static final Object DUMMY = new Object();
+public class ConcurrentHashSet<E> extends AbstractSet<E> implements Serializable {
+
+ /** The serialVersionUID */
+ private static final long serialVersionUID = 5312604953511379869L;
+
+ protected final ConcurrentHashMap<E, Object> map;
+
+ /** any Serializable object will do, Integer.valueOf(0) is known cheap **/
+ private static final Serializable DUMMY = Integer.valueOf(0);
public ConcurrentHashSet() {
map = new ConcurrentHashMap<E, Object>();
Modified: trunk/lucene-directory/src/main/java/org/infinispan/lucene/InfinispanDirectory.java
===================================================================
--- trunk/lucene-directory/src/main/java/org/infinispan/lucene/InfinispanDirectory.java 2009-11-09 18:38:03 UTC (rev 1118)
+++ trunk/lucene-directory/src/main/java/org/infinispan/lucene/InfinispanDirectory.java 2009-11-09 23:35:31 UTC (rev 1119)
@@ -33,6 +33,7 @@
import org.apache.lucene.store.LockFactory;
import org.infinispan.Cache;
import org.infinispan.lucene.locking.LuceneLockFactory;
+import org.infinispan.util.concurrent.ConcurrentHashSet;
import org.infinispan.util.logging.Log;
import org.infinispan.util.logging.LogFactory;
@@ -219,7 +220,7 @@
private Set<String> getFileList() {
Set<String> fileList = (Set<String>) cache.get(fileListCacheKey);
if (fileList == null)
- fileList = new HashSet<String>();
+ fileList = new ConcurrentHashSet<String>();
return fileList;
}
Modified: trunk/lucene-directory/src/test/java/org/infinispan/lucene/InfinispanDirectoryStressTest.java
===================================================================
--- trunk/lucene-directory/src/test/java/org/infinispan/lucene/InfinispanDirectoryStressTest.java 2009-11-09 18:38:03 UTC (rev 1118)
+++ trunk/lucene-directory/src/test/java/org/infinispan/lucene/InfinispanDirectoryStressTest.java 2009-11-09 23:35:31 UTC (rev 1119)
@@ -34,7 +34,6 @@
import org.apache.lucene.search.IndexSearcher;
import org.apache.lucene.search.Query;
import org.apache.lucene.search.TermQuery;
-import org.apache.lucene.search.Hits;
import org.apache.lucene.search.TopDocs;
import org.infinispan.Cache;
import org.infinispan.manager.CacheManager;
@@ -46,7 +45,6 @@
* @author Lukasz Moren
* @author Sanne Grinovero
*/
- at SuppressWarnings("deprecation")
@Test(groups = "profiling", testName = "lucene.InfinispanDirectoryStressTest")
public class InfinispanDirectoryStressTest {
@@ -85,19 +83,26 @@
List<InfinispanDirectoryThread> threads = new ArrayList<InfinispanDirectoryThread>();
Cache<CacheKey, Object> cache = CacheTestSupport.createTestCacheManager().getCache();
Cache<CacheKey, Object> cache2 = CacheTestSupport.createTestCacheManager().getCache(); // dummy cache, to force replication
- Directory directory = new InfinispanDirectory(cache, "indexName");
+ Directory directory1 = new InfinispanDirectory(cache, "indexName");
+ Directory directory2 = new InfinispanDirectory(cache2, "indexName");
IndexWriter.MaxFieldLength fieldLength = new IndexWriter.MaxFieldLength(IndexWriter.DEFAULT_MAX_FIELD_LENGTH);
- IndexWriter iw = new IndexWriter(directory, new StandardAnalyzer(), true, fieldLength);
+ IndexWriter iw = new IndexWriter(directory1, new StandardAnalyzer(), true, fieldLength);
iw.close();
// create first writing thread
- InfinispanDirectoryThread tr = new InfinispanDirectoryThread(latch, directory, true);
+ InfinispanDirectoryThread tr = new InfinispanDirectoryThread(latch, directory1, true);
threads.add(tr);
tr.start();
// others reading threads
for (int i = 0; i < THREADS_NUM - 1; i++) {
- InfinispanDirectoryThread thread = new InfinispanDirectoryThread(latch, directory, false);
+ InfinispanDirectoryThread thread;
+ if (i%2==0) {
+ thread = new InfinispanDirectoryThread(latch, directory1, false);
+ }
+ else {
+ thread = new InfinispanDirectoryThread(latch, directory2, false);
+ }
threads.add(thread);
thread.start();
}
@@ -110,12 +115,11 @@
for (InfinispanDirectoryThread thread : threads) {
if (thread.e != null) {
- log.error("Exception was catched during the test: ", thread.e);
- assert false : "Exception during test in parallel thread";
+ throw thread.e;
}
}
- IndexSearcher search = new IndexSearcher(directory);
+ IndexSearcher search = new IndexSearcher(directory1);
Term t = new Term("info", "good");
Query query = new TermQuery(t);
int expectedDocs = writeCount.get();
@@ -124,7 +128,8 @@
assert expectedDocs == hits.totalHits;
search.close();
- directory.close();
+ directory1.close();
+ directory2.close();
cache.getCacheManager().stop();
cache2.getCacheManager().stop();
}
More information about the infinispan-commits
mailing list