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();
}
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();
}
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();
}
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());
}
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();
}
Aggregations