use of org.apache.jena.dboe.base.file.BufferChannel in project jena by apache.
the class BPlusTreeFactory method addLogging.
/**
* Debugging
*/
public static BPlusTree addLogging(BPlusTree bpTree) {
BufferChannel mgrRoot = null;
BlockMgr mgr1 = bpTree.getNodeManager().getBlockMgr();
BlockMgr mgr2 = bpTree.getRecordsMgr().getBlockMgr();
mgr1 = new BlockMgrLogger(mgr1, false);
mgr2 = new BlockMgrLogger(mgr2, false);
return BPlusTreeFactory.rebuild(bpTree, mgrRoot, mgr1, mgr2);
}
use of org.apache.jena.dboe.base.file.BufferChannel in project jena by apache.
the class TestBPlusTreeRewriterNonTxn method runOneTest.
public static void runOneTest(int order, int N, RecordFactory recordFactory, boolean debug) {
BPlusTreeParams bptParams = new BPlusTreeParams(order, recordFactory);
BPlusTreeRewriter.debug = debug;
// ---- Test data
List<Record> originaldata = TestBPlusTreeRewriterNonTxn.createData(N, recordFactory);
if (debug)
System.out.println("Test data: " + originaldata);
FileSet destination = FileSet.mem();
// ---- Rewrite
BufferChannel rootState = FileFactory.createBufferChannel(destination, Names.extBptState);
// Write leaves to ...
BlockMgr blkMgr1 = BlockMgrFactory.create(destination, Names.extBptTree, bptParams.getCalcBlockSize(), 10, 10);
// Write nodes to ...
BlockMgr blkMgr2 = BlockMgrFactory.create(destination, Names.extBptTree, bptParams.getCalcBlockSize(), 10, 10);
BPlusTree bpt2 = BPlusTreeRewriter.packIntoBPlusTree(originaldata.iterator(), bptParams, recordFactory, rootState, blkMgr1, blkMgr2);
if (debug) {
BPlusTreeRewriterUtils.divider();
bpt2.dump();
}
// ---- Checking
bpt2.check();
scanComparision(originaldata, bpt2);
findComparison(originaldata, bpt2);
sizeComparison(originaldata, bpt2);
}
use of org.apache.jena.dboe.base.file.BufferChannel in project jena by apache.
the class TestTransBlobPersistent method transBlobFile_1.
@Test
public void transBlobFile_1() throws Exception {
Journal journal = Journal.create(Location.create(DIR));
BufferChannel chan = BufferChannelFile.create(DATA);
ComponentId cid = ComponentId.allocLocal();
TransBlob transBlob = new TransBlob(cid, chan);
Transactional transactional = TransactionalFactory.createTransactional(journal, transBlob);
String str = "Hello";
TestTransBlob.write(transactional, transBlob, str);
chan.close();
journal.close();
String s = FileUtils.readWholeFileAsUTF8(DATA);
assertEquals(str, s);
}
use of org.apache.jena.dboe.base.file.BufferChannel in project jena by apache.
the class TestTransBlobPersistent method transBlobFile_2.
@Test
public void transBlobFile_2() throws Exception {
Journal journal = Journal.create(Location.create(DIR));
BufferChannel chan = BufferChannelFile.create(DATA);
ComponentId cid = ComponentId.allocLocal();
TransBlob transBlob = new TransBlob(cid, chan);
Transactional transactional = TransactionalFactory.createTransactional(journal, transBlob);
String str = "Hello1";
Txn.executeWrite(transactional, () -> {
transBlob.setString("one");
});
Txn.executeWrite(transactional, () -> {
transBlob.setString("two");
});
chan.close();
journal.close();
String s = FileUtils.readWholeFileAsUTF8(DATA);
assertEquals("two", s);
}
use of org.apache.jena.dboe.base.file.BufferChannel in project jena by apache.
the class TestRecovery method recoverBlobFile_2.
@Test
public void recoverBlobFile_2() throws Exception {
String str1 = "Recovery One";
String str2 = "Recovery Two";
ComponentId cid1 = ComponentId.allocLocal();
ComponentId cid2 = ComponentId.allocLocal();
// Write out a journal for two components.
{
Journal journal = Journal.create(Location.create(dir.getRoot().getAbsolutePath()));
journal.write(JournalEntryType.REDO, cid1, IO.stringToByteBuffer(str1));
journal.write(JournalEntryType.REDO, cid2, IO.stringToByteBuffer(str2));
journal.writeJournal(JournalEntry.COMMIT);
journal.close();
}
Journal journal = Journal.create(Location.create(dir.getRoot().getAbsolutePath()));
BufferChannel chan = BufferChannelFile.create(data);
TransBlob tBlob1 = new TransBlob(cid1, chan);
TransBlob tBlob2 = new TransBlob(cid2, chan);
TransactionCoordinator coord = new TransactionCoordinator(journal, Arrays.asList(tBlob1, tBlob2));
coord.start();
ByteBuffer blob1 = tBlob1.getBlob();
assertNotNull(blob1);
String s1 = IO.byteBufferToString(blob1);
assertEquals(str1, s1);
ByteBuffer blob2 = tBlob2.getBlob();
assertNotNull(blob2);
String s2 = IO.byteBufferToString(blob2);
assertEquals(str2, s2);
assertNotEquals(str1, str2);
coord.shutdown();
}
Aggregations