You are viewing a plain text version of this content. The canonical link for it is here.
Posted to xindice-dev@xml.apache.org by vg...@apache.org on 2007/03/16 04:35:50 UTC
svn commit: r518852 - in /xml/xindice/trunk/java:
src/org/apache/xindice/core/filer/ src/org/apache/xindice/core/indexer/
tests/src/org/apache/xindice/ tests/src/org/apache/xindice/core/filer/
tests/src/org/apache/xindice/stress/ tests/src/org/apache/x...
Author: vgritsenko
Date: Thu Mar 15 20:35:49 2007
New Revision: 518852
URL: http://svn.apache.org/viewvc?view=rev&rev=518852
Log:
clean up unused file header constructors, and other cleanup
Removed:
xml/xindice/trunk/java/tests/src/org/apache/xindice/stress/
Modified:
xml/xindice/trunk/java/src/org/apache/xindice/core/filer/BTree.java
xml/xindice/trunk/java/src/org/apache/xindice/core/filer/BTreeFiler.java
xml/xindice/trunk/java/src/org/apache/xindice/core/filer/HashFiler.java
xml/xindice/trunk/java/src/org/apache/xindice/core/filer/Paged.java
xml/xindice/trunk/java/src/org/apache/xindice/core/indexer/ValueIndexer.java
xml/xindice/trunk/java/tests/src/org/apache/xindice/StressTests.java
xml/xindice/trunk/java/tests/src/org/apache/xindice/UnitTests.java
xml/xindice/trunk/java/tests/src/org/apache/xindice/core/filer/FilerTestBase.java
xml/xindice/trunk/java/tests/src/org/apache/xindice/xml/dom/NodeTest.java
Modified: xml/xindice/trunk/java/src/org/apache/xindice/core/filer/BTree.java
URL: http://svn.apache.org/viewvc/xml/xindice/trunk/java/src/org/apache/xindice/core/filer/BTree.java?view=diff&rev=518852&r1=518851&r2=518852
==============================================================================
--- xml/xindice/trunk/java/src/org/apache/xindice/core/filer/BTree.java (original)
+++ xml/xindice/trunk/java/src/org/apache/xindice/core/filer/BTree.java Thu Mar 15 20:35:49 2007
@@ -969,23 +969,11 @@
////////////////////////////////////////////////////////////////////
- public FileHeader createFileHeader() {
+ protected FileHeader createFileHeader() {
return new BTreeFileHeader();
}
- public FileHeader createFileHeader(boolean read) throws IOException {
- return new BTreeFileHeader(read);
- }
-
- public FileHeader createFileHeader(long pageCount) {
- return new BTreeFileHeader(pageCount);
- }
-
- public FileHeader createFileHeader(long pageCount, int pageSize) {
- return new BTreeFileHeader(pageCount, pageSize);
- }
-
- public PageHeader createPageHeader() {
+ protected PageHeader createPageHeader() {
return new BTreePageHeader();
}
@@ -994,29 +982,17 @@
*/
protected class BTreeFileHeader extends FileHeader {
- private long rootPage = 0;
+ private long rootPage;
public BTreeFileHeader() {
}
- public BTreeFileHeader(long pageCount) {
- super(pageCount);
- }
-
- public BTreeFileHeader(long pageCount, int pageSize) {
- super(pageCount, pageSize);
- }
-
- public BTreeFileHeader(boolean read) throws IOException {
- super(read);
- }
-
- public synchronized void read(RandomAccessFile raf) throws IOException {
+ protected synchronized void read(RandomAccessFile raf) throws IOException {
super.read(raf);
rootPage = raf.readLong();
}
- public synchronized void write(RandomAccessFile raf) throws IOException {
+ protected synchronized void write(RandomAccessFile raf) throws IOException {
super.write(raf);
raf.writeLong(rootPage);
}
@@ -1038,7 +1014,7 @@
*/
protected class BTreePageHeader extends PageHeader {
- private short valueCount = 0;
+ private short valueCount;
public BTreePageHeader() {
}
Modified: xml/xindice/trunk/java/src/org/apache/xindice/core/filer/BTreeFiler.java
URL: http://svn.apache.org/viewvc/xml/xindice/trunk/java/src/org/apache/xindice/core/filer/BTreeFiler.java?view=diff&rev=518852&r1=518851&r2=518852
==============================================================================
--- xml/xindice/trunk/java/src/org/apache/xindice/core/filer/BTreeFiler.java (original)
+++ xml/xindice/trunk/java/src/org/apache/xindice/core/filer/BTreeFiler.java Thu Mar 15 20:35:49 2007
@@ -236,54 +236,29 @@
////////////////////////////////////////////////////////////////////
- public FileHeader createFileHeader() {
+ protected FileHeader createFileHeader() {
return new BTreeFilerHeader();
}
- public FileHeader createFileHeader(boolean read) throws IOException {
- return new BTreeFilerHeader(read);
- }
-
- public FileHeader createFileHeader(long pageCount) {
- return new BTreeFilerHeader(pageCount);
- }
-
- public FileHeader createFileHeader(long pageCount, int pageSize) {
- return new BTreeFilerHeader(pageCount, pageSize);
- }
-
- public PageHeader createPageHeader() {
+ protected PageHeader createPageHeader() {
return new BTreeFilerPageHeader();
}
/**
* BTreeFilerHeader
*/
-
private final class BTreeFilerHeader extends BTreeFileHeader {
- private long totalBytes = 0;
+ private long totalBytes;
public BTreeFilerHeader() {
}
- public BTreeFilerHeader(long pageCount) {
- super(pageCount);
- }
-
- public BTreeFilerHeader(long pageCount, int pageSize) {
- super(pageCount, pageSize);
- }
-
- public BTreeFilerHeader(boolean read) throws IOException {
- super(read);
- }
-
- public synchronized void read(RandomAccessFile raf) throws IOException {
+ protected synchronized void read(RandomAccessFile raf) throws IOException {
super.read(raf);
totalBytes = raf.readLong();
}
- public synchronized void write(RandomAccessFile raf) throws IOException {
+ protected synchronized void write(RandomAccessFile raf) throws IOException {
super.write(raf);
raf.writeLong(totalBytes);
}
@@ -303,10 +278,9 @@
/**
* BTreeFilerPageHeader
*/
-
private final class BTreeFilerPageHeader extends BTreePageHeader {
- private long created = 0;
- private long modified = 0;
+ private long created;
+ private long modified;
public BTreeFilerPageHeader() {
}
Modified: xml/xindice/trunk/java/src/org/apache/xindice/core/filer/HashFiler.java
URL: http://svn.apache.org/viewvc/xml/xindice/trunk/java/src/org/apache/xindice/core/filer/HashFiler.java?view=diff&rev=518852&r1=518851&r2=518852
==============================================================================
--- xml/xindice/trunk/java/src/org/apache/xindice/core/filer/HashFiler.java (original)
+++ xml/xindice/trunk/java/src/org/apache/xindice/core/filer/HashFiler.java Thu Mar 15 20:35:49 2007
@@ -383,18 +383,6 @@
return new HashFileHeader();
}
- public FileHeader createFileHeader(boolean read) throws IOException {
- return new HashFileHeader(read);
- }
-
- public FileHeader createFileHeader(long pageCount) {
- return new HashFileHeader(pageCount);
- }
-
- public FileHeader createFileHeader(long pageCount, int pageSize) {
- return new HashFileHeader(pageCount, pageSize);
- }
-
public PageHeader createPageHeader() {
return new HashPageHeader();
}
@@ -411,27 +399,12 @@
setTotalCount(getPageCount());
}
- public HashFileHeader(long pageCount) {
- super(pageCount);
- setTotalCount(getPageCount());
- }
-
- public HashFileHeader(long pageCount, int pageSize) {
- super(pageCount, pageSize);
- setTotalCount(getPageCount());
- }
-
- public HashFileHeader(boolean read) throws IOException {
- super(read);
- setTotalCount(getPageCount());
- }
-
- public synchronized void read(RandomAccessFile raf) throws IOException {
+ protected synchronized void read(RandomAccessFile raf) throws IOException {
super.read(raf);
totalBytes = raf.readLong();
}
- public synchronized void write(RandomAccessFile raf) throws IOException {
+ protected synchronized void write(RandomAccessFile raf) throws IOException {
super.write(raf);
raf.writeLong(totalBytes);
}
Modified: xml/xindice/trunk/java/src/org/apache/xindice/core/filer/Paged.java
URL: http://svn.apache.org/viewvc/xml/xindice/trunk/java/src/org/apache/xindice/core/filer/Paged.java?view=diff&rev=518852&r1=518851&r2=518852
==============================================================================
--- xml/xindice/trunk/java/src/org/apache/xindice/core/filer/Paged.java (original)
+++ xml/xindice/trunk/java/src/org/apache/xindice/core/filer/Paged.java Thu Mar 15 20:35:49 2007
@@ -333,21 +333,15 @@
*/
protected final Page getPage(long pageNum) throws IOException {
final Long lp = new Long(pageNum);
- Page p;
- synchronized (this) {
- // Check if it's in the dirty cache
- // No need to synchronize on dirtyLock thanks to atomic assignment
- p = (Page) dirty.get(lp);
-
- // if not check if it's already loaded in the page cache
- if (p == null) {
- WeakReference ref = (WeakReference) pages.get(lp);
- if (ref != null) {
- p = (Page) ref.get();
- }
+ Page p = null;
+ synchronized (pages) {
+ // Check if page is already loaded in the page cache
+ WeakReference ref = (WeakReference) pages.get(lp);
+ if (ref != null) {
+ p = (Page) ref.get();
}
- // if still not found we need to create it and add it to the page cache.
+ // If not found, create it and add it to the page cache
if (p == null) {
p = new Page(lp);
pages.put(p.pageNum, new WeakReference(p));
@@ -680,15 +674,18 @@
}
void addDirty(Page page) throws IOException {
+ boolean flush;
synchronized (dirtyLock) {
dirty.put(page.pageNum, page);
- if (dirty.size() > MAX_DIRTY_SIZE) {
- try {
- // Too many dirty pages... flush them
- flush();
- } catch (Exception e) {
- throw new IOException(e.getMessage());
- }
+ flush = dirty.size() > MAX_DIRTY_SIZE;
+ }
+
+ if (flush) {
+ // Too many dirty pages... flush them
+ try {
+ flush();
+ } catch (Exception e) {
+ throw new IOException(e.getMessage());
}
}
}
@@ -713,7 +710,7 @@
try {
p.flush();
} catch (Exception e) {
- log.warn("Exception while flushing page", e);
+ log.warn("Exception while flushing page " + p.pageNum, e);
error++;
}
}
@@ -741,36 +738,7 @@
*
* @return a new FileHeader
*/
- public abstract FileHeader createFileHeader();
-
- /**
- * createFileHeader must be implemented by a Paged implementation
- * in order to create an appropriate subclass instance of a FileHeader.
- *
- * @param read If true, reads the FileHeader from disk
- * @return a new FileHeader
- * @throws IOException if an exception occurs
- */
- public abstract FileHeader createFileHeader(boolean read) throws IOException;
-
- /**
- * createFileHeader must be implemented by a Paged implementation
- * in order to create an appropriate subclass instance of a FileHeader.
- *
- * @param pageCount The number of pages to allocate for primary storage
- * @return a new FileHeader
- */
- public abstract FileHeader createFileHeader(long pageCount);
-
- /**
- * createFileHeader must be implemented by a Paged implementation
- * in order to create an appropriate subclass instance of a FileHeader.
- *
- * @param pageCount The number of pages to allocate for primary storage
- * @param pageSize The size of a Page (should be a multiple of a FS block)
- * @return a new FileHeader
- */
- public abstract FileHeader createFileHeader(long pageCount, int pageSize);
+ protected abstract FileHeader createFileHeader();
/**
* createPageHeader must be implemented by a Paged implementation
@@ -778,7 +746,7 @@
*
* @return a new PageHeader
*/
- public abstract PageHeader createPageHeader();
+ protected abstract PageHeader createPageHeader();
// These are a bunch of utility methods for subclasses
@@ -912,30 +880,15 @@
public FileHeader() {
- this(DEFAULT_PAGECOUNT);
- }
-
- public FileHeader(long pageCount) {
- this(pageCount, DEFAULT_PAGESIZE);
- }
-
- public FileHeader(long pageCount, int pageSize) {
- this.pageSize = pageSize;
- this.pageCount = pageCount;
+ this.pageSize = DEFAULT_PAGESIZE;
+ this.pageCount = DEFAULT_PAGECOUNT;
this.headerSize = (short) FILE_HEADER_SIZE;
calculateWorkSize();
}
- public FileHeader(boolean read) throws IOException {
- if (read) {
- read();
- }
- }
-
public synchronized final void read() throws IOException {
- RandomAccessFile raf = null;
+ RandomAccessFile raf = getDescriptor();
try {
- raf = getDescriptor();
raf.seek(0);
read(raf);
calculateWorkSize();
@@ -944,7 +897,7 @@
}
}
- public synchronized void read(RandomAccessFile raf) throws IOException {
+ protected synchronized void read(RandomAccessFile raf) throws IOException {
headerSize = raf.readShort();
pageSize = raf.readInt();
pageCount = raf.readLong();
@@ -957,22 +910,19 @@
}
public synchronized final void write() throws IOException {
- if (!dirty) {
- return;
- }
-
- RandomAccessFile raf = null;
- try {
- raf = getDescriptor();
- raf.seek(0);
- write(raf);
- dirty = false;
- } finally {
- putDescriptor(raf);
+ if (dirty) {
+ RandomAccessFile raf = getDescriptor();
+ try {
+ raf.seek(0);
+ write(raf);
+ dirty = false;
+ } finally {
+ putDescriptor(raf);
+ }
}
}
- public synchronized void write(RandomAccessFile raf) throws IOException {
+ protected synchronized void write(RandomAccessFile raf) throws IOException {
raf.writeShort(headerSize);
raf.writeInt(pageSize);
raf.writeLong(pageCount);
@@ -1089,8 +1039,6 @@
/**
* Get the size of a page header.
- *
- * Normally, 64 is sufficient
*/
public synchronized final byte getPageHeaderSize() {
return pageHeaderSize;
@@ -1107,9 +1055,7 @@
}
/**
- * Get the maximum number of bytes.
- *
- * Normally, 256 is good.
+ * Get the maximum number of bytes a key can be.
*/
public synchronized final short getMaxKeySize() {
return maxKeySize;
Modified: xml/xindice/trunk/java/src/org/apache/xindice/core/indexer/ValueIndexer.java
URL: http://svn.apache.org/viewvc/xml/xindice/trunk/java/src/org/apache/xindice/core/indexer/ValueIndexer.java?view=diff&rev=518852&r1=518851&r2=518852
==============================================================================
--- xml/xindice/trunk/java/src/org/apache/xindice/core/indexer/ValueIndexer.java (original)
+++ xml/xindice/trunk/java/src/org/apache/xindice/core/indexer/ValueIndexer.java Thu Mar 15 20:35:49 2007
@@ -87,7 +87,7 @@
private String pattern;
private int type;
private int typeSize = 32;
- private boolean wildcard = false;
+ private boolean wildcard;
public ValueIndexer() {
@@ -97,7 +97,7 @@
/**
* Override createFileHeader - set page size to 1024
*/
- public Paged.FileHeader createFileHeader() {
+ protected Paged.FileHeader createFileHeader() {
Paged.FileHeader header = super.createFileHeader();
header.setPageSize(1024);
return header;
@@ -268,7 +268,7 @@
case CHAR:
char c = value.charAt(0);
b[0] = (byte) ((c >>> 8) & 0xFF);
- b[1] = (byte) ((c >>> 0) & 0xFF);
+ b[1] = (byte) ( c & 0xFF);
break;
case BOOLEAN:
@@ -315,21 +315,21 @@
b[l + 1] = (byte) ((pos >>> 24) & 0xFF);
b[l + 2] = (byte) ((pos >>> 16) & 0xFF);
b[l + 3] = (byte) ((pos >>> 8) & 0xFF);
- b[l + 4] = (byte) ((pos >>> 0) & 0xFF);
+ b[l + 4] = (byte) ( pos & 0xFF);
// Write the len
b[l + 5] = (byte) ((len >>> 24) & 0xFF);
b[l + 6] = (byte) ((len >>> 16) & 0xFF);
b[l + 7] = (byte) ((len >>> 8) & 0xFF);
- b[l + 8] = (byte) ((len >>> 0) & 0xFF);
+ b[l + 8] = (byte) ( len & 0xFF);
// Write the elemID
b[l + 9] = (byte) ((elemID >>> 8) & 0xFF);
- b[l + 10] = (byte) ((elemID >>> 0) & 0xFF);
+ b[l + 10] = (byte) ( elemID & 0xFF);
// Write the attrID
b[l + 11] = (byte) ((attrID >>> 8) & 0xFF);
- b[l + 12] = (byte) ((attrID >>> 0) & 0xFF);
+ b[l + 12] = (byte) ( attrID & 0xFF);
result = new Value(b);
} catch (Exception e) {
Modified: xml/xindice/trunk/java/tests/src/org/apache/xindice/StressTests.java
URL: http://svn.apache.org/viewvc/xml/xindice/trunk/java/tests/src/org/apache/xindice/StressTests.java?view=diff&rev=518852&r1=518851&r2=518852
==============================================================================
--- xml/xindice/trunk/java/tests/src/org/apache/xindice/StressTests.java (original)
+++ xml/xindice/trunk/java/tests/src/org/apache/xindice/StressTests.java Thu Mar 15 20:35:49 2007
@@ -19,24 +19,32 @@
package org.apache.xindice;
+import org.apache.xindice.core.filer.HashFilerTest;
+
+import com.clarkware.junitperf.LoadTest;
import junit.framework.Test;
import junit.framework.TestSuite;
+import junit.framework.TestCase;
/**
* @version $Revision$, $Date$
* @author Vladimir R. Bossicard <vl...@apache.org>
*/
-public class StressTests {
+public class StressTests extends TestSuite {
+
+ private static final int USERS = 5;
+ private static final int ITERATIONS = 5;
- private static final int USERS = 1;
- private static final int ITERATIONS = 1;
+ public StressTests(String name) {
+ super(name);
+ }
- public static Test suite() {
- TestSuite suite = new TestSuite("Xindice stress tests");
+ public static Test suite() {
+ TestSuite suite = new StressTests("Xindice stress tests");
// suite.addTest(new StressFilerTestSetup(new TestSuite(FilerTestCase.class), new BTreeFiler(), USERS, ITERATIONS));
// suite.addTest(new StressFilerTestSetup(new TestSuite(FilerTestCase.class), new FSFiler(), USERS, ITERATIONS));
-// suite.addTest(new StressFilerTestSetup(new TestSuite(FilerTestCase.class), new HashFiler(), USERS, ITERATIONS));
+// suite.addTest(new LoadTest(new TestSuite(HashFilerTest.class), USERS, ITERATIONS));
// suite.addTest(new StressFilerTestSetup(new TestSuite(FilerTestCase.class), new MemFiler(), USERS, ITERATIONS));
return suite;
Modified: xml/xindice/trunk/java/tests/src/org/apache/xindice/UnitTests.java
URL: http://svn.apache.org/viewvc/xml/xindice/trunk/java/tests/src/org/apache/xindice/UnitTests.java?view=diff&rev=518852&r1=518851&r2=518852
==============================================================================
--- xml/xindice/trunk/java/tests/src/org/apache/xindice/UnitTests.java (original)
+++ xml/xindice/trunk/java/tests/src/org/apache/xindice/UnitTests.java Thu Mar 15 20:35:49 2007
@@ -44,7 +44,7 @@
try {
Class filerClass = Class.forName("org.apache.xindice.core.filer.BerkeleyBTreeFiler");
Filer filer = (Filer) filerClass.newInstance();
- suite.addTest(new FilerTestBase("BerkeleyFilerTestCase", filer));
+ suite.addTest(new FilerTestBase("BerkeleyFilerTestCase", filer){});
} catch (Exception e) {
// If the class wasn't built just ignore it.
}
Modified: xml/xindice/trunk/java/tests/src/org/apache/xindice/core/filer/FilerTestBase.java
URL: http://svn.apache.org/viewvc/xml/xindice/trunk/java/tests/src/org/apache/xindice/core/filer/FilerTestBase.java?view=diff&rev=518852&r1=518851&r2=518852
==============================================================================
--- xml/xindice/trunk/java/tests/src/org/apache/xindice/core/filer/FilerTestBase.java (original)
+++ xml/xindice/trunk/java/tests/src/org/apache/xindice/core/filer/FilerTestBase.java Thu Mar 15 20:35:49 2007
@@ -40,7 +40,7 @@
* @author <a href="mailto:vladimir@apache.org">Vladimir R. Bossicard</a>
* @author <a href="mailto:vgritsenko@apache.org">Vadim Gritsenko</a>
*/
-public class FilerTestBase extends TestCase {
+public abstract class FilerTestBase extends TestCase {
public static final String TEST_COLLECTION_NAME = "tests";
public static final Key TEST_KEY = new Key("test.xml");
Modified: xml/xindice/trunk/java/tests/src/org/apache/xindice/xml/dom/NodeTest.java
URL: http://svn.apache.org/viewvc/xml/xindice/trunk/java/tests/src/org/apache/xindice/xml/dom/NodeTest.java?view=diff&rev=518852&r1=518851&r2=518852
==============================================================================
--- xml/xindice/trunk/java/tests/src/org/apache/xindice/xml/dom/NodeTest.java (original)
+++ xml/xindice/trunk/java/tests/src/org/apache/xindice/xml/dom/NodeTest.java Thu Mar 15 20:35:49 2007
@@ -89,8 +89,8 @@
}
public void testCommonEntities() {
- Node n = root.getFirstChild().getFirstChild().getFirstChild();
- assertEquals("<common & entities>", n.getNodeValue());
+ Node n = root.getFirstChild().getFirstChild();
+ assertEquals("<common & entities>", ((NodeImpl) n).getTextContent());
}
public void testCDATA() {