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 2014/09/08 16:32:58 UTC
svn commit: r1623410 - in
/jena/trunk/jena-tdb/src/main/java/com/hp/hpl/jena/tdb:
base/block/BlockMgrFactory.java setup/BuildDB.java
setup/DatasetBuilder.java setup/DatasetBuilderStd.java
Author: andy
Date: Mon Sep 8 14:32:57 2014
New Revision: 1623410
URL: http://svn.apache.org/r1623410
Log:
Fix in-memeory DSG creation
Modified:
jena/trunk/jena-tdb/src/main/java/com/hp/hpl/jena/tdb/base/block/BlockMgrFactory.java
jena/trunk/jena-tdb/src/main/java/com/hp/hpl/jena/tdb/setup/BuildDB.java
jena/trunk/jena-tdb/src/main/java/com/hp/hpl/jena/tdb/setup/DatasetBuilder.java
jena/trunk/jena-tdb/src/main/java/com/hp/hpl/jena/tdb/setup/DatasetBuilderStd.java
Modified: jena/trunk/jena-tdb/src/main/java/com/hp/hpl/jena/tdb/base/block/BlockMgrFactory.java
URL: http://svn.apache.org/viewvc/jena/trunk/jena-tdb/src/main/java/com/hp/hpl/jena/tdb/base/block/BlockMgrFactory.java?rev=1623410&r1=1623409&r2=1623410&view=diff
==============================================================================
--- jena/trunk/jena-tdb/src/main/java/com/hp/hpl/jena/tdb/base/block/BlockMgrFactory.java (original)
+++ jena/trunk/jena-tdb/src/main/java/com/hp/hpl/jena/tdb/base/block/BlockMgrFactory.java Mon Sep 8 14:32:57 2014
@@ -44,11 +44,13 @@ public class BlockMgrFactory {
}
public static BlockMgr create(FileSet fileSet, String ext, BlockParams params) {
- return createFile(fileSet.filename(ext), params) ;
+ return create(fileSet, ext,
+ params.getFileMode(),
+ params.getBlockSize(),
+ params.getBlockReadCacheSize(),
+ params.getBlockWriteCacheSize()) ;
}
- // XXX Build then add cache.
- // XXX Deprecate?
public static BlockMgr create(FileSet fileSet, String ext, int blockSize, int readBlockCacheSize, int writeBlockCacheSize) {
return create(fileSet, ext, null, blockSize, readBlockCacheSize, writeBlockCacheSize) ;
}
Modified: jena/trunk/jena-tdb/src/main/java/com/hp/hpl/jena/tdb/setup/BuildDB.java
URL: http://svn.apache.org/viewvc/jena/trunk/jena-tdb/src/main/java/com/hp/hpl/jena/tdb/setup/BuildDB.java?rev=1623410&r1=1623409&r2=1623410&view=diff
==============================================================================
--- jena/trunk/jena-tdb/src/main/java/com/hp/hpl/jena/tdb/setup/BuildDB.java (original)
+++ jena/trunk/jena-tdb/src/main/java/com/hp/hpl/jena/tdb/setup/BuildDB.java Mon Sep 8 14:32:57 2014
@@ -59,38 +59,15 @@ public class BuildDB
}
public static DatasetPrefixesTDB makePrefixes(Location location, DatasetControl policy) {
- return DatasetBuilderStd.stdBuilder().makePrefixTable(location, policy) ;
+ return DatasetBuilderStd.stdBuilder().makePrefixTable(location, policy, params) ;
}
-//
-// // The index using for Graph+Prefix => URI
-// String indexPrefixes = params.getIndexPrefix() ;
-// String primary = params.getPrimaryIndexPrefix() ;
-// String indexes[] = params.getPrefixIndexes() ;
-//
-// TupleIndex prefixIndexes[] = makeTupleIndexes(location, primary, indexes, new String[]{indexPrefixes}) ;
-// if ( prefixIndexes.length != indexes.length )
-// error(log, "Wrong number of triple table tuples indexes: "+prefixIndexes.length) ;
-//
-// // The nodetable.
-// String pnNode2Id = params.getPrefixNode2Id() ;
-// String pnId2Node = params.getPrefixId2Node() ;
-//
-// // No cache - the prefix mapping is a cache
-// NodeTable prefixNodes = makeNodeTable(location, pnNode2Id, -1, pnId2Node, -1, -1) ;
-// NodeTupleTable prefixTable = new NodeTupleTableConcrete(primary.length(),
-// prefixIndexes,
-// prefixNodes, policy) ;
-// DatasetPrefixesTDB prefixes = new DatasetPrefixesTDB(prefixTable) ;
-// log.debug("Prefixes: "+StrUtils.strjoin(", ", indexes)) ;
-// return prefixes ;
-// }
public static NodeTable makeNodeTable(Location location) {
return makeNodeTable(location, params) ;
}
public static NodeTable makeNodeTable(Location location, SystemParams params) {
- DatasetBuilderStd dbBuild = DatasetBuilderStd.stdBuilder(params) ;
+ DatasetBuilderStd dbBuild = DatasetBuilderStd.stdBuilder() ;
return dbBuild.makeNodeTable(location, params) ;
}
Modified: jena/trunk/jena-tdb/src/main/java/com/hp/hpl/jena/tdb/setup/DatasetBuilder.java
URL: http://svn.apache.org/viewvc/jena/trunk/jena-tdb/src/main/java/com/hp/hpl/jena/tdb/setup/DatasetBuilder.java?rev=1623410&r1=1623409&r2=1623410&view=diff
==============================================================================
--- jena/trunk/jena-tdb/src/main/java/com/hp/hpl/jena/tdb/setup/DatasetBuilder.java (original)
+++ jena/trunk/jena-tdb/src/main/java/com/hp/hpl/jena/tdb/setup/DatasetBuilder.java Mon Sep 8 14:32:57 2014
@@ -29,5 +29,5 @@ public interface DatasetBuilder
* Build a new Java object for a dataset.
* Location may already contains files for the state, or may need initializing.
*/
- public DatasetGraphTDB build(Location location) ;
+ public DatasetGraphTDB build(Location location, SystemParams params) ;
}
Modified: jena/trunk/jena-tdb/src/main/java/com/hp/hpl/jena/tdb/setup/DatasetBuilderStd.java
URL: http://svn.apache.org/viewvc/jena/trunk/jena-tdb/src/main/java/com/hp/hpl/jena/tdb/setup/DatasetBuilderStd.java?rev=1623410&r1=1623409&r2=1623410&view=diff
==============================================================================
--- jena/trunk/jena-tdb/src/main/java/com/hp/hpl/jena/tdb/setup/DatasetBuilderStd.java (original)
+++ jena/trunk/jena-tdb/src/main/java/com/hp/hpl/jena/tdb/setup/DatasetBuilderStd.java Mon Sep 8 14:32:57 2014
@@ -63,7 +63,7 @@ public class DatasetBuilderStd implement
private TupleIndexBuilder tupleIndexBuilder ;
// XXX Should not be an object field.
- private SystemParams params ;
+ //private SystemParams params ;
private Map<FileRef, BlockMgr> blockMgrs = new HashMap<>() ;
private Map<FileRef, BufferChannel> bufferChannels = new HashMap<>() ;
@@ -71,9 +71,9 @@ public class DatasetBuilderStd implement
public static DatasetGraphTDB create(Location location) {
SystemParams params = paramsForLocation(location) ;
- DatasetBuilderStd x = new DatasetBuilderStd(params) ;
+ DatasetBuilderStd x = new DatasetBuilderStd() ;
x.standardSetup() ;
- return x.build(location) ;
+ return x.build(location, params) ;
}
public static DatasetGraphTDB create() {
@@ -81,30 +81,30 @@ public class DatasetBuilderStd implement
}
public static DatasetBuilderStd stdBuilder() {
- DatasetBuilderStd x = new DatasetBuilderStd(SystemParams.getDftSystemParams()) ;
+ DatasetBuilderStd x = new DatasetBuilderStd() ;
x.standardSetup() ;
return x ;
}
- /** Create a building : if database settings already at the location,
- * use those otherwiese use the provided defaults.
- */
- public static DatasetBuilderStd stdBuilder(SystemParams dftParams) {
- DatasetBuilderStd x = new DatasetBuilderStd(dftParams) ;
- x.standardSetup() ;
- return x ;
- }
+// /** Create a building : if database settings already at the location,
+// * use those otherwiese use the provided defaults.
+// */
+// public static DatasetBuilderStd stdBuilder(SystemParams dftParams) {
+// DatasetBuilderStd x = new DatasetBuilderStd(dftParams) ;
+// x.standardSetup() ;
+// return x ;
+// }
protected DatasetBuilderStd() {
- this(SystemParams.getDftSystemParams()) ;
- }
-
- // XXX Take params out of constructor. They are location sensitive.
- protected DatasetBuilderStd(SystemParams params) {
- //Objects.requireNonNull(params) ;
- if ( params == null )
- params = SystemParams.getDftSystemParams() ;
- this.params = params ;
+// this(SystemParams.getDftSystemParams()) ;
+// }
+//
+// // XXX Take params out of constructor. They are location sensitive.
+// protected DatasetBuilderStd(SystemParams params) {
+// //Objects.requireNonNull(params) ;
+// if ( params == null )
+// params = SystemParams.getDftSystemParams() ;
+// this.params = params ;
}
// Used by DatasetBuilderTxn
@@ -189,7 +189,7 @@ public class DatasetBuilderStd implement
}
@Override
- public DatasetGraphTDB build(Location location) {
+ public DatasetGraphTDB build(Location location, SystemParams params) {
// Ensure that there is global synchronization
synchronized (DatasetBuilderStd.class) {
log.debug("Build database: "+location.getDirectoryPath()) ;
@@ -205,26 +205,17 @@ public class DatasetBuilderStd implement
// Called by DatasetBuilderTxn
// XXX Rework - provide a cloning constructor (copies maps).
// Or "reset"
- public synchronized DatasetGraphTDB _build(Location location, SystemParams _params, boolean writeable,
- ReorderTransformation _transform) {
- // This should create a new DatabseBuilderStd as a clone and use that!
- SystemParams dftParams = params ;
- try {
- if ( _params != null )
- params = _params ;
- init(location) ;
- return buildWorker(location, writeable, _transform) ;
- } finally {
- params = dftParams ;
- }
+ public DatasetGraphTDB _build(Location location, SystemParams params, boolean writeable, ReorderTransformation _transform) {
+ init(location) ;
+ return buildWorker(location, writeable, _transform, params) ;
}
- private DatasetGraphTDB buildWorker(Location location, boolean writeable, ReorderTransformation _transform) {
+ private DatasetGraphTDB buildWorker(Location location, boolean writeable, ReorderTransformation _transform, SystemParams params) {
DatasetControl policy = createConcurrencyPolicy() ;
NodeTable nodeTable = makeNodeTable(location, params) ;
- TripleTable tripleTable = makeTripleTable(location, nodeTable, policy) ;
- QuadTable quadTable = makeQuadTable(location, nodeTable, policy) ;
- DatasetPrefixesTDB prefixes = makePrefixTable(location, policy) ;
+ TripleTable tripleTable = makeTripleTable(location, nodeTable, policy, params) ;
+ QuadTable quadTable = makeQuadTable(location, nodeTable, policy, params) ;
+ DatasetPrefixesTDB prefixes = makePrefixTable(location, policy, params) ;
ReorderTransformation transform = (_transform == null) ? chooseReorderTransformation(location) : _transform ;
@@ -248,7 +239,7 @@ public class DatasetBuilderStd implement
// ==== TODO makeNodeTupleTable.
// ======== Dataset level
- protected TripleTable makeTripleTable(Location location, NodeTable nodeTable, DatasetControl policy) {
+ protected TripleTable makeTripleTable(Location location, NodeTable nodeTable, DatasetControl policy, SystemParams params) {
String primary = params.getPrimaryIndexTriples() ;
String[] indexes = params.getTripleIndexes() ;
@@ -259,7 +250,7 @@ public class DatasetBuilderStd implement
// indexes)) ;
log.debug("Triple table: " + primary + " :: " + StrUtils.strjoin(",", indexes)) ;
- TupleIndex tripleIndexes[] = makeTupleIndexes(location, primary, indexes) ;
+ TupleIndex tripleIndexes[] = makeTupleIndexes(location, primary, indexes, params) ;
if ( tripleIndexes.length != indexes.length )
error(log, "Wrong number of triple table tuples indexes: " + tripleIndexes.length) ;
@@ -267,7 +258,7 @@ public class DatasetBuilderStd implement
return tripleTable ;
}
- protected QuadTable makeQuadTable(Location location, NodeTable nodeTable, DatasetControl policy) {
+ protected QuadTable makeQuadTable(Location location, NodeTable nodeTable, DatasetControl policy, SystemParams params) {
String primary = params.getPrimaryIndexQuads() ;
String[] indexes = params.getQuadIndexes() ;
@@ -279,18 +270,18 @@ public class DatasetBuilderStd implement
log.debug("Quad table: " + primary + " :: " + StrUtils.strjoin(",", indexes)) ;
- TupleIndex quadIndexes[] = makeTupleIndexes(location, primary, indexes) ;
+ TupleIndex quadIndexes[] = makeTupleIndexes(location, primary, indexes, params) ;
if ( quadIndexes.length != indexes.length )
error(log, "Wrong number of quad table tuples indexes: " + quadIndexes.length) ;
QuadTable quadTable = new QuadTable(quadIndexes, nodeTable, policy) ;
return quadTable ;
}
- protected DatasetPrefixesTDB makePrefixTable(Location location, DatasetControl policy) {
+ protected DatasetPrefixesTDB makePrefixTable(Location location, DatasetControl policy, SystemParams params) {
String primary = params.getPrimaryIndexPrefix() ;
String[] indexes = params.getPrefixIndexes() ;
- TupleIndex prefixIndexes[] = makeTupleIndexes(location, primary, indexes, new String[]{params.getIndexPrefix()}) ;
+ TupleIndex prefixIndexes[] = makeTupleIndexes(location, primary, indexes, new String[]{params.getIndexPrefix()}, params) ;
if ( prefixIndexes.length != 1 )
error(log, "Wrong number of triple table tuples indexes: " + prefixIndexes.length) ;
@@ -333,38 +324,32 @@ public class DatasetBuilderStd implement
// }
- // XXX Add params
- private TupleIndex[] makeTupleIndexes(Location location, String primary, String[] indexNames) {
- return makeTupleIndexes(location, primary, indexNames, indexNames) ;
+ private TupleIndex[] makeTupleIndexes(Location location, String primary, String[] indexNames, SystemParams params) {
+ return makeTupleIndexes(location, primary, indexNames, indexNames, params) ;
}
- // XXX Add params
- private TupleIndex[] makeTupleIndexes(Location location, String primary, String[] indexNames, String[] filenames) {
+
+ private TupleIndex[] makeTupleIndexes(Location location, String primary, String[] indexNames, String[] filenames, SystemParams params) {
if ( primary.length() != 3 && primary.length() != 4 )
error(log, "Bad primary key length: " + primary.length()) ;
int indexRecordLen = primary.length() * NodeId.SIZE ;
TupleIndex indexes[] = new TupleIndex[indexNames.length] ;
for ( int i = 0 ; i < indexes.length ; i++ )
- indexes[i] = makeTupleIndex(location, filenames[i], primary, indexNames[i]) ;
+ indexes[i] = makeTupleIndex(location, filenames[i], primary, indexNames[i], params) ;
return indexes ;
}
- // ----
- // XXX Add params
- protected TupleIndex makeTupleIndex(Location location, String name, String primary, String indexOrder) {
+ protected TupleIndex makeTupleIndex(Location location, String name, String primary, String indexOrder, SystemParams params) {
// Commonly, name == indexOrder.
- // FileSet
FileSet fs = new FileSet(location, name) ;
ColumnMap colMap = new ColumnMap(primary, indexOrder) ;
return tupleIndexBuilder.buildTupleIndex(fs, colMap, indexOrder, params) ;
}
- // ----
- public NodeTable makeNodeTable(Location location, SystemParams params2) {
- // Note - uses different params.
- FileSet fsNodeToId = new FileSet(location, params2.getIndexNode2Id()) ;
- FileSet fsId2Node = new FileSet(location, params2.getIndexId2Node()) ;
- NodeTable nt = nodeTableBuilder.buildNodeTable(fsNodeToId, fsId2Node, params2) ;
+ public NodeTable makeNodeTable(Location location, SystemParams params) {
+ FileSet fsNodeToId = new FileSet(location, params.getIndexNode2Id()) ;
+ FileSet fsId2Node = new FileSet(location, params.getIndexId2Node()) ;
+ NodeTable nt = nodeTableBuilder.buildNodeTable(fsNodeToId, fsId2Node, params) ;
return nt ;
}