/** Knowing all the parameters, create a B+Tree */ public static BPlusTree createBPTree(FileSet fileset, int order, int blockSize, int readCacheSize, int writeCacheSize, RecordFactory factory) { return SetupIndex.createBPTree(fileset, order, blockSize, readCacheSize, writeCacheSize, factory) ; } }
/** Create a B+Tree by BlockSize */ public static RangeIndex createBPTreeByBlockSize(FileSet fileset, int blockSize, int readCacheSize, int writeCacheSize, RecordFactory factory) { return createBPTree(fileset, -1, blockSize, readCacheSize, writeCacheSize, factory) ; }
/** Create a B+Tree by Order */ public static RangeIndex createBPTreeByOrder(FileSet fileset, int order, int readCacheSize, int writeCacheSize, RecordFactory factory) { return createBPTree(fileset, order, -1, readCacheSize, writeCacheSize, factory) ; }
/** Create a B+Tree using defaults */ public static RangeIndex createBPTree(FileSet fileset, RecordFactory factory) { return SetupIndex.createBPTree(fileset, factory) ; }
public static RangeIndex makeBPlusTree(FileSet fs, int blkSize, int readCacheSize, int writeCacheSize, int dftKeyLength, int dftValueLength) { RecordFactory recordFactory = makeRecordFactory(dftKeyLength, dftValueLength) ; int order = BPlusTreeParams.calcOrder(blkSize, recordFactory.recordLength()) ; RangeIndex rIndex = createBPTree(fs, order, blkSize, readCacheSize, writeCacheSize, recordFactory) ; return rIndex ; }
static List<Record> createData2(int ORDER, int N, RecordFactory recordFactory) { // Use a B+Tree - so original data can be unsorted. BPlusTree bpt = SetupIndex.createBPTree(FileSet.mem(), ORDER, -1, -1, -1, recordFactory) ; //BPlusTreeParams.checkAll() ; // 200 -> runt leaf problem. // Problem is that a node in a stripe is less than half full // -> illegal BPT. // -> specially rebalance if 2 or more blocks. // -> spot one bloc (= root) // PeekIterator. for ( int i = 0; i < N ; i++ ) { Record record = recordFactory.create() ; Bytes.setInt(i+1, record.getKey()) ; bpt.add(record) ; } return Iter.toList(bpt.iterator()) ; }
static List<Record> createData2(int ORDER, int N, RecordFactory recordFactory) { // Use a B+Tree - so original data can be unsorted. BPlusTree bpt = SetupIndex.createBPTree(FileSet.mem(), ORDER, -1, -1, -1, recordFactory) ; //BPlusTreeParams.checkAll() ; // 200 -> runt leaf problem. // Problem is that a node in a stripe is less than half full // -> illegal BPT. // -> specially rebalance if 2 or more blocks. // -> spot one bloc (= root) // PeekIterator. for ( int i = 0; i < N ; i++ ) { Record record = recordFactory.create() ; Bytes.setInt(i+1, record.getKey()) ; bpt.add(record) ; } return Iter.toList(bpt.iterator()) ; }