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() ;
     }