Search in sources :

Example 1 with CountEvictionPolicy

use of org.apache.heron.api.windowing.evictors.CountEvictionPolicy in project heron by twitter.

the class WindowManagerTest method testExpireThreshold.

@Test
public void testExpireThreshold() throws Exception {
    int threshold = WindowManager.EXPIRE_EVENTS_THRESHOLD;
    int windowLength = 5;
    CountEvictionPolicy<Integer> countEvictionPolicy = new CountEvictionPolicy<Integer>(5);
    windowManager.setEvictionPolicy(countEvictionPolicy);
    TriggerPolicy<Integer, ?> triggerPolicy = new TimeTriggerPolicy<Integer>(Duration.ofHours(1).toMillis());
    triggerPolicy.setEvictionPolicy(countEvictionPolicy);
    triggerPolicy.setTriggerHandler(windowManager);
    triggerPolicy.setTopologyConfig(new Config());
    triggerPolicy.start();
    windowManager.setTriggerPolicy(triggerPolicy);
    for (int i : seq(1, 5)) {
        windowManager.add(i);
    }
    // nothing expired yet
    assertTrue(listener.onExpiryEvents.isEmpty());
    for (int i : seq(6, 10)) {
        windowManager.add(i);
    }
    for (int i : seq(11, threshold)) {
        windowManager.add(i);
    }
    // window should be compacted and events should be expired.
    assertEquals(seq(1, threshold - windowLength), listener.onExpiryEvents);
}
Also used : WatermarkTimeTriggerPolicy(org.apache.heron.api.windowing.triggers.WatermarkTimeTriggerPolicy) TimeTriggerPolicy(org.apache.heron.api.windowing.triggers.TimeTriggerPolicy) Config(org.apache.heron.api.Config) CountEvictionPolicy(org.apache.heron.api.windowing.evictors.CountEvictionPolicy) WatermarkCountEvictionPolicy(org.apache.heron.api.windowing.evictors.WatermarkCountEvictionPolicy) Test(org.junit.Test)

Aggregations

Config (org.apache.heron.api.Config)1 CountEvictionPolicy (org.apache.heron.api.windowing.evictors.CountEvictionPolicy)1 WatermarkCountEvictionPolicy (org.apache.heron.api.windowing.evictors.WatermarkCountEvictionPolicy)1 TimeTriggerPolicy (org.apache.heron.api.windowing.triggers.TimeTriggerPolicy)1 WatermarkTimeTriggerPolicy (org.apache.heron.api.windowing.triggers.WatermarkTimeTriggerPolicy)1 Test (org.junit.Test)1