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 2012/08/25 22:45:28 UTC
svn commit: r1377353 - in
/jena/trunk/jena-tdb/src/main/java/com/hp/hpl/jena/tdb:
StoreConnection.java base/file/BlockAccessBase.java
base/file/BlockAccessDirect.java base/file/BlockAccessMapped.java
transaction/JournalControl.java
Author: andy
Date: Sat Aug 25 20:45:28 2012
New Revision: 1377353
URL: http://svn.apache.org/viewvc?rev=1377353&view=rev
Log:
JENA-301
BlockAccess node id allocations was not tracking writes to end, or beyond the end, of the file.
Modified:
jena/trunk/jena-tdb/src/main/java/com/hp/hpl/jena/tdb/StoreConnection.java
jena/trunk/jena-tdb/src/main/java/com/hp/hpl/jena/tdb/base/file/BlockAccessBase.java
jena/trunk/jena-tdb/src/main/java/com/hp/hpl/jena/tdb/base/file/BlockAccessDirect.java
jena/trunk/jena-tdb/src/main/java/com/hp/hpl/jena/tdb/base/file/BlockAccessMapped.java
jena/trunk/jena-tdb/src/main/java/com/hp/hpl/jena/tdb/transaction/JournalControl.java
Modified: jena/trunk/jena-tdb/src/main/java/com/hp/hpl/jena/tdb/StoreConnection.java
URL: http://svn.apache.org/viewvc/jena/trunk/jena-tdb/src/main/java/com/hp/hpl/jena/tdb/StoreConnection.java?rev=1377353&r1=1377352&r2=1377353&view=diff
==============================================================================
--- jena/trunk/jena-tdb/src/main/java/com/hp/hpl/jena/tdb/StoreConnection.java (original)
+++ jena/trunk/jena-tdb/src/main/java/com/hp/hpl/jena/tdb/StoreConnection.java Sat Aug 25 20:45:28 2012
@@ -233,9 +233,10 @@ public class StoreConnection
sConn = new StoreConnection(dsg) ;
boolean actionTaken = JournalControl.recoverFromJournal(dsg.getConfig(), sConn.transactionManager.getJournal()) ;
- if ( actionTaken )
+ if ( false && actionTaken )
{
- // Clunky! Complete reset.
+ // This should be unnecessary because we wrote the journal replay
+ // via the DSG storage configuration.
sConn.transactionManager.closedown() ;
sConn.baseDSG.close() ;
dsg = DatasetBuilderStd.build(location) ;
Modified: jena/trunk/jena-tdb/src/main/java/com/hp/hpl/jena/tdb/base/file/BlockAccessBase.java
URL: http://svn.apache.org/viewvc/jena/trunk/jena-tdb/src/main/java/com/hp/hpl/jena/tdb/base/file/BlockAccessBase.java?rev=1377353&r1=1377352&r2=1377353&view=diff
==============================================================================
--- jena/trunk/jena-tdb/src/main/java/com/hp/hpl/jena/tdb/base/file/BlockAccessBase.java (original)
+++ jena/trunk/jena-tdb/src/main/java/com/hp/hpl/jena/tdb/base/file/BlockAccessBase.java Sat Aug 25 20:45:28 2012
@@ -68,6 +68,17 @@ public abstract class BlockAccessBase im
final protected void writeNotification(Block block) { isEmpty = false ; }
+ final protected void overwriteNotification(Block block)
+ {
+ // Write at end => extend
+ if ( block.getId() >= numFileBlocks )
+ {
+ numFileBlocks = block.getId()+1 ;
+ seq.set(numFileBlocks) ;
+ }
+ }
+
+
//@Override
final
//public
Modified: jena/trunk/jena-tdb/src/main/java/com/hp/hpl/jena/tdb/base/file/BlockAccessDirect.java
URL: http://svn.apache.org/viewvc/jena/trunk/jena-tdb/src/main/java/com/hp/hpl/jena/tdb/base/file/BlockAccessDirect.java?rev=1377353&r1=1377352&r2=1377353&view=diff
==============================================================================
--- jena/trunk/jena-tdb/src/main/java/com/hp/hpl/jena/tdb/base/file/BlockAccessDirect.java (original)
+++ jena/trunk/jena-tdb/src/main/java/com/hp/hpl/jena/tdb/base/file/BlockAccessDirect.java Sat Aug 25 20:45:28 2012
@@ -101,9 +101,7 @@ public class BlockAccessDirect extends B
@Override
public void overwrite(Block block)
{
- // Write at end => extend
- if ( block.getId() >= numFileBlocks )
- numFileBlocks = block.getId()+1 ;
+ overwriteNotification(block) ;
write(block) ;
}
Modified: jena/trunk/jena-tdb/src/main/java/com/hp/hpl/jena/tdb/base/file/BlockAccessMapped.java
URL: http://svn.apache.org/viewvc/jena/trunk/jena-tdb/src/main/java/com/hp/hpl/jena/tdb/base/file/BlockAccessMapped.java?rev=1377353&r1=1377352&r2=1377353&view=diff
==============================================================================
--- jena/trunk/jena-tdb/src/main/java/com/hp/hpl/jena/tdb/base/file/BlockAccessMapped.java (original)
+++ jena/trunk/jena-tdb/src/main/java/com/hp/hpl/jena/tdb/base/file/BlockAccessMapped.java Sat Aug 25 20:45:28 2012
@@ -107,10 +107,7 @@ public class BlockAccessMapped extends B
@Override
public void overwrite(Block block)
{
- // Write at end => extend
- if ( block.getId() >= numFileBlocks )
- // Housekeeping.
- numFileBlocks = block.getId()+1 ;
+ overwriteNotification(block) ;
write(block, CopyContents.Overwrite) ;
}
Modified: jena/trunk/jena-tdb/src/main/java/com/hp/hpl/jena/tdb/transaction/JournalControl.java
URL: http://svn.apache.org/viewvc/jena/trunk/jena-tdb/src/main/java/com/hp/hpl/jena/tdb/transaction/JournalControl.java?rev=1377353&r1=1377352&r2=1377353&view=diff
==============================================================================
--- jena/trunk/jena-tdb/src/main/java/com/hp/hpl/jena/tdb/transaction/JournalControl.java (original)
+++ jena/trunk/jena-tdb/src/main/java/com/hp/hpl/jena/tdb/transaction/JournalControl.java Sat Aug 25 20:45:28 2012
@@ -266,11 +266,6 @@ public class JournalControl
{
case Block:
{
- // All-purpose, works for direct and mapped mode, copy of a block.
- // [TxTDB:PATCH-UP]
- // Direct: blkMgr.write(e.getBlock()) would work.
- // Mapped: need to copy over the bytes.
-
BlockMgr blkMgr = sConf.blockMgrs.get(e.getFileRef()) ;
Block blk = e.getBlock() ;
log.debug("Replay: {} {}",e.getFileRef(), blk) ;