Search in sources :

Example 6 with Versioned

use of org.apache.bookkeeper.versioning.Versioned in project distributedlog by twitter.

the class TestLogSegmentsZK method getMaxLogSegmentSequenceNo.

private static MaxLogSegmentSequenceNo getMaxLogSegmentSequenceNo(ZooKeeperClient zkc, URI uri, String streamName, DistributedLogConfiguration conf) throws Exception {
    Stat stat = new Stat();
    String logSegmentsPath = ZKLogMetadata.getLogSegmentsPath(uri, streamName, conf.getUnpartitionedStreamName());
    byte[] data = zkc.get().getData(logSegmentsPath, false, stat);
    Versioned<byte[]> maxLSSNData = new Versioned<byte[]>(data, new ZkVersion(stat.getVersion()));
    return new MaxLogSegmentSequenceNo(maxLSSNData);
}
Also used : Stat(org.apache.zookeeper.data.Stat) Versioned(org.apache.bookkeeper.versioning.Versioned) ZkVersion(org.apache.bookkeeper.meta.ZkVersion)

Example 7 with Versioned

use of org.apache.bookkeeper.versioning.Versioned in project distributedlog by twitter.

the class TestZKLogMetadataForWriterUtilFunctions method testProcessLogMetadatasWrongVersion.

@SuppressWarnings("unchecked")
@Test(timeout = 60000, expected = UnexpectedException.class)
public void testProcessLogMetadatasWrongVersion() throws Exception {
    String rootPath = "/test-missing-version";
    URI uri = DLMTestUtil.createDLMURI(2181, rootPath);
    String logName = "test-log";
    String logIdentifier = "<default>";
    List<Versioned<byte[]>> metadatas = Lists.newArrayList(new Versioned<byte[]>(null, null), new Versioned<byte[]>(null, null), new Versioned<byte[]>(DLUtils.serializeTransactionId(1L), new ZkVersion(1)), new Versioned<byte[]>(ZKLogMetadataForWriter.intToBytes(9999), null));
    ZKLogMetadataForWriter.processLogMetadatas(uri, logName, logIdentifier, metadatas, false);
}
Also used : Versioned(org.apache.bookkeeper.versioning.Versioned) URI(java.net.URI) ZkVersion(org.apache.bookkeeper.meta.ZkVersion) Test(org.junit.Test)

Example 8 with Versioned

use of org.apache.bookkeeper.versioning.Versioned in project distributedlog by twitter.

the class TestZKLogMetadataForWriterUtilFunctions method testProcessLogMetadatasMissingAllocatorPath.

@SuppressWarnings("unchecked")
@Test(timeout = 60000, expected = UnexpectedException.class)
public void testProcessLogMetadatasMissingAllocatorPath() throws Exception {
    String rootPath = "/test-missing-version";
    URI uri = DLMTestUtil.createDLMURI(2181, rootPath);
    String logName = "test-log";
    String logIdentifier = "<default>";
    List<Versioned<byte[]>> metadatas = Lists.newArrayList(new Versioned<byte[]>(null, null), new Versioned<byte[]>(null, null), new Versioned<byte[]>(DLUtils.serializeTransactionId(1L), new ZkVersion(1)), new Versioned<byte[]>(ZKLogMetadataForWriter.intToBytes(ZKLogMetadata.LAYOUT_VERSION), null), new Versioned<byte[]>(new byte[0], new ZkVersion(1)), new Versioned<byte[]>(new byte[0], new ZkVersion(1)), new Versioned<byte[]>(DLUtils.serializeLogSegmentSequenceNumber(1L), new ZkVersion(1)), new Versioned<byte[]>(null, null));
    ZKLogMetadataForWriter.processLogMetadatas(uri, logName, logIdentifier, metadatas, true);
}
Also used : Versioned(org.apache.bookkeeper.versioning.Versioned) URI(java.net.URI) ZkVersion(org.apache.bookkeeper.meta.ZkVersion) Test(org.junit.Test)

Example 9 with Versioned

use of org.apache.bookkeeper.versioning.Versioned in project distributedlog by twitter.

the class TestZKLogMetadataForWriterUtilFunctions method testProcessLogMetadatasMissingLogSegmentsPath.

@SuppressWarnings("unchecked")
@Test(timeout = 60000, expected = UnexpectedException.class)
public void testProcessLogMetadatasMissingLogSegmentsPath() throws Exception {
    String rootPath = "/test-missing-version";
    URI uri = DLMTestUtil.createDLMURI(2181, rootPath);
    String logName = "test-log";
    String logIdentifier = "<default>";
    List<Versioned<byte[]>> metadatas = Lists.newArrayList(new Versioned<byte[]>(null, null), new Versioned<byte[]>(null, null), new Versioned<byte[]>(DLUtils.serializeTransactionId(1L), new ZkVersion(1)), new Versioned<byte[]>(ZKLogMetadataForWriter.intToBytes(ZKLogMetadata.LAYOUT_VERSION), null), new Versioned<byte[]>(new byte[0], new ZkVersion(1)), new Versioned<byte[]>(new byte[0], new ZkVersion(1)), new Versioned<byte[]>(null, null));
    ZKLogMetadataForWriter.processLogMetadatas(uri, logName, logIdentifier, metadatas, false);
}
Also used : Versioned(org.apache.bookkeeper.versioning.Versioned) URI(java.net.URI) ZkVersion(org.apache.bookkeeper.meta.ZkVersion) Test(org.junit.Test)

Example 10 with Versioned

use of org.apache.bookkeeper.versioning.Versioned in project distributedlog by twitter.

the class TestZKLogMetadataForWriterUtilFunctions method testProcessLogMetadatasAllocatorPath.

@SuppressWarnings("unchecked")
@Test(timeout = 60000)
public void testProcessLogMetadatasAllocatorPath() throws Exception {
    String rootPath = "/test-missing-version";
    URI uri = DLMTestUtil.createDLMURI(2181, rootPath);
    String logName = "test-log";
    String logIdentifier = "<default>";
    Versioned<byte[]> maxTxnIdData = new Versioned<byte[]>(DLUtils.serializeTransactionId(1L), new ZkVersion(1));
    Versioned<byte[]> logSegmentsData = new Versioned<byte[]>(DLUtils.serializeLogSegmentSequenceNumber(1L), new ZkVersion(1));
    Versioned<byte[]> allocationData = new Versioned<byte[]>(DLUtils.ledgerId2Bytes(1L), new ZkVersion(1));
    List<Versioned<byte[]>> metadatas = Lists.newArrayList(new Versioned<byte[]>(null, null), new Versioned<byte[]>(null, null), maxTxnIdData, new Versioned<byte[]>(ZKLogMetadataForWriter.intToBytes(ZKLogMetadata.LAYOUT_VERSION), null), new Versioned<byte[]>(new byte[0], new ZkVersion(1)), new Versioned<byte[]>(new byte[0], new ZkVersion(1)), logSegmentsData, allocationData);
    ZKLogMetadataForWriter metadata = ZKLogMetadataForWriter.processLogMetadatas(uri, logName, logIdentifier, metadatas, true);
    assertTrue(maxTxnIdData == metadata.getMaxTxIdData());
    assertTrue(logSegmentsData == metadata.getMaxLSSNData());
    assertTrue(allocationData == metadata.getAllocationData());
}
Also used : Versioned(org.apache.bookkeeper.versioning.Versioned) URI(java.net.URI) ZkVersion(org.apache.bookkeeper.meta.ZkVersion) Test(org.junit.Test)

Aggregations

Versioned (org.apache.bookkeeper.versioning.Versioned)22 ZkVersion (org.apache.bookkeeper.meta.ZkVersion)21 Test (org.junit.Test)17 Stat (org.apache.zookeeper.data.Stat)10 URI (java.net.URI)9 Promise (com.twitter.util.Promise)8 ZKException (com.twitter.distributedlog.exceptions.ZKException)7 Transaction (com.twitter.distributedlog.util.Transaction)6 Version (org.apache.bookkeeper.versioning.Version)6 KeeperException (org.apache.zookeeper.KeeperException)4 AsyncCallback (org.apache.zookeeper.AsyncCallback)3 ZKTransaction (com.twitter.distributedlog.zk.ZKTransaction)2 LedgerEntry (org.apache.bookkeeper.client.LedgerEntry)2 LedgerHandle (org.apache.bookkeeper.client.LedgerHandle)2 ZooKeeperClient (com.twitter.distributedlog.ZooKeeperClient)1 LogExistsException (com.twitter.distributedlog.exceptions.LogExistsException)1 LogNotFoundException (com.twitter.distributedlog.exceptions.LogNotFoundException)1 File (java.io.File)1 IOException (java.io.IOException)1 List (java.util.List)1