You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@jena.apache.org by an...@apache.org on 2011/05/22 21:24:03 UTC
svn commit: r1126187 - in /incubator/jena/Experimental/TxTDB/trunk:
src-dev/tx/ src/main/java/com/hp/hpl/jena/tdb/base/block/
src/test/java/com/hp/hpl/jena/tdb/base/block/
src/test/java/com/hp/hpl/jena/tdb/base/recordfile/
Author: andy
Date: Sun May 22 19:24:03 2011
New Revision: 1126187
URL: http://svn.apache.org/viewvc?rev=1126187&view=rev
Log: (empty)
Modified:
incubator/jena/Experimental/TxTDB/trunk/src-dev/tx/DevTx.java
incubator/jena/Experimental/TxTDB/trunk/src-dev/tx/TxMain.java
incubator/jena/Experimental/TxTDB/trunk/src/main/java/com/hp/hpl/jena/tdb/base/block/BlockMgrFactory.java
incubator/jena/Experimental/TxTDB/trunk/src/main/java/com/hp/hpl/jena/tdb/base/block/BlockMgrTracker.java
incubator/jena/Experimental/TxTDB/trunk/src/test/java/com/hp/hpl/jena/tdb/base/block/AbstractTestBlockMgr.java
incubator/jena/Experimental/TxTDB/trunk/src/test/java/com/hp/hpl/jena/tdb/base/block/TestBlockMgrDirect.java
incubator/jena/Experimental/TxTDB/trunk/src/test/java/com/hp/hpl/jena/tdb/base/block/TestBlockMgrTracked.java
incubator/jena/Experimental/TxTDB/trunk/src/test/java/com/hp/hpl/jena/tdb/base/recordfile/TestRecordBufferPage.java
Modified: incubator/jena/Experimental/TxTDB/trunk/src-dev/tx/DevTx.java
URL: http://svn.apache.org/viewvc/incubator/jena/Experimental/TxTDB/trunk/src-dev/tx/DevTx.java?rev=1126187&r1=1126186&r2=1126187&view=diff
==============================================================================
--- incubator/jena/Experimental/TxTDB/trunk/src-dev/tx/DevTx.java (original)
+++ incubator/jena/Experimental/TxTDB/trunk/src-dev/tx/DevTx.java Sun May 22 19:24:03 2011
@@ -3,9 +3,11 @@ package tx;
public class DevTx
{
+ // Test with overlapping iterators.
// Run tests with BlockMgrFactory.tracked on.
- // Test with overlapping iterators.
+ // BlockMgr -- count begine/end iters (or just via activeIterators?)
+ // checkReadOrIter -->
// Channel+Adler32
Modified: incubator/jena/Experimental/TxTDB/trunk/src-dev/tx/TxMain.java
URL: http://svn.apache.org/viewvc/incubator/jena/Experimental/TxTDB/trunk/src-dev/tx/TxMain.java?rev=1126187&r1=1126186&r2=1126187&view=diff
==============================================================================
--- incubator/jena/Experimental/TxTDB/trunk/src-dev/tx/TxMain.java (original)
+++ incubator/jena/Experimental/TxTDB/trunk/src-dev/tx/TxMain.java Sun May 22 19:24:03 2011
@@ -69,13 +69,12 @@ public class TxMain
public static void main(String... args)
{
- //tree_ins_2_01() ; exit(0) ;
+ tree_ins_2_01() ; exit(0) ;
//test.BPlusTreeRun.main("test", "--bptree:track", "3", "125", "100000") ; exit(0) ;
//test.BPlusTreeRun.main("perf", "3", "125", "100") ; exit(0) ;
//test.BPlusTreeRun.main("test", "--bptree:check", "3", "125", "100000") ; exit(0) ;
-
BlockMgr blkMgr = BlockMgrFactory.createMem("test", 100) ;
blkMgr = BlockMgrTracker.track("foo", blkMgr) ;
blkMgr.beginUpdate() ;
Modified: incubator/jena/Experimental/TxTDB/trunk/src/main/java/com/hp/hpl/jena/tdb/base/block/BlockMgrFactory.java
URL: http://svn.apache.org/viewvc/incubator/jena/Experimental/TxTDB/trunk/src/main/java/com/hp/hpl/jena/tdb/base/block/BlockMgrFactory.java?rev=1126187&r1=1126186&r2=1126187&view=diff
==============================================================================
--- incubator/jena/Experimental/TxTDB/trunk/src/main/java/com/hp/hpl/jena/tdb/base/block/BlockMgrFactory.java (original)
+++ incubator/jena/Experimental/TxTDB/trunk/src/main/java/com/hp/hpl/jena/tdb/base/block/BlockMgrFactory.java Sun May 22 19:24:03 2011
@@ -20,13 +20,14 @@ import com.hp.hpl.jena.tdb.sys.SystemTDB
public class BlockMgrFactory
{
- private final static boolean AddTracker = false ;
+ public final static boolean AddTracker = true ;
public static BlockMgr tracker(BlockMgr blockMgr)
{
if ( blockMgr instanceof BlockMgrTracker ) return blockMgr ;
return new BlockMgrTracker(blockMgr) ;
}
+ /** Add a tracker if the system default is to do so */
private static BlockMgr track(BlockMgr blockMgr)
{
if ( ! AddTracker ) return blockMgr ;
Modified: incubator/jena/Experimental/TxTDB/trunk/src/main/java/com/hp/hpl/jena/tdb/base/block/BlockMgrTracker.java
URL: http://svn.apache.org/viewvc/incubator/jena/Experimental/TxTDB/trunk/src/main/java/com/hp/hpl/jena/tdb/base/block/BlockMgrTracker.java?rev=1126187&r1=1126186&r2=1126187&view=diff
==============================================================================
--- incubator/jena/Experimental/TxTDB/trunk/src/main/java/com/hp/hpl/jena/tdb/base/block/BlockMgrTracker.java (original)
+++ incubator/jena/Experimental/TxTDB/trunk/src/main/java/com/hp/hpl/jena/tdb/base/block/BlockMgrTracker.java Sun May 22 19:24:03 2011
@@ -124,7 +124,7 @@ public class BlockMgrTracker /*extends B
{
synchronized (this)
{
- checkRead(IterRead) ;
+ checkReadOrIter(IterRead) ;
add(IterRead, id) ;
activeIterBlocks.add(id) ;
}
@@ -167,7 +167,7 @@ public class BlockMgrTracker /*extends B
{
synchronized (this)
{
- checkRead(Release) ;
+ checkReadOrIter(Release) ;
Integer id = block.getId() ;
add(Release, id) ;
@@ -358,6 +358,13 @@ public class BlockMgrTracker /*extends B
error(action, "Called outside update and read") ;
}
+ private void checkReadOrIter(Action action)
+ {
+ if ( ! inUpdate && inRead == 0 && activeIterBlocks.size() == 0 )
+ error(action, "Called outside update, read or an iterator") ;
+ }
+
+
private void checkEmpty(String string, MultiSet<Integer> blocks)
{
if ( ! blocks.isEmpty() )
Modified: incubator/jena/Experimental/TxTDB/trunk/src/test/java/com/hp/hpl/jena/tdb/base/block/AbstractTestBlockMgr.java
URL: http://svn.apache.org/viewvc/incubator/jena/Experimental/TxTDB/trunk/src/test/java/com/hp/hpl/jena/tdb/base/block/AbstractTestBlockMgr.java?rev=1126187&r1=1126186&r2=1126187&view=diff
==============================================================================
--- incubator/jena/Experimental/TxTDB/trunk/src/test/java/com/hp/hpl/jena/tdb/base/block/AbstractTestBlockMgr.java (original)
+++ incubator/jena/Experimental/TxTDB/trunk/src/test/java/com/hp/hpl/jena/tdb/base/block/AbstractTestBlockMgr.java Sun May 22 19:24:03 2011
@@ -23,10 +23,18 @@ public abstract class AbstractTestBlockM
protected BlockMgr blockMgr = null ;
- @Before public void before() { blockMgr = make() ; }
+ @Before public void before()
+ {
+ blockMgr = make() ;
+ blockMgr.beginUpdate() ;
+ }
@After public void after()
{
- if (blockMgr != null) blockMgr.close() ;
+ if (blockMgr != null)
+ {
+ blockMgr.endUpdate() ;
+ blockMgr.close() ;
+ }
}
@Test public void file01()
@@ -35,6 +43,7 @@ public abstract class AbstractTestBlockM
ByteBuffer bb = block.getByteBuffer() ;
fill(bb, (byte)1) ;
blockMgr.write(block) ;
+ blockMgr.release(block) ;
}
@Test public void file02()
Modified: incubator/jena/Experimental/TxTDB/trunk/src/test/java/com/hp/hpl/jena/tdb/base/block/TestBlockMgrDirect.java
URL: http://svn.apache.org/viewvc/incubator/jena/Experimental/TxTDB/trunk/src/test/java/com/hp/hpl/jena/tdb/base/block/TestBlockMgrDirect.java?rev=1126187&r1=1126186&r2=1126187&view=diff
==============================================================================
--- incubator/jena/Experimental/TxTDB/trunk/src/test/java/com/hp/hpl/jena/tdb/base/block/TestBlockMgrDirect.java (original)
+++ incubator/jena/Experimental/TxTDB/trunk/src/test/java/com/hp/hpl/jena/tdb/base/block/TestBlockMgrDirect.java Sun May 22 19:24:03 2011
@@ -28,7 +28,10 @@ public class TestBlockMgrDirect extends
// Make directly - no wrapper, no cache, no free block mgt.
FileOps.delete(filename) ;
BlockAccess file = new BlockAccessDirect(filename, BlkSize) ;
- return new BlockMgrFileAccess(file, BlkSize) ;
+ BlockMgr mgr = new BlockMgrFileAccess(file, BlkSize) ;
+ if ( BlockMgrFactory.AddTracker )
+ mgr = BlockMgrFactory.tracker(mgr) ;
+ return mgr ;
}
}
Modified: incubator/jena/Experimental/TxTDB/trunk/src/test/java/com/hp/hpl/jena/tdb/base/block/TestBlockMgrTracked.java
URL: http://svn.apache.org/viewvc/incubator/jena/Experimental/TxTDB/trunk/src/test/java/com/hp/hpl/jena/tdb/base/block/TestBlockMgrTracked.java?rev=1126187&r1=1126186&r2=1126187&view=diff
==============================================================================
--- incubator/jena/Experimental/TxTDB/trunk/src/test/java/com/hp/hpl/jena/tdb/base/block/TestBlockMgrTracked.java (original)
+++ incubator/jena/Experimental/TxTDB/trunk/src/test/java/com/hp/hpl/jena/tdb/base/block/TestBlockMgrTracked.java Sun May 22 19:24:03 2011
@@ -24,9 +24,19 @@ public class TestBlockMgrTracked extends
// Mainly testing the tracking
static boolean b ;
- @BeforeClass static public void beforeClass() { b = BlockMgrTracker.verbose ; BlockMgrTracker.verbose = false ; }
- @AfterClass static public void afterClass() { BlockMgrTracker.verbose = b ;}
-
+
+ @BeforeClass
+ static public void beforeClass()
+ {
+ b = BlockMgrTracker.verbose ;
+ BlockMgrTracker.verbose = false ;
+ }
+
+ @AfterClass
+ static public void afterClass()
+ {
+ BlockMgrTracker.verbose = b ;
+ }
@Test public void track_01()
{
Modified: incubator/jena/Experimental/TxTDB/trunk/src/test/java/com/hp/hpl/jena/tdb/base/recordfile/TestRecordBufferPage.java
URL: http://svn.apache.org/viewvc/incubator/jena/Experimental/TxTDB/trunk/src/test/java/com/hp/hpl/jena/tdb/base/recordfile/TestRecordBufferPage.java?rev=1126187&r1=1126186&r2=1126187&view=diff
==============================================================================
--- incubator/jena/Experimental/TxTDB/trunk/src/test/java/com/hp/hpl/jena/tdb/base/recordfile/TestRecordBufferPage.java (original)
+++ incubator/jena/Experimental/TxTDB/trunk/src/test/java/com/hp/hpl/jena/tdb/base/recordfile/TestRecordBufferPage.java Sun May 22 19:24:03 2011
@@ -35,27 +35,32 @@ public class TestRecordBufferPage extend
@Test public void recBufferPage01()
{
BlockMgr blkMgr = makeBlockMgr() ;
+ blkMgr.beginUpdate() ;
RecordBufferPageMgr rpm = new RecordBufferPageMgr(factory, blkMgr) ;
RecordBufferPage page = rpm.create() ;
fill(page.getRecordBuffer(), 10, 20, 30) ;
assertEquals(10, get(page, 0)) ;
assertEquals(20, get(page, 1)) ;
assertEquals(30, get(page, 2)) ;
+ rpm.release(page) ;
+ blkMgr.endUpdate() ;
}
@Test public void recBufferPage02()
{
BlockMgr blkMgr = makeBlockMgr() ;
+ blkMgr.beginUpdate() ;
RecordBufferPageMgr rpm = new RecordBufferPageMgr(factory, blkMgr) ;
int x = -99 ;
{
RecordBufferPage page1 = rpm.create() ;
fill(page1.getRecordBuffer(), 10, 20, 30) ;
- // Now forget it.
- rpm.put(page1) ;
x = page1.getId() ;
+ rpm.put(page1) ;
page1 = null ;
}
+ blkMgr.endUpdate() ;
+ blkMgr.beginRead() ;
{
RecordBufferPage page2 = rpm.getRead(x) ;
assertEquals(10, get(page2, 0)) ;
@@ -63,6 +68,7 @@ public class TestRecordBufferPage extend
assertEquals(30, get(page2, 2)) ;
rpm.release(page2) ;
}
+ blkMgr.endRead() ;
}