use of org.apache.jena.dboe.transaction.Transactional in project jena by apache.
the class TestBPlusTreeTxn method bptree_txn_05.
// Two transactions, second an insert no-op.
// Relies on all blocks not being full and so not being
// split on the way down due to the early split algorithm.
@Test
public void bptree_txn_05() {
BPlusTree bpt = createBPTree();
int outerRootIdx1 = bpt.getRootId();
Transactional thing = transactional(bpt);
Txn.executeWrite(thing, () -> {
IndexTestLib.add(bpt, 1, 2, 3);
});
int outerRootIdx2 = bpt.getRootId();
assertNotEquals("After txn(1)", outerRootIdx1, outerRootIdx2);
Txn.executeWrite(thing, () -> {
IndexTestLib.add(bpt, 1, 2);
});
int outerRootIdx3 = bpt.getRootId();
assertNotEquals("After txn (2)", outerRootIdx1, outerRootIdx3);
assertEquals("After txn (3)", outerRootIdx2, outerRootIdx3);
}
use of org.apache.jena.dboe.transaction.Transactional in project jena by apache.
the class TestBPlusTreeTxn method bptree_txn_11.
@Test
public void bptree_txn_11() {
BPlusTree bpt1 = createBPTree();
BPlusTree bpt2 = createBPTree();
assertNotEquals(bpt1.getComponentId(), bpt2.getComponentId());
Transactional thing = transactional(bpt1, bpt2);
// Commit 1
Txn.executeWrite(thing, () -> {
IndexTestLib.add(bpt1, 2, 1);
IndexTestLib.add(bpt2, 3, 4, 5);
});
Txn.executeRead(thing, () -> {
IndexTestLib.testIndexContents(bpt2, 3, 4, 5);
IndexTestLib.testIndexContents(bpt1, 1, 2);
});
// Abort
thing.begin(ReadWrite.WRITE);
IndexTestLib.add(bpt1, 9, 10);
IndexTestLib.delete(bpt2, 3, 11);
thing.abort();
Txn.executeRead(thing, () -> {
IndexTestLib.testIndexContents(bpt2, 3, 4, 5);
IndexTestLib.testIndexContents(bpt1, 1, 2);
});
// Commit 2
Txn.executeWrite(thing, () -> {
IndexTestLib.delete(bpt1, 1, 3);
IndexTestLib.add(bpt1, 4);
IndexTestLib.add(bpt2, 11, 12, 13);
});
Txn.executeRead(thing, () -> {
IndexTestLib.testIndexContents(bpt2, 3, 4, 5, 11, 12, 13);
IndexTestLib.testIndexContents(bpt1, 2, 4);
});
}
use of org.apache.jena.dboe.transaction.Transactional in project jena by apache.
the class TestBPlusTreeTxn method bptree_txn_02.
// Commit - only the first changes the root.
@Test
public void bptree_txn_02() {
BPlusTree bpt = createBPTree();
int outerRootIdx1 = bpt.getRootId();
Transactional thing = transactional(bpt);
Txn.executeWrite(thing, () -> {
int rootIdx1 = bpt.getRootId();
assertEquals("Inside txn (1)", outerRootIdx1, rootIdx1);
IndexTestLib.add(bpt, 1);
int rootIdx2 = bpt.getRootId();
assertNotEquals("Inside txn (2)", rootIdx1, rootIdx2);
IndexTestLib.add(bpt, 2, 3, 4);
int rootIdx3 = bpt.getRootId();
assertEquals("Inside txn (3)", rootIdx2, rootIdx3);
});
int outerRootIdx2 = bpt.getRootId();
assertNotEquals("After txn", outerRootIdx1, outerRootIdx2);
}
use of org.apache.jena.dboe.transaction.Transactional in project jena by apache.
the class TestBPlusTreeTxn method bptree_txn_06.
// Two transactions, second a delete no-op.
// Relies on all blocks not being min0size so not rebalanced.
@Test
public void bptree_txn_06() {
BPlusTree bpt = createBPTree();
int outerRootIdx1 = bpt.getRootId();
Transactional thing = transactional(bpt);
Txn.executeWrite(thing, () -> {
IndexTestLib.add(bpt, 1, 2, 3);
});
int outerRootIdx2 = bpt.getRootId();
assertNotEquals("After txn(1)", outerRootIdx1, outerRootIdx2);
Txn.executeWrite(thing, () -> {
IndexTestLib.delete(bpt, 5, 6);
});
int outerRootIdx3 = bpt.getRootId();
assertNotEquals("After txn (2)", outerRootIdx1, outerRootIdx3);
assertEquals("After txn (3)", outerRootIdx2, outerRootIdx3);
}
use of org.apache.jena.dboe.transaction.Transactional 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);
}
Aggregations