fix for last commit and more testing stub

git-svn-id: https://svn.berlios.de/svnroot/repos/yacy/trunk@5697 6c8d7289-2bf4-0310-a012-ef5d649a1542
pull/1/head
orbiter 16 years ago
parent ca006c506d
commit 84e37387a2

@ -43,8 +43,11 @@ public class Column {
public static final int encoder_b256 = 2; public static final int encoder_b256 = 2;
public static final int encoder_bytes = 3; public static final int encoder_bytes = 3;
public int celltype, cellwidth, encoder; public int cellwidth;
public String nickname, description; public final String nickname;
protected final int celltype;
protected final int encoder;
protected final String description;
public Column(final String nickname, final int celltype, final int encoder, final int cellwidth, final String description) { public Column(final String nickname, final int celltype, final int encoder, final int cellwidth, final String description) {
this.celltype = celltype; this.celltype = celltype;
@ -169,7 +172,7 @@ public class Column {
else if (this.celltype == celltype_boolean) this.encoder = encoder_bytes; else if (this.celltype == celltype_boolean) this.encoder = encoder_bytes;
else if (this.celltype == celltype_binary) this.encoder = encoder_bytes; else if (this.celltype == celltype_binary) this.encoder = encoder_bytes;
else if (this.celltype == celltype_string) this.encoder = encoder_bytes; else if (this.celltype == celltype_string) this.encoder = encoder_bytes;
else if (this.celltype == celltype_cardinal) throw new kelondroException("kelondroColumn - encoder missing for cell " + this.nickname); else throw new kelondroException("kelondroColumn - encoder missing for cell " + this.nickname);
} }
} else { } else {
if (this.celltype == celltype_cardinal) throw new kelondroException("kelondroColumn - encoder missing for cell " + this.nickname); if (this.celltype == celltype_cardinal) throw new kelondroException("kelondroColumn - encoder missing for cell " + this.nickname);
@ -188,12 +191,6 @@ public class Column {
} }
} }
public void setAttributes(final String nickname, final int celltype, final int encoder) {
this.celltype = celltype;
this.encoder = encoder;
this.nickname = nickname;
}
public String toString() { public String toString() {
final StringBuilder s = new StringBuilder(); final StringBuilder s = new StringBuilder();
switch (celltype) { switch (celltype) {

@ -34,6 +34,7 @@ import java.io.InputStream;
import java.io.OutputStream; import java.io.OutputStream;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Iterator; import java.util.Iterator;
import java.util.Random;
import java.util.concurrent.ArrayBlockingQueue; import java.util.concurrent.ArrayBlockingQueue;
import java.util.concurrent.BlockingQueue; import java.util.concurrent.BlockingQueue;
import java.util.concurrent.Callable; import java.util.concurrent.Callable;
@ -42,8 +43,10 @@ import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors; import java.util.concurrent.Executors;
import java.util.concurrent.Future; import java.util.concurrent.Future;
import de.anomic.kelondro.order.Base64Order;
import de.anomic.kelondro.order.ByteOrder; import de.anomic.kelondro.order.ByteOrder;
import de.anomic.kelondro.order.CloneableIterator; import de.anomic.kelondro.order.CloneableIterator;
import de.anomic.yacy.dht.FlatWordPartitionScheme;
public class IntegerHandleIndex { public class IntegerHandleIndex {
@ -314,4 +317,19 @@ public class IntegerHandleIndex {
} }
} }
public static void main(String[] args) {
int count = (args.length == 0) ? 100000 : Integer.parseInt(args[0]);
IntegerHandleIndex idx = new IntegerHandleIndex(12, Base64Order.enhancedCoder, 100000);
Random r = new Random(0);
long start = System.currentTimeMillis();
try {
for (int i = 0; i < count; i++) {
idx.inc(FlatWordPartitionScheme.positionToHash(r.nextInt(count / 32)).getBytes());
}
} catch (IOException e) {
e.printStackTrace();
}
System.out.println("Result: " + (((long) count) * 1000L / (System.currentTimeMillis() - start)) + " inc per second; " + count + " loops.");
}
} }

@ -63,7 +63,7 @@ public final class Row {
this.colstart = new int[row.length]; this.colstart = new int[row.length];
int os = 0; int os = 0;
for (int i = 0; i < row.length; i++) { for (int i = 0; i < row.length; i++) {
this.colstart[i] = this.objectsize; this.colstart[i] = os;
os+= this.row[i].cellwidth; os+= this.row[i].cellwidth;
} }
this.objectsize = os; this.objectsize = os;
@ -97,7 +97,7 @@ public final class Row {
this.colstart = new int[row.length]; this.colstart = new int[row.length];
int os = 0; int os = 0;
for (int i = 0; i < l.size(); i++) { for (int i = 0; i < l.size(); i++) {
this.colstart[i] = this.objectsize; this.colstart[i] = os;
this.row[i] = l.get(i); this.row[i] = l.get(i);
os += this.row[i].cellwidth; os += this.row[i].cellwidth;
} }

@ -73,7 +73,7 @@ public class FlexTable extends FlexWidthArray implements ObjectIndex {
} }
minimumSpace = Math.max(minimumSpace, super.size()); minimumSpace = Math.max(minimumSpace, super.size());
try { try {
final long neededRAM = 10 * 1024 * 104 + (long) ((super.row().column(0).cellwidth + 4) * minimumSpace * RowCollection.growfactor); final long neededRAM = 10 * 1024 * 104 + (long) ((super.row().primaryKeyLength + 4) * minimumSpace * RowCollection.growfactor);
final File newpath = new File(path, tablename); final File newpath = new File(path, tablename);
final File indexfile = new File(newpath, "col.000.index"); final File indexfile = new File(newpath, "col.000.index");
@ -112,7 +112,7 @@ public class FlexTable extends FlexWidthArray implements ObjectIndex {
} catch (final IOException e) { } catch (final IOException e) {
if (resetOnFail) { if (resetOnFail) {
RAMIndex = true; RAMIndex = true;
index = new IntegerHandleIndex(super.row().column(0).cellwidth, super.rowdef.objectOrder, 0); index = new IntegerHandleIndex(super.row().primaryKeyLength, super.rowdef.objectOrder, 0);
} else { } else {
throw new kelondroException(e.getMessage()); throw new kelondroException(e.getMessage());
} }
@ -122,7 +122,7 @@ public class FlexTable extends FlexWidthArray implements ObjectIndex {
public void clear() throws IOException { public void clear() throws IOException {
super.reset(); super.reset();
RAMIndex = true; RAMIndex = true;
index = new IntegerHandleIndex(super.row().column(0).cellwidth, super.rowdef.objectOrder, 0); index = new IntegerHandleIndex(super.row().primaryKeyLength, super.rowdef.objectOrder, 0);
} }
public static int staticSize(final File path, final String tablename) { public static int staticSize(final File path, final String tablename) {
@ -130,7 +130,7 @@ public class FlexTable extends FlexWidthArray implements ObjectIndex {
} }
public static int staticRAMIndexNeed(final File path, final String tablename, final Row rowdef) { public static int staticRAMIndexNeed(final File path, final String tablename, final Row rowdef) {
return (int) ((rowdef.column(0).cellwidth + 4) * staticSize(path, tablename) * RowCollection.growfactor); return (int) ((rowdef.primaryKeyLength + 4) * staticSize(path, tablename) * RowCollection.growfactor);
} }
public boolean hasRAMIndex() { public boolean hasRAMIndex() {
@ -148,7 +148,7 @@ public class FlexTable extends FlexWidthArray implements ObjectIndex {
private IntegerHandleIndex initializeRamIndex(final int initialSpace) { private IntegerHandleIndex initializeRamIndex(final int initialSpace) {
final int space = Math.max(super.col[0].size(), initialSpace) + 1; final int space = Math.max(super.col[0].size(), initialSpace) + 1;
if (space < 0) throw new kelondroException("wrong space: " + space); if (space < 0) throw new kelondroException("wrong space: " + space);
final IntegerHandleIndex ri = new IntegerHandleIndex(super.row().column(0).cellwidth, super.rowdef.objectOrder, space); final IntegerHandleIndex ri = new IntegerHandleIndex(super.row().primaryKeyLength, super.rowdef.objectOrder, space);
final Iterator<Node> content = super.col[0].contentNodes(-1); final Iterator<Node> content = super.col[0].contentNodes(-1);
Node node; Node node;
int i; int i;

Loading…
Cancel
Save