Search in sources :

Example 6 with TxnIterator

use of org.apache.zookeeper.server.persistence.TxnLog.TxnIterator in project zookeeper by apache.

the class TruncateTest method testTruncationStreamReset.

@Test
public void testTruncationStreamReset() throws Exception {
    File tmpdir = ClientBase.createTmpDir();
    FileTxnSnapLog snaplog = new FileTxnSnapLog(tmpdir, tmpdir);
    ZKDatabase zkdb = new ZKDatabase(snaplog);
    // make sure to snapshot, so that we have something there when
    // truncateLog reloads the db
    snaplog.save(zkdb.getDataTree(), zkdb.getSessionWithTimeOuts(), false);
    for (int i = 1; i <= 100; i++) {
        append(zkdb, i);
    }
    zkdb.truncateLog(1);
    append(zkdb, 200);
    zkdb.close();
    // verify that the truncation and subsequent append were processed
    // correctly
    FileTxnLog txnlog = new FileTxnLog(new File(tmpdir, "version-2"));
    TxnIterator iter = txnlog.read(1);
    TxnHeader hdr = iter.getHeader();
    Record txn = iter.getTxn();
    Assert.assertEquals(1, hdr.getZxid());
    Assert.assertTrue(txn instanceof SetDataTxn);
    iter.next();
    hdr = iter.getHeader();
    txn = iter.getTxn();
    Assert.assertEquals(200, hdr.getZxid());
    Assert.assertTrue(txn instanceof SetDataTxn);
    iter.close();
    ClientBase.recursiveDelete(tmpdir);
}
Also used : FileTxnLog(org.apache.zookeeper.server.persistence.FileTxnLog) Record(org.apache.jute.Record) SetDataTxn(org.apache.zookeeper.txn.SetDataTxn) File(java.io.File) ZKDatabase(org.apache.zookeeper.server.ZKDatabase) TxnIterator(org.apache.zookeeper.server.persistence.TxnLog.TxnIterator) FileTxnSnapLog(org.apache.zookeeper.server.persistence.FileTxnSnapLog) TxnHeader(org.apache.zookeeper.txn.TxnHeader) Test(org.junit.Test)

Aggregations

TxnIterator (org.apache.zookeeper.server.persistence.TxnLog.TxnIterator)6 File (java.io.File)4 FileTxnLog (org.apache.zookeeper.server.persistence.FileTxnLog)4 Test (org.junit.Test)4 IOException (java.io.IOException)3 ZooKeeper (org.apache.zookeeper.ZooKeeper)3 TxnHeader (org.apache.zookeeper.txn.TxnHeader)3 FileTxnIterator (org.apache.zookeeper.server.persistence.FileTxnLog.FileTxnIterator)2 RandomAccessFile (java.io.RandomAccessFile)1 Record (org.apache.jute.Record)1 KeeperException (org.apache.zookeeper.KeeperException)1 ZKDatabase (org.apache.zookeeper.server.ZKDatabase)1 FileSnap (org.apache.zookeeper.server.persistence.FileSnap)1 FileTxnSnapLog (org.apache.zookeeper.server.persistence.FileTxnSnapLog)1 SetDataTxn (org.apache.zookeeper.txn.SetDataTxn)1