[jboss-cvs] JBoss Messaging SVN: r3722 - in projects/jaio/trunk/jaio/java: src/org/jboss/jaio/libaioimpl and 1 other directories.
jboss-cvs-commits at lists.jboss.org
jboss-cvs-commits at lists.jboss.org
Thu Feb 14 17:39:38 EST 2008
Author: clebert.suconic at jboss.com
Date: 2008-02-14 17:39:38 -0500 (Thu, 14 Feb 2008)
New Revision: 3722
Modified:
projects/jaio/trunk/jaio/java/src/org/jboss/jaio/api/AIOController.java
projects/jaio/trunk/jaio/java/src/org/jboss/jaio/api/AIOPackage.java
projects/jaio/trunk/jaio/java/src/org/jboss/jaio/libaioimpl/LibAIOController.java
projects/jaio/trunk/jaio/java/tests/org/jboss/jaio/libaioimpl/test/TestController.java
Log:
Tweaks
Modified: projects/jaio/trunk/jaio/java/src/org/jboss/jaio/api/AIOController.java
===================================================================
--- projects/jaio/trunk/jaio/java/src/org/jboss/jaio/api/AIOController.java 2008-02-14 22:38:57 UTC (rev 3721)
+++ projects/jaio/trunk/jaio/java/src/org/jboss/jaio/api/AIOController.java 2008-02-14 22:39:38 UTC (rev 3722)
@@ -25,7 +25,9 @@
void recoverContent(AIORecoveryCallback callbackRecover);
- /** This only flush any buffers into IO, it doesn't guarantee information on disk */
- void flushMemory();
+ void pollEvents();
+
+ void validateLowRate();
+
}
Modified: projects/jaio/trunk/jaio/java/src/org/jboss/jaio/api/AIOPackage.java
===================================================================
--- projects/jaio/trunk/jaio/java/src/org/jboss/jaio/api/AIOPackage.java 2008-02-14 22:38:57 UTC (rev 3721)
+++ projects/jaio/trunk/jaio/java/src/org/jboss/jaio/api/AIOPackage.java 2008-02-14 22:39:38 UTC (rev 3722)
@@ -18,4 +18,6 @@
void decode(int length, ByteBuffer buffer);
void done();
+
+
}
Modified: projects/jaio/trunk/jaio/java/src/org/jboss/jaio/libaioimpl/LibAIOController.java
===================================================================
--- projects/jaio/trunk/jaio/java/src/org/jboss/jaio/libaioimpl/LibAIOController.java 2008-02-14 22:38:57 UTC (rev 3721)
+++ projects/jaio/trunk/jaio/java/src/org/jboss/jaio/libaioimpl/LibAIOController.java 2008-02-14 22:39:38 UTC (rev 3722)
@@ -13,8 +13,10 @@
*/
public class LibAIOController implements AIOController
{
-
- // Warning: Beware of the C++ pointer! It will bite you! :-)
+
+ /**
+ * Warning: Beware of the C++ pointer! It will bite you! :-)
+ */
private long handler;
static
@@ -32,11 +34,6 @@
}
- public void flushMemory()
- {
- flushMemory(handler);
- }
-
public void open(String fileName)
{
handler = init (fileName, AIOPackage.class);
@@ -83,6 +80,16 @@
// TODO Auto-generated method stub
}
+
+ public void pollEvents()
+ {
+ pollEvents(handler);
+ }
+
+ public void validateLowRate()
+ {
+ validateLowRate(handler);
+ }
@SuppressWarnings("unchecked")
private static native long init(String fileName, Class aioPackageClazz);
@@ -92,7 +99,11 @@
private static native void append(long handle, AIOPackage aioPackage);
- private static native void flushMemory(long handle);
+ private static native void closeInternal(long handler);
- private static native void closeInternal(long handler);
+ /** Poll asynchrounous events from internal queues */
+ private static native void pollEvents(long handler);
+
+ /** Poll asynchrounous events from internal queues */
+ private static native void validateLowRate(long handler);
}
Modified: projects/jaio/trunk/jaio/java/tests/org/jboss/jaio/libaioimpl/test/TestController.java
===================================================================
--- projects/jaio/trunk/jaio/java/tests/org/jboss/jaio/libaioimpl/test/TestController.java 2008-02-14 22:38:57 UTC (rev 3721)
+++ projects/jaio/trunk/jaio/java/tests/org/jboss/jaio/libaioimpl/test/TestController.java 2008-02-14 22:39:38 UTC (rev 3722)
@@ -2,6 +2,8 @@
import java.io.File;
import java.nio.ByteBuffer;
+import java.util.ArrayList;
+import java.util.concurrent.CountDownLatch;
import org.jboss.jaio.api.AIOPackage;
import org.jboss.jaio.libaioimpl.LibAIOController;
@@ -11,12 +13,15 @@
public class TestController extends TestCase
{
+ byte commonBuffer[] = null;
+
@Override
protected void setUp() throws Exception
{
super.setUp();
+ LocalAIO.staticDone = 0;
File file = new File("/tmp/libaio.log");
file.delete();
}
@@ -41,13 +46,63 @@
assertTrue(aio.encodeSizeCalled);
assertFalse(aio.doneCalled);
- controller.flushMemory();
+ controller.pollEvents();
assertTrue(aio.doneCalled);
controller.close();
}
+ public void testDirectDataNoPage() throws Exception
+ {
+ final int NUMBER_LINES = 2500;
+ final int SIZE = 100*512;
+
+ commonBuffer = new byte[SIZE];
+ for (int i=0; i< commonBuffer.length-1; i++)
+ {
+ commonBuffer[i] = (byte)('A' + (i%10));
+ }
+ commonBuffer[commonBuffer.length -1] = '\n';
+
+ CountDownLatch latchDone = new CountDownLatch(NUMBER_LINES);
+ LibAIOController controller = new LibAIOController();
+ controller.open("/tmp/libaio.log");
+ ArrayList<LocalAIO> list = new ArrayList<LocalAIO>();
+
+ for (int i=0; i<NUMBER_LINES; i++)
+ {
+ list.add(new LocalAIO(SIZE, commonBuffer, latchDone));
+ }
+
+
+ long valueInitial = System.currentTimeMillis();
+ int counterFile=0;
+ for (LocalAIO tmp: list)
+ {
+ controller.append(tmp);
+ }
+ System.out.println("Finished append " + (System.currentTimeMillis() - valueInitial) + " received = " + LocalAIO.staticDone);
+ System.out.println("Flush now");
+ controller.pollEvents();
+ latchDone.await();
+
+ long timeTotal = System.currentTimeMillis() - valueInitial;
+ System.out.println("Flushed " + timeTotal);
+ System.out.println("time = " + timeTotal + " for " + NUMBER_LINES + " registers " + " size each line = " + SIZE + " Records/Sec=" + (NUMBER_LINES*1000/timeTotal));
+
+ for (LocalAIO tmp: list)
+ {
+ assertEquals(1, tmp.timesDoneCalled);
+ assertTrue(tmp.encodeCalled);
+ assertTrue(tmp.encodeSizeCalled);
+ assertTrue(tmp.doneCalled);
+ }
+
+ controller.close();
+
+ }
+
public void testPage() throws Exception
{
LibAIOController controller = new LibAIOController();
@@ -55,7 +110,7 @@
LocalAIO aio = new LocalAIO(500);
controller.append(aio);
- controller.flushMemory();
+ controller.pollEvents();
assertTrue(aio.doneCalled);
assertEquals(1, aio.timesDoneCalled);
controller.close();
@@ -65,21 +120,31 @@
private static class LocalAIO implements AIOPackage
{
- int times = 1;
- public LocalAIO(int times)
+ CountDownLatch latch;
+ int size = 1;
+ byte[] buffer = null;
+ public LocalAIO()
{
- this.times = times;
+ this(10);
}
- public LocalAIO()
+ public LocalAIO(int size)
{
- this.times = 1;
+ this.size = size;
}
+ public LocalAIO(int size, byte[] buffer, CountDownLatch latch)
+ {
+ this(size);
+ this.latch = latch;
+ this.buffer = buffer;
+ }
+
boolean encodeCalled = false;
boolean encodeSizeCalled = false;
boolean doneCalled = false;
int timesDoneCalled = 0;
+ static int staticDone = 0;
public void decode(int length, ByteBuffer buffer)
{
// TODO Auto-generated method stub
@@ -88,36 +153,37 @@
public void done()
{
-// System.out.println("Done called");
+ if (latch != null)
+ {
+ latch.countDown();
+ }
doneCalled = true;
timesDoneCalled++;
+ staticDone++;
}
public void encode(ByteBuffer buffer)
{
encodeCalled = true;
- for (int i=0; i<times; i++)
+ if (this.buffer!=null)
{
- buffer.put((byte)'A');
- buffer.put((byte)'B');
- buffer.put((byte)'C');
- buffer.put((byte)'D');
- buffer.put((byte)'E');
- buffer.put((byte)'F');
- buffer.put((byte)'G');
- buffer.put((byte)'H');
- buffer.put((byte)'I');
+ buffer.put(this.buffer);
+ }
+ else
+ {
+ for (int i=0; i<size-1; i++)
+ {
+ buffer.put((byte)('A' + (i%10)));
+ }
buffer.put((byte)'\n');
}
}
public int encodeSize()
{
- System.out.println("Size called");
- System.out.flush();
encodeSizeCalled = true;
- return 10 * times;
+ return size;
}
}
More information about the jboss-cvs-commits
mailing list