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/06/30 13:33:48 UTC
svn commit: r1141487 - in /incubator/jena/Experimental/TxTDB/trunk: ./
Licenses/ src-dev/tx/ src/main/java/com/hp/hpl/jena/tdb/setup/
src/main/java/com/hp/hpl/jena/tdb/transaction/
Author: andy
Date: Thu Jun 30 11:33:47 2011
New Revision: 1141487
URL: http://svn.apache.org/viewvc?rev=1141487&view=rev
Log: (empty)
Added:
incubator/jena/Experimental/TxTDB/trunk/Licenses/
incubator/jena/Experimental/TxTDB/trunk/Licenses/other.txt (with props)
incubator/jena/Experimental/TxTDB/trunk/NOTICE.txt (with props)
incubator/jena/Experimental/TxTDB/trunk/src/main/java/com/hp/hpl/jena/tdb/setup/Builder.java (with props)
Modified:
incubator/jena/Experimental/TxTDB/trunk/src-dev/tx/Builder.java
incubator/jena/Experimental/TxTDB/trunk/src/main/java/com/hp/hpl/jena/tdb/setup/DatasetBuilderStd.java
incubator/jena/Experimental/TxTDB/trunk/src/main/java/com/hp/hpl/jena/tdb/transaction/DatasetBuilderTxn.java
Added: incubator/jena/Experimental/TxTDB/trunk/Licenses/other.txt
URL: http://svn.apache.org/viewvc/incubator/jena/Experimental/TxTDB/trunk/Licenses/other.txt?rev=1141487&view=auto
==============================================================================
--- incubator/jena/Experimental/TxTDB/trunk/Licenses/other.txt (added)
+++ incubator/jena/Experimental/TxTDB/trunk/Licenses/other.txt Thu Jun 30 11:33:47 2011
@@ -0,0 +1,28 @@
+/*
+ * (c) Copyright 2009 Hewlett-Packard Development Company, LP All rights
+ * reserved.
+ * (c) Copyright 2010 Talis Systems Ltd
+ * (c) Copyright 2010 IBM Corp. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ * 3. The name of the author may not be used to endorse or promote products
+ * derived from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
+ * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
+ * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+ * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
+ * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+ * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+ * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+ * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
+ * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
Propchange: incubator/jena/Experimental/TxTDB/trunk/Licenses/other.txt
------------------------------------------------------------------------------
svn:mime-type = text/plain
Added: incubator/jena/Experimental/TxTDB/trunk/NOTICE.txt
URL: http://svn.apache.org/viewvc/incubator/jena/Experimental/TxTDB/trunk/NOTICE.txt?rev=1141487&view=auto
==============================================================================
--- incubator/jena/Experimental/TxTDB/trunk/NOTICE.txt (added)
+++ incubator/jena/Experimental/TxTDB/trunk/NOTICE.txt Thu Jun 30 11:33:47 2011
@@ -0,0 +1,15 @@
+Copyright ownership:
+
+Portions of this software were originally based on the following
+original contributions to Apache Software Foundation:
+
+(c) Copyright 2010, 2011 Epimorphics Ltd.
+(c) Copyright 2004, 2005, 2006, 2007, 2008, 2009 Hewlett-Packard Development Company, LP
+(c) Copyright 2009, 2010 Talis Systems Ltd.
+
+Other contributions:
+(c) Copyright 2010 IBM Corp. All rights reserved.
+ Licenses/other.txt
+
+Subsequent copyrights:
+Epimorphics Ltd.
Propchange: incubator/jena/Experimental/TxTDB/trunk/NOTICE.txt
------------------------------------------------------------------------------
svn:mime-type = text/plain
Modified: incubator/jena/Experimental/TxTDB/trunk/src-dev/tx/Builder.java
URL: http://svn.apache.org/viewvc/incubator/jena/Experimental/TxTDB/trunk/src-dev/tx/Builder.java?rev=1141487&r1=1141486&r2=1141487&view=diff
==============================================================================
--- incubator/jena/Experimental/TxTDB/trunk/src-dev/tx/Builder.java (original)
+++ incubator/jena/Experimental/TxTDB/trunk/src-dev/tx/Builder.java Thu Jun 30 11:33:47 2011
@@ -41,6 +41,9 @@ public final class Builder
// Become a library of builders - take code from DatasetBuilderStd
+
+ //static BlockMgrBuilder blkMgrBuilder = new BlockMgrBuilderStd() ;
+
public static Index createIndex(FileSet fileset, RecordFactory recordFactory)
{
return createRangeIndex(fileset, recordFactory) ;
Added: incubator/jena/Experimental/TxTDB/trunk/src/main/java/com/hp/hpl/jena/tdb/setup/Builder.java
URL: http://svn.apache.org/viewvc/incubator/jena/Experimental/TxTDB/trunk/src/main/java/com/hp/hpl/jena/tdb/setup/Builder.java?rev=1141487&view=auto
==============================================================================
--- incubator/jena/Experimental/TxTDB/trunk/src/main/java/com/hp/hpl/jena/tdb/setup/Builder.java (added)
+++ incubator/jena/Experimental/TxTDB/trunk/src/main/java/com/hp/hpl/jena/tdb/setup/Builder.java Thu Jun 30 11:33:47 2011
@@ -0,0 +1,199 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.hp.hpl.jena.tdb.setup;
+
+import static com.hp.hpl.jena.tdb.sys.SystemTDB.SizeOfNodeId ;
+import org.openjena.atlas.lib.ColumnMap ;
+
+import com.hp.hpl.jena.tdb.base.block.BlockMgr ;
+import com.hp.hpl.jena.tdb.base.block.BlockMgrFactory ;
+import com.hp.hpl.jena.tdb.base.file.FileFactory ;
+import com.hp.hpl.jena.tdb.base.file.FileSet ;
+import com.hp.hpl.jena.tdb.base.objectfile.ObjectFile ;
+import com.hp.hpl.jena.tdb.base.record.RecordFactory ;
+import com.hp.hpl.jena.tdb.index.Index ;
+import com.hp.hpl.jena.tdb.index.RangeIndex ;
+import com.hp.hpl.jena.tdb.index.TupleIndex ;
+import com.hp.hpl.jena.tdb.index.TupleIndexRecord ;
+import com.hp.hpl.jena.tdb.index.bplustree.BPlusTree ;
+import com.hp.hpl.jena.tdb.index.bplustree.BPlusTreeParams ;
+import com.hp.hpl.jena.tdb.nodetable.NodeTable ;
+import com.hp.hpl.jena.tdb.nodetable.NodeTableCache ;
+import com.hp.hpl.jena.tdb.nodetable.NodeTableInline ;
+import com.hp.hpl.jena.tdb.nodetable.NodeTableNative ;
+import com.hp.hpl.jena.tdb.sys.Names ;
+import com.hp.hpl.jena.tdb.sys.SystemTDB ;
+
+public class Builder
+{
+
+ public static class TupleIndexBuilderStd implements TupleIndexBuilder
+ {
+ private final RangeIndexBuilder rangeIndexBuilder ;
+
+ public TupleIndexBuilderStd(RangeIndexBuilder rangeIndexBuilder)
+ {
+ this.rangeIndexBuilder = rangeIndexBuilder ;
+ }
+
+ @Override
+ public TupleIndex buildTupleIndex(FileSet fileSet, ColumnMap colMap)
+ {
+ RecordFactory recordFactory = new RecordFactory(SizeOfNodeId*colMap.length(),0) ;
+
+ RangeIndex rIdx = rangeIndexBuilder.buildRangeIndex(fileSet, recordFactory) ;
+ TupleIndex tIdx = new TupleIndexRecord(colMap.length(), colMap, recordFactory, rIdx) ;
+ return tIdx ;
+ }
+ }
+
+ public static class NodeTableBuilderStd implements NodeTableBuilder
+ {
+ private final IndexBuilder indexBuilder ;
+ private final ObjectFileBuilder objectFileBuilder ;
+
+ public NodeTableBuilderStd(IndexBuilder indexBuilder, ObjectFileBuilder objectFileBuilder)
+ {
+ this.indexBuilder = indexBuilder ;
+ this.objectFileBuilder = objectFileBuilder ;
+ }
+
+ @Override
+ public NodeTable buildNodeTable(FileSet fsIndex, FileSet fsObjectFile, int sizeNode2NodeIdCache, int sizeNodeId2NodeCache)
+ {
+ RecordFactory recordFactory = new RecordFactory(SystemTDB.LenNodeHash, SystemTDB.SizeOfNodeId) ;
+ Index idx = indexBuilder.buildIndex(fsIndex, recordFactory) ;
+ ObjectFile objectFile = objectFileBuilder.buildObjectFile(fsObjectFile, Names.extNodeData) ;
+ NodeTable nodeTable = new NodeTableNative(idx, objectFile) ;
+ nodeTable = NodeTableCache.create(nodeTable, sizeNode2NodeIdCache, sizeNodeId2NodeCache) ;
+ nodeTable = NodeTableInline.create(nodeTable) ;
+ return nodeTable ;
+ }
+ }
+ // ----
+
+ public static class IndexBuilderStd implements IndexBuilder
+ {
+ protected BlockMgrBuilder bMgrNodes ;
+ protected BlockMgrBuilder bMgrRecords ;
+ protected RangeIndexBuilderStd other ;
+
+ public IndexBuilderStd(BlockMgrBuilder bMgrNodes, BlockMgrBuilder bMgrRecords)
+ {
+ this.bMgrNodes = bMgrNodes ;
+ this.bMgrRecords = bMgrRecords ;
+ this.other = new RangeIndexBuilderStd(bMgrNodes, bMgrRecords) ;
+ }
+
+ @Override
+ public Index buildIndex(FileSet fileSet, RecordFactory recordFactory)
+ {
+ // Cheap.
+ return other.buildRangeIndex(fileSet, recordFactory) ;
+ }
+ }
+
+ public static class RangeIndexBuilderStd implements RangeIndexBuilder
+ {
+ private BlockMgrBuilder bMgrNodes ;
+ private BlockMgrBuilder bMgrRecords ;
+ public RangeIndexBuilderStd( BlockMgrBuilder blockMgrBuilderNodes,
+ BlockMgrBuilder blockMgrBuilderRecords)
+ {
+ this.bMgrNodes = blockMgrBuilderNodes ;
+ this.bMgrRecords = blockMgrBuilderRecords ;
+ }
+
+ @Override
+ public RangeIndex buildRangeIndex(FileSet fileSet, RecordFactory recordFactory)
+ {
+ int blkSize = SystemTDB.BlockSize ;
+ int order = BPlusTreeParams.calcOrder(blkSize, recordFactory.recordLength()) ;
+ int readCacheSize = SystemTDB.BlockReadCacheSize ;
+ int writeCacheSize = SystemTDB.BlockWriteCacheSize ;
+ RangeIndex rIndex = createBPTree(fileSet, order, blkSize, readCacheSize, writeCacheSize, bMgrNodes, bMgrRecords, recordFactory) ;
+ return rIndex ;
+ }
+
+ /** Knowing all the parameters, create a B+Tree */
+ private RangeIndex createBPTree(FileSet fileset, int order,
+ int blockSize,
+ int readCacheSize, int writeCacheSize,
+ BlockMgrBuilder blockMgrBuilderNodes,
+ BlockMgrBuilder blockMgrBuilderRecords,
+ RecordFactory factory)
+ {
+ // ---- Checking
+ if (blockSize < 0 && order < 0) throw new IllegalArgumentException("Neither blocksize nor order specified") ;
+ if (blockSize >= 0 && order < 0) order = BPlusTreeParams.calcOrder(blockSize, factory.recordLength()) ;
+ if (blockSize >= 0 && order >= 0)
+ {
+ int order2 = BPlusTreeParams.calcOrder(blockSize, factory.recordLength()) ;
+ if (order != order2) throw new IllegalArgumentException("Wrong order (" + order + "), calculated = "
+ + order2) ;
+ }
+
+ // Iffy - does not allow for slop.
+ if (blockSize < 0 && order >= 0)
+ {
+ // Only in-memory.
+ blockSize = BPlusTreeParams.calcBlockSize(order, factory) ;
+ }
+
+ BPlusTreeParams params = new BPlusTreeParams(order, factory) ;
+
+ BlockMgr blkMgrNodes = blockMgrBuilderNodes.buildBlockMgr(fileset, Names.bptExtTree, blockSize) ;
+ BlockMgr blkMgrRecords = blockMgrBuilderRecords.buildBlockMgr(fileset, Names.bptExtRecords, blockSize) ;
+ return BPlusTree.create(params, blkMgrNodes, blkMgrRecords) ;
+ }
+ }
+
+ public static class ObjectFileBuilderStd implements ObjectFileBuilder
+ {
+ @Override
+ public ObjectFile buildObjectFile(FileSet fileSet, String ext)
+ {
+ if ( fileSet.isMem() )
+ return FileFactory.createObjectFileMem() ;
+ String filename = fileSet.filename(ext) ;
+ return FileFactory.createObjectFileDisk(filename) ;
+ }
+ }
+
+ public static class BlockMgrBuilderStd implements BlockMgrBuilder
+ {
+ public BlockMgrBuilderStd() {}
+
+ @Override
+ public BlockMgr buildBlockMgr(FileSet fileset, String ext, int blockSize)
+ {
+ //int readCacheSize = PropertyUtils.getPropertyAsInteger(config, Names.pBlockReadCacheSize) ;
+ //int writeCacheSize = PropertyUtils.getPropertyAsInteger(config, Names.pBlockWriteCacheSize) ;
+
+ int readCacheSize = SystemTDB.BlockReadCacheSize ;
+ int writeCacheSize = SystemTDB.BlockWriteCacheSize ;
+
+ BlockMgr mgr = BlockMgrFactory.create(fileset, ext, blockSize, readCacheSize, writeCacheSize) ;
+ return mgr ;
+ }
+
+ }
+
+}
+
Propchange: incubator/jena/Experimental/TxTDB/trunk/src/main/java/com/hp/hpl/jena/tdb/setup/Builder.java
------------------------------------------------------------------------------
svn:mime-type = text/plain
Modified: incubator/jena/Experimental/TxTDB/trunk/src/main/java/com/hp/hpl/jena/tdb/setup/DatasetBuilderStd.java
URL: http://svn.apache.org/viewvc/incubator/jena/Experimental/TxTDB/trunk/src/main/java/com/hp/hpl/jena/tdb/setup/DatasetBuilderStd.java?rev=1141487&r1=1141486&r2=1141487&view=diff
==============================================================================
--- incubator/jena/Experimental/TxTDB/trunk/src/main/java/com/hp/hpl/jena/tdb/setup/DatasetBuilderStd.java (original)
+++ incubator/jena/Experimental/TxTDB/trunk/src/main/java/com/hp/hpl/jena/tdb/setup/DatasetBuilderStd.java Thu Jun 30 11:33:47 2011
@@ -6,7 +6,6 @@
package com.hp.hpl.jena.tdb.setup;
-import static com.hp.hpl.jena.tdb.sys.SystemTDB.SizeOfNodeId ;
import java.util.Properties ;
@@ -18,24 +17,12 @@ import com.hp.hpl.jena.sparql.core.Datas
import com.hp.hpl.jena.sparql.engine.optimizer.reorder.ReorderTransformation ;
import com.hp.hpl.jena.tdb.TDB ;
import com.hp.hpl.jena.tdb.TDBException ;
-import com.hp.hpl.jena.tdb.base.block.BlockMgr ;
-import com.hp.hpl.jena.tdb.base.block.BlockMgrFactory ;
-import com.hp.hpl.jena.tdb.base.file.FileFactory ;
import com.hp.hpl.jena.tdb.base.file.FileSet ;
import com.hp.hpl.jena.tdb.base.file.Location ;
import com.hp.hpl.jena.tdb.base.file.MetaFile ;
import com.hp.hpl.jena.tdb.base.objectfile.ObjectFile ;
-import com.hp.hpl.jena.tdb.base.record.RecordFactory ;
-import com.hp.hpl.jena.tdb.index.Index ;
-import com.hp.hpl.jena.tdb.index.RangeIndex ;
import com.hp.hpl.jena.tdb.index.TupleIndex ;
-import com.hp.hpl.jena.tdb.index.TupleIndexRecord ;
-import com.hp.hpl.jena.tdb.index.bplustree.BPlusTree ;
-import com.hp.hpl.jena.tdb.index.bplustree.BPlusTreeParams ;
import com.hp.hpl.jena.tdb.nodetable.NodeTable ;
-import com.hp.hpl.jena.tdb.nodetable.NodeTableCache ;
-import com.hp.hpl.jena.tdb.nodetable.NodeTableInline ;
-import com.hp.hpl.jena.tdb.nodetable.NodeTableNative ;
import com.hp.hpl.jena.tdb.nodetable.NodeTupleTable ;
import com.hp.hpl.jena.tdb.nodetable.NodeTupleTableConcrete ;
import com.hp.hpl.jena.tdb.store.DatasetGraphTDB ;
@@ -88,15 +75,15 @@ public class DatasetBuilderStd implement
protected void setStd()
{
- ObjectFileBuilder objectFileBuilder = new ObjectFileBuilderStd() ;
+ ObjectFileBuilder objectFileBuilder = new Builder.ObjectFileBuilderStd() ;
// Depends on memory/file?
- BlockMgrBuilder blockMgrBuilder = new BlockMgrBuilderStd() ;
+ BlockMgrBuilder blockMgrBuilder = new Builder.BlockMgrBuilderStd() ;
- IndexBuilder indexBuilder = new IndexBuilderStd(blockMgrBuilder, blockMgrBuilder) ;
- RangeIndexBuilder rangeIndexBuilder = new RangeIndexBuilderStd(blockMgrBuilder, blockMgrBuilder) ;
+ IndexBuilder indexBuilder = new Builder.IndexBuilderStd(blockMgrBuilder, blockMgrBuilder) ;
+ RangeIndexBuilder rangeIndexBuilder = new Builder.RangeIndexBuilderStd(blockMgrBuilder, blockMgrBuilder) ;
- NodeTableBuilder nodeTableBuilder = new NodeTableBuilderStd(indexBuilder, objectFileBuilder) ;
- TupleIndexBuilder tupleIndexBuilder = new TupleIndexBuilderStd(rangeIndexBuilder) ;
+ NodeTableBuilder nodeTableBuilder = new Builder.NodeTableBuilderStd(indexBuilder, objectFileBuilder) ;
+ TupleIndexBuilder tupleIndexBuilder = new Builder.TupleIndexBuilderStd(rangeIndexBuilder) ;
set(nodeTableBuilder, tupleIndexBuilder,
indexBuilder, rangeIndexBuilder,
@@ -330,196 +317,6 @@ public class DatasetBuilderStd implement
return nt ;
}
- public static class TupleIndexBuilderStd implements TupleIndexBuilder
- {
- private final RangeIndexBuilder rangeIndexBuilder ;
-
- public TupleIndexBuilderStd(RangeIndexBuilder rangeIndexBuilder)
- {
- this.rangeIndexBuilder = rangeIndexBuilder ;
- }
-
- @Override
- public TupleIndex buildTupleIndex(FileSet fileSet, ColumnMap colMap)
- {
- RecordFactory recordFactory = new RecordFactory(SizeOfNodeId*colMap.length(),0) ;
-
- RangeIndex rIdx = rangeIndexBuilder.buildRangeIndex(fileSet, recordFactory) ;
- TupleIndex tIdx = new TupleIndexRecord(colMap.length(), colMap, recordFactory, rIdx) ;
- return tIdx ;
- }
- }
-
- // ----
-
- public static class NodeTableBuilderStd implements NodeTableBuilder
- {
- private final IndexBuilder indexBuilder ;
- private final ObjectFileBuilder objectFileBuilder ;
-
- public NodeTableBuilderStd(IndexBuilder indexBuilder, ObjectFileBuilder objectFileBuilder)
- {
- this.indexBuilder = indexBuilder ;
- this.objectFileBuilder = objectFileBuilder ;
- }
-
- @Override
- public NodeTable buildNodeTable(FileSet fsIndex, FileSet fsObjectFile, int sizeNode2NodeIdCache, int sizeNodeId2NodeCache)
- {
- RecordFactory recordFactory = new RecordFactory(SystemTDB.LenNodeHash, SystemTDB.SizeOfNodeId) ;
- Index idx = indexBuilder.buildIndex(fsIndex, recordFactory) ;
- ObjectFile objectFile = objectFileBuilder.buildObjectFile(fsObjectFile, Names.extNodeData) ;
- NodeTable nodeTable = new NodeTableNative(idx, objectFile) ;
- nodeTable = NodeTableCache.create(nodeTable, sizeNode2NodeIdCache, sizeNodeId2NodeCache) ;
- nodeTable = NodeTableInline.create(nodeTable) ;
- return nodeTable ;
- }
- }
- // ----
-
- public static class IndexBuilderStd implements IndexBuilder
- {
- protected BlockMgrBuilder bMgrNodes ;
- protected BlockMgrBuilder bMgrRecords ;
- protected RangeIndexBuilderStd other ;
-
- public IndexBuilderStd(BlockMgrBuilder bMgrNodes, BlockMgrBuilder bMgrRecords)
- {
- this.bMgrNodes = bMgrNodes ;
- this.bMgrRecords = bMgrRecords ;
- this.other = new RangeIndexBuilderStd(bMgrNodes, bMgrRecords) ;
- }
-
- @Override
- public Index buildIndex(FileSet fileSet, RecordFactory recordFactory)
- {
- // Cheap.
- return other.buildRangeIndex(fileSet, recordFactory) ;
- }
- }
-
- public static class RangeIndexBuilderStd implements RangeIndexBuilder
- {
- private BlockMgrBuilder bMgrNodes ;
- private BlockMgrBuilder bMgrRecords ;
- public RangeIndexBuilderStd( BlockMgrBuilder blockMgrBuilderNodes,
- BlockMgrBuilder blockMgrBuilderRecords)
- {
- this.bMgrNodes = blockMgrBuilderNodes ;
- this.bMgrRecords = blockMgrBuilderRecords ;
- }
-
- @Override
- public RangeIndex buildRangeIndex(FileSet fileSet, RecordFactory recordFactory)
- {
- // ---- BPlusTree based range index.
- // Get parameters.
- /*
- * tdb.bplustree.record=24,0
- * tdb.bplustree.blksize=
- * tdb.bplustree.order=
- */
-
- // TODO Respect tdb.bplustree.record=24,0 (and so don't need RecordFactory argument).
- // No - Node table resorc size if different.
-
- MetaFile metafile = fileSet.getMetaFile() ;
- //RecordFactory recordFactory = new RecordFactory(keyLength, valueLength) ; // makeRecordFactory(metafile, "tdb.bplustree.record", dftKeyLength, dftValueLength) ;
-
- String blkSizeStr = metafile.getOrSetDefault("tdb.bplustree.blksize", Integer.toString(SystemTDB.BlockSize)) ;
- int blkSize = parseInt(blkSizeStr, "Bad block size") ;
-
- // IndexBuilder.getBPlusTree().newRangeIndex(fs, recordFactory) ;
- // Does not set order.
-
- int calcOrder = BPlusTreeParams.calcOrder(blkSize, recordFactory.recordLength()) ;
- String orderStr = metafile.getOrSetDefault("tdb.bplustree.order", Integer.toString(calcOrder)) ;
- int order = parseInt(orderStr, "Bad order for B+Tree") ;
- if ( order != calcOrder )
- error(log, "Wrong order (" + order + "), calculated = "+calcOrder) ;
-
- // int readCacheSize = PropertyUtils.getPropertyAsInteger(config, Names.pBlockReadCacheSize) ;
- // int writeCacheSize = PropertyUtils.getPropertyAsInteger(config, Names.pBlockWriteCacheSize) ;
-
- int readCacheSize = SystemTDB.BlockReadCacheSize ;
- int writeCacheSize = SystemTDB.BlockWriteCacheSize ;
-
- RangeIndex rIndex = createBPTree(fileSet, order, blkSize, readCacheSize, writeCacheSize, bMgrNodes, bMgrRecords, recordFactory) ;
-
- metafile.flush() ;
- return rIndex ;
- }
-
- /** Knowing all the parameters, create a B+Tree */
- private RangeIndex createBPTree(FileSet fileset, int order,
- int blockSize,
- int readCacheSize, int writeCacheSize,
- BlockMgrBuilder blockMgrBuilderNodes,
- BlockMgrBuilder blockMgrBuilderRecords,
- RecordFactory factory)
- {
- // ---- Checking
- if (blockSize < 0 && order < 0) throw new IllegalArgumentException("Neither blocksize nor order specified") ;
- if (blockSize >= 0 && order < 0) order = BPlusTreeParams.calcOrder(blockSize, factory.recordLength()) ;
- if (blockSize >= 0 && order >= 0)
- {
- int order2 = BPlusTreeParams.calcOrder(blockSize, factory.recordLength()) ;
- if (order != order2) throw new IllegalArgumentException("Wrong order (" + order + "), calculated = "
- + order2) ;
- }
-
- // Iffy - does not allow for slop.
- if (blockSize < 0 && order >= 0)
- {
- // Only in-memory.
- blockSize = BPlusTreeParams.calcBlockSize(order, factory) ;
- }
-
- BPlusTreeParams params = new BPlusTreeParams(order, factory) ;
-
-// BlockMgr blkMgrNodes = BlockMgrFactory.create(fileset, Names.bptExt1, blockSize, readCacheSize, writeCacheSize) ;
-// BlockMgr blkMgrRecords = BlockMgrFactory.create(fileset, Names.bptExt2, blockSize, readCacheSize, writeCacheSize) ;
- BlockMgr blkMgrNodes = blockMgrBuilderNodes.buildBlockMgr(fileset, Names.bptExtTree, blockSize) ;
- BlockMgr blkMgrRecords = blockMgrBuilderRecords.buildBlockMgr(fileset, Names.bptExtRecords, blockSize) ;
-
- return BPlusTree.create(params, blkMgrNodes, blkMgrRecords) ;
- }
-
- }
-
-
- public static class ObjectFileBuilderStd implements ObjectFileBuilder
- {
- @Override
- public ObjectFile buildObjectFile(FileSet fileSet, String ext)
- {
- if ( fileSet.isMem() )
- return FileFactory.createObjectFileMem() ;
- String filename = fileSet.filename(ext) ;
- return FileFactory.createObjectFileDisk(filename) ;
- }
- }
-
- public static class BlockMgrBuilderStd implements BlockMgrBuilder
- {
- public BlockMgrBuilderStd() {}
-
- @Override
- public BlockMgr buildBlockMgr(FileSet fileset, String ext, int blockSize)
- {
- //int readCacheSize = PropertyUtils.getPropertyAsInteger(config, Names.pBlockReadCacheSize) ;
- //int writeCacheSize = PropertyUtils.getPropertyAsInteger(config, Names.pBlockWriteCacheSize) ;
-
- int readCacheSize = SystemTDB.BlockReadCacheSize ;
- int writeCacheSize = SystemTDB.BlockWriteCacheSize ;
-
- BlockMgr mgr = BlockMgrFactory.create(fileset, ext, blockSize, readCacheSize, writeCacheSize) ;
- return mgr ;
- }
-
- }
-
-
private static void error(Logger log, String msg)
{
if ( log != null )
@@ -532,11 +329,9 @@ public class DatasetBuilderStd implement
try { return Integer.parseInt(str) ; }
catch (NumberFormatException ex) { error(log, messageBase+": "+str) ; return -1 ; }
}
-
}
-
/*
* (c) Copyright 2011 Epimorphics Ltd.
* All rights reserved.
Modified: incubator/jena/Experimental/TxTDB/trunk/src/main/java/com/hp/hpl/jena/tdb/transaction/DatasetBuilderTxn.java
URL: http://svn.apache.org/viewvc/incubator/jena/Experimental/TxTDB/trunk/src/main/java/com/hp/hpl/jena/tdb/transaction/DatasetBuilderTxn.java?rev=1141487&r1=1141486&r2=1141487&view=diff
==============================================================================
--- incubator/jena/Experimental/TxTDB/trunk/src/main/java/com/hp/hpl/jena/tdb/transaction/DatasetBuilderTxn.java (original)
+++ incubator/jena/Experimental/TxTDB/trunk/src/main/java/com/hp/hpl/jena/tdb/transaction/DatasetBuilderTxn.java Thu Jun 30 11:33:47 2011
@@ -27,6 +27,7 @@ import com.hp.hpl.jena.tdb.base.objectfi
import com.hp.hpl.jena.tdb.nodetable.NodeTable ;
import com.hp.hpl.jena.tdb.nodetable.NodeTableLogger ;
import com.hp.hpl.jena.tdb.setup.BlockMgrBuilder ;
+import com.hp.hpl.jena.tdb.setup.Builder ;
import com.hp.hpl.jena.tdb.setup.DatasetBuilderStd ;
import com.hp.hpl.jena.tdb.setup.IndexBuilder ;
import com.hp.hpl.jena.tdb.setup.NodeTableBuilder ;
@@ -75,13 +76,13 @@ public class DatasetBuilderTxn extends D
BlockMgrBuilder blockMgrBuilder = new BlockMgrBuilderTx() ;
// Add track(...) to log.
- IndexBuilder indexBuilder = new IndexBuilderStd(blockMgrBuilder, blockMgrBuilder) ;
+ IndexBuilder indexBuilder = new Builder.IndexBuilderStd(blockMgrBuilder, blockMgrBuilder) ;
// Add logging to a BlockMgrBuilder (here, just the records par of the B+Tree
//RangeIndexBuilder rangeIndexBuilder = new RangeIndexBuilderStd(blockMgrBuilder, logging(blockMgrBuilder)) ;
- RangeIndexBuilder rangeIndexBuilder = new RangeIndexBuilderStd(blockMgrBuilder, blockMgrBuilder) ;
+ RangeIndexBuilder rangeIndexBuilder = new Builder.RangeIndexBuilderStd(blockMgrBuilder, blockMgrBuilder) ;
- NodeTableBuilder nodeTableBuilder = new NodeTableBuilderStd(indexBuilder, objectFileBuilder)
+ NodeTableBuilder nodeTableBuilder = new Builder.NodeTableBuilderStd(indexBuilder, objectFileBuilder)
{
// track all NodeTable operations
@Override
@@ -95,7 +96,7 @@ public class DatasetBuilderTxn extends D
}
} ;
- TupleIndexBuilder tupleIndexBuilder = new TupleIndexBuilderStd(rangeIndexBuilder) ;
+ TupleIndexBuilder tupleIndexBuilder = new Builder.TupleIndexBuilderStd(rangeIndexBuilder) ;
set(nodeTableBuilder, tupleIndexBuilder, indexBuilder, rangeIndexBuilder, blockMgrBuilder, objectFileBuilder) ;
}
@@ -142,7 +143,7 @@ public class DatasetBuilderTxn extends D
class ObjectFileBuilderTx implements ObjectFileBuilder
{
- ObjectFileBuilder base = new ObjectFileBuilderStd() ;
+ ObjectFileBuilder base = new Builder.ObjectFileBuilderStd() ;
@Override
public ObjectFile buildObjectFile(FileSet fileSet, String ext)
{
@@ -174,7 +175,7 @@ public class DatasetBuilderTxn extends D
class BlockMgrBuilderTx implements BlockMgrBuilder
{
- BlockMgrBuilder base = new BlockMgrBuilderStd() ;
+ BlockMgrBuilder base = new Builder.BlockMgrBuilderStd() ;
@Override
public BlockMgr buildBlockMgr(FileSet fileSet, String ext, int blockSize)
{