Search in sources :

Example 96 with Slice

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

the class DefaultBucketTest method testGetFromSpecificTimeBucket.

@Test
public void testGetFromSpecificTimeBucket() throws IOException {
    testMeta.defaultBucket.setup(testMeta.managedStateContext);
    Slice one = ManagedStateTestUtils.getSliceFor("1");
    Map<Slice, Bucket.BucketedValue> unsavedBucket0 = ManagedStateTestUtils.getTestBucketData(0, 100);
    testMeta.managedStateContext.getBucketsFileSystem().writeBucketData(1, 1, unsavedBucket0, -1);
    ManagedStateTestUtils.validateBucketOnFileSystem(testMeta.managedStateContext.getFileAccess(), 1, unsavedBucket0, 1);
    Slice value = testMeta.defaultBucket.get(one, 101, Bucket.ReadSource.READERS);
    Assert.assertEquals("value one", one, value);
    testMeta.defaultBucket.teardown();
}
Also used : Slice(com.datatorrent.netlet.util.Slice) Test(org.junit.Test)

Example 97 with Slice

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

the class DefaultBucketTest method testCheckpointed.

@Test
public void testCheckpointed() {
    testMeta.defaultBucket.setup(testMeta.managedStateContext);
    Slice one = ManagedStateTestUtils.getSliceFor("1");
    testPut();
    Map<Slice, Bucket.BucketedValue> unsaved = testMeta.defaultBucket.checkpoint(10);
    Map.Entry<Slice, Bucket.BucketedValue> entry = unsaved.entrySet().iterator().next();
    Assert.assertEquals("key", one, entry.getKey());
    Assert.assertEquals("value", one, entry.getValue().getValue());
    Assert.assertEquals("time bucket", 1, entry.getValue().getTimeBucket());
    testMeta.defaultBucket.teardown();
}
Also used : Slice(com.datatorrent.netlet.util.Slice) Map(java.util.Map) Test(org.junit.Test)

Example 98 with Slice

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

the class DefaultBucketTest method testBloomFilter.

@Test
public void testBloomFilter() throws IOException {
    testMeta.defaultBucket.setDisableBloomFilter(false);
    testMeta.defaultBucket.setup(testMeta.managedStateContext);
    final int itemSize = 1000;
    final int bucketId = 1;
    for (int i = 0; i < itemSize; i += 2) {
        // put only even value
        Slice keyAndValue = ManagedStateTestUtils.getSliceFor(String.valueOf(i));
        testMeta.defaultBucket.put(keyAndValue, bucketId, keyAndValue);
    }
    testMeta.defaultBucket.freeMemory(Long.MAX_VALUE);
    for (int i = 0; i < itemSize; ++i) {
        // put only even value
        Slice key = ManagedStateTestUtils.getSliceFor(String.valueOf(i));
        Slice value = testMeta.defaultBucket.get(key, bucketId, ReadSource.ALL);
        if ((i & 0x01) == 0) {
            Assert.assertEquals(key, value);
        } else {
            Assert.assertTrue(value == null);
        }
    }
    testMeta.defaultBucket.teardown();
}
Also used : Slice(com.datatorrent.netlet.util.Slice) Test(org.junit.Test)

Example 99 with Slice

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

the class DefaultBucketTest method testFreeMemory.

@Test
public void testFreeMemory() throws IOException {
    DefaultBucket.setDisableBloomFilterByDefault(false);
    testMeta.defaultBucket.setup(testMeta.managedStateContext);
    testGetFromReader();
    long initSize = testMeta.defaultBucket.getSizeInBytes();
    // The temporary memory generated by get was not managed by bucket, only put was managed by bucket
    SerializationBuffer buffer = new SerializationBuffer(testMeta.defaultBucket.getKeyStream());
    byte[] keyPrefix = new byte[] { 0 };
    String key = "1";
    String value = "2";
    AffixSerde<String> keySerde = new AffixSerde<>(keyPrefix, new StringSerde(), null);
    StringSerde valueSerde = new StringSerde();
    testMeta.defaultBucket.getKeyStream().beginWindow(1);
    testMeta.defaultBucket.getValueStream().beginWindow(1);
    keySerde.serialize(key, buffer);
    Slice keySlice = buffer.toSlice();
    valueSerde.serialize(value, buffer);
    Slice valueSlice = buffer.toSlice();
    testMeta.defaultBucket.put(keySlice, 1, valueSlice);
    testMeta.defaultBucket.getKeyStream().endWindow();
    testMeta.defaultBucket.getValueStream().endWindow();
    long currentSize = testMeta.defaultBucket.getSizeInBytes();
    testMeta.defaultBucket.freeMemory(Long.MAX_VALUE);
    // call this method to invoke the release memory
    testMeta.defaultBucket.get(keySlice, -1, ReadSource.MEMORY);
    long sizeFreed = currentSize - testMeta.defaultBucket.getSizeInBytes();
    Assert.assertEquals("size freed", initSize, sizeFreed);
    Assert.assertEquals("existing size", currentSize - initSize, testMeta.defaultBucket.getSizeInBytes());
    testMeta.defaultBucket.teardown();
}
Also used : SerializationBuffer(org.apache.apex.malhar.lib.utils.serde.SerializationBuffer) StringSerde(org.apache.apex.malhar.lib.utils.serde.StringSerde) Slice(com.datatorrent.netlet.util.Slice) AffixSerde(org.apache.apex.malhar.lib.utils.serde.AffixSerde) Test(org.junit.Test)

Example 100 with Slice

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

the class ManagedStateImplTest method testSimplePutGet.

@Test
public void testSimplePutGet() {
    Slice one = ManagedStateTestUtils.getSliceFor("1");
    testMeta.managedState.setup(testMeta.operatorContext);
    testMeta.managedState.beginWindow(System.currentTimeMillis());
    testMeta.managedState.put(0, one, one);
    Slice value = testMeta.managedState.getSync(0, one);
    testMeta.managedState.endWindow();
    Assert.assertEquals("value of one", one, value);
    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