Search in sources :

Example 26 with Slice

use of com.datatorrent.netlet.util.Slice in project apex-malhar by apache.

the class DefaultBucketTest method testCommittedWithOpenReader.

@Test
public void testCommittedWithOpenReader() throws IOException {
    testMeta.defaultBucket.setup(testMeta.managedStateContext);
    testGetFromReader();
    Map<Long, FileAccess.FileReader> readers = testMeta.defaultBucket.getReaders();
    Assert.assertTrue("reader open", readers.containsKey(101L));
    Slice two = ManagedStateTestUtils.getSliceFor("2");
    Slice one = ManagedStateTestUtils.getSliceFor("1");
    testMeta.defaultBucket.put(two, 101, two);
    Map<Slice, Bucket.BucketedValue> unsaved = testMeta.defaultBucket.checkpoint(10);
    Assert.assertEquals("size", 1, unsaved.size());
    testMeta.defaultBucket.committed(10);
    Slice value = testMeta.defaultBucket.get(two, -1, Bucket.ReadSource.MEMORY);
    Assert.assertEquals("value two", two, value);
    value = testMeta.defaultBucket.get(one, -1, Bucket.ReadSource.MEMORY);
    Assert.assertEquals("value one", one, value);
    Assert.assertTrue("reader closed", !readers.containsKey(101L));
    testMeta.defaultBucket.teardown();
}
Also used : Slice(com.datatorrent.netlet.util.Slice) Test(org.junit.Test)

Example 27 with Slice

use of com.datatorrent.netlet.util.Slice in project apex-malhar by apache.

the class ManagedStateImplTest method testAsyncGetFromFlash.

@Test
public void testAsyncGetFromFlash() throws ExecutionException, InterruptedException {
    Slice one = ManagedStateTestUtils.getSliceFor("1");
    testMeta.managedState.setup(testMeta.operatorContext);
    testMeta.managedState.beginWindow(System.currentTimeMillis());
    testMeta.managedState.put(0, one, one);
    Future<Slice> valFuture = testMeta.managedState.getAsync(0, one);
    Slice value = valFuture.get();
    Assert.assertEquals("value of one", one, value);
    testMeta.managedState.teardown();
}
Also used : Slice(com.datatorrent.netlet.util.Slice) Test(org.junit.Test)

Example 28 with Slice

use of com.datatorrent.netlet.util.Slice in project apex-malhar by apache.

the class ManagedStateImplTest method testIncrementalCheckpoint.

@Test
public void testIncrementalCheckpoint() {
    Slice one = ManagedStateTestUtils.getSliceFor("1");
    testMeta.managedState.setup(testMeta.operatorContext);
    long time = System.currentTimeMillis();
    testMeta.managedState.beginWindow(time);
    testMeta.managedState.put(0, one, one);
    testMeta.managedState.endWindow();
    testMeta.managedState.beforeCheckpoint(time);
    Bucket.DefaultBucket defaultBucket = (Bucket.DefaultBucket) testMeta.managedState.getBucket(0);
    Assert.assertEquals("value of one", one, defaultBucket.getCheckpointedData().get(time).get(one).getValue());
    Slice two = ManagedStateTestUtils.getSliceFor("2");
    testMeta.managedState.beginWindow(time + 1);
    testMeta.managedState.put(0, two, two);
    testMeta.managedState.endWindow();
    testMeta.managedState.beforeCheckpoint(time + 1);
    Assert.assertEquals("value of two", two, defaultBucket.getCheckpointedData().get(time + 1).get(two).getValue());
    testMeta.managedState.teardown();
}
Also used : Slice(com.datatorrent.netlet.util.Slice) Test(org.junit.Test)

Example 29 with Slice

use of com.datatorrent.netlet.util.Slice in project apex-malhar by apache.

the class ManagedStateImplTest method testAsyncGetFromCommitted.

@Test
public void testAsyncGetFromCommitted() throws ExecutionException, InterruptedException {
    Slice one = ManagedStateTestUtils.getSliceFor("1");
    Slice two = ManagedStateTestUtils.getSliceFor("2");
    commitHelper(one, two);
    Future<Slice> valFuture = testMeta.managedState.getAsync(0, one);
    Assert.assertEquals("value of one", one, valFuture.get());
}
Also used : Slice(com.datatorrent.netlet.util.Slice) Test(org.junit.Test)

Example 30 with Slice

use of com.datatorrent.netlet.util.Slice in project apex-malhar by apache.

the class ManagedStateImplTest method testFreeWindowTransferRaceCondition.

/**
 * Fix for APEXMALHAR-2042
 */
@Test
public void testFreeWindowTransferRaceCondition() throws Exception {
    testMeta.managedState.setMaxMemorySize(1);
    testMeta.managedState.setCheckStateSizeInterval(Duration.millis(1L));
    testMeta.managedState.setup(testMeta.operatorContext);
    int numKeys = 300;
    long lastWindowId = numKeys;
    for (long windowId = 0L; windowId < lastWindowId; windowId++) {
        testMeta.managedState.beginWindow(windowId);
        Slice keyVal = ManagedStateTestUtils.getSliceFor(Long.toString(windowId));
        testMeta.managedState.put(0L, keyVal, keyVal);
        testMeta.managedState.endWindow();
        testMeta.managedState.beforeCheckpoint(windowId);
        testMeta.managedState.checkpointed(windowId);
        Thread.sleep(1L);
    }
    testMeta.managedState.committed(lastWindowId - 2L);
    lastWindowId++;
    testMeta.managedState.beginWindow(lastWindowId);
    for (int key = numKeys - 1; key > 0; key--) {
        Slice keyVal = ManagedStateTestUtils.getSliceFor(Integer.toString(key));
        Slice val = testMeta.managedState.getSync(0L, keyVal);
        Assert.assertNotNull("null value for key " + key, val);
    }
    testMeta.managedState.endWindow();
    testMeta.managedState.teardown();
}
Also used : Slice(com.datatorrent.netlet.util.Slice) Test(org.junit.Test)

Aggregations

Slice (com.datatorrent.netlet.util.Slice)114 Test (org.junit.Test)65 ByteArrayOutputStream (java.io.ByteArrayOutputStream)10 Input (com.esotericsoftware.kryo.io.Input)9 IOException (java.io.IOException)6 Map (java.util.Map)5 ArrayList (java.util.ArrayList)4 HashMap (java.util.HashMap)4 CountDownLatch (java.util.concurrent.CountDownLatch)4 BufferSlice (org.apache.apex.malhar.lib.utils.serde.BufferSlice)4 Path (org.apache.hadoop.fs.Path)4 ObjectMapperString (com.datatorrent.common.util.ObjectMapperString)3 SerializationBuffer (org.apache.apex.malhar.lib.utils.serde.SerializationBuffer)3 StringSerde (org.apache.apex.malhar.lib.utils.serde.StringSerde)3 Attribute (com.datatorrent.api.Attribute)2 OperatorContext (com.datatorrent.api.Context.OperatorContext)2 Output (com.esotericsoftware.kryo.io.Output)2 RandomAccessFile (java.io.RandomAccessFile)2 Serializable (java.io.Serializable)2 HashSet (java.util.HashSet)2