@Override public Iterable<Object> get(List<String> keys) { List<Get> gets = new ArrayList<>(); for (String key : keys) { WindowsStore.Entry.nonNullCheckForKey(key); byte[] effectiveKey = effectiveKey(key); gets.add(new Get(effectiveKey)); } Result[] results = null; try { results = htable().get(gets); } catch (IOException e) { throw new RuntimeException(e); } List<Object> values = new ArrayList<>(); for (int i = 0; i < results.length; i++) { Result result = results[i]; if (result.isEmpty()) { LOG.error("Got empty result for key [{}]", keys.get(i)); throw new RuntimeException("Received empty result for key: " + keys.get(i)); } Object resultObject = windowKryoSerializer().deserialize(result.getValue(family, qualifier)); values.add(resultObject); } return values; }
@Override public void put(String key, Object value) { WindowsStore.Entry.nonNullCheckForKey(key); WindowsStore.Entry.nonNullCheckForValue(value); if (value == null) { throw new IllegalArgumentException("Invalid value of null with key: " + key); } Put put = new Put(effectiveKey(key)); put.addColumn(family, ByteBuffer.wrap(qualifier), System.currentTimeMillis(), windowKryoSerializer().serializeToByteBuffer(value)); try { htable().put(put); } catch (IOException e) { throw new RuntimeException(e); } }
public void addTuplesBatch(Object batchId, List<TridentTuple> tuples) { LOG.debug("Adding tuples to window-manager for batch: [{}]", batchId); List<WindowsStore.Entry> entries = new ArrayList<>(); for (int i = 0; i < tuples.size(); i++) { String key = keyOf(batchId); TridentTuple tridentTuple = tuples.get(i); entries.add(new WindowsStore.Entry(key + i, tridentTuple.select(inputFields))); } // tuples should be available in store before they are added to window manager windowStore.putAll(entries); for (int i = 0; i < tuples.size(); i++) { String key = keyOf(batchId); TridentTuple tridentTuple = tuples.get(i); addToWindowManager(i, key, tridentTuple); } }
@Override public Iterable<Object> get(List<String> keys) { List<Get> gets = new ArrayList<>(); for (String key : keys) { WindowsStore.Entry.nonNullCheckForKey(key); byte[] effectiveKey = effectiveKey(key); gets.add(new Get(effectiveKey)); } Result[] results = null; try { results = htable().get(gets); } catch (IOException e) { throw new RuntimeException(e); } List<Object> values = new ArrayList<>(); for (int i=0; i<results.length; i++) { Result result = results[i]; if(result.isEmpty()) { LOG.error("Got empty result for key [{}]", keys.get(i)); throw new RuntimeException("Received empty result for key: "+keys.get(i)); } Object resultObject = windowKryoSerializer().deserialize(result.getValue(family, qualifier)); values.add(resultObject); } return values; }
@Override public void put(String key, Object value) { WindowsStore.Entry.nonNullCheckForKey(key); WindowsStore.Entry.nonNullCheckForValue(value); if(value == null) { throw new IllegalArgumentException("Invalid value of null with key: "+key); } Put put = new Put(effectiveKey(key)); put.addColumn(family, ByteBuffer.wrap(qualifier), System.currentTimeMillis(), windowKryoSerializer().serializeToByteBuffer(value)); try { htable().put(put); } catch (IOException e) { throw new RuntimeException(e); } }
public void addTuplesBatch(Object batchId, List<TridentTuple> tuples) { LOG.debug("Adding tuples to window-manager for batch: [{}]", batchId); List<WindowsStore.Entry> entries = new ArrayList<>(); for (int i = 0; i < tuples.size(); i++) { String key = keyOf(batchId); TridentTuple tridentTuple = tuples.get(i); entries.add(new WindowsStore.Entry(key+i, tridentTuple.select(inputFields))); } // tuples should be available in store before they are added to window manager windowStore.putAll(entries); for (int i = 0; i < tuples.size(); i++) { String key = keyOf(batchId); TridentTuple tridentTuple = tuples.get(i); addToWindowManager(i, key, tridentTuple); } }
private void execAggregatorAndStoreResult(int currentTriggerId, List<T> tupleEvents) { List<TridentTuple> resultTuples = getTridentTuples(tupleEvents); // run aggregator to compute the result AccumulatedTuplesCollector collector = new AccumulatedTuplesCollector(delegateCollector); Object state = aggregator.init(currentTriggerId, collector); for (TridentTuple resultTuple : resultTuples) { aggregator.aggregate(state, resultTuple, collector); } aggregator.complete(state, collector); List<List<Object>> resultantAggregatedValue = collector.values; ArrayList<WindowsStore.Entry> entries = Lists.newArrayList(new WindowsStore.Entry(windowTriggerCountId, currentTriggerId + 1), new WindowsStore.Entry(WindowTridentProcessor.generateWindowTriggerKey(windowTaskId, currentTriggerId), resultantAggregatedValue)); windowStore.putAll(entries); pendingTriggers.add(new TriggerResult(currentTriggerId, resultantAggregatedValue)); }
@Override public Object get(String key) { WindowsStore.Entry.nonNullCheckForKey(key); byte[] effectiveKey = effectiveKey(key); Get get = new Get(effectiveKey); Result result = null; try { result = htable().get(get); } catch (IOException e) { throw new RuntimeException(e); } if(result.isEmpty()) { return null; } return windowKryoSerializer().deserialize(result.getValue(family, qualifier)); }
@Override public void removeAll(Collection<String> keys) { List<Delete> deleteBatch = new ArrayList<>(); for (String key : keys) { WindowsStore.Entry.nonNullCheckForKey(key); Delete delete = new Delete(effectiveKey(key), System.currentTimeMillis()); deleteBatch.add(delete); } try { htable().delete(deleteBatch); } catch (IOException e) { throw new RuntimeException(e); } }
public Entry(String key, Object value) { nonNullCheckForKey(key); nonNullCheckForValue(value); this.key = key; this.value = value; }
@Override public void remove(String key) { WindowsStore.Entry.nonNullCheckForKey(key); Delete delete = new Delete(effectiveKey(key), System.currentTimeMillis()); try { htable().delete(delete); } catch (IOException e) { throw new RuntimeException(e); } }
private void execAggregatorAndStoreResult(int currentTriggerId, List<T> tupleEvents) { List<TridentTuple> resultTuples = getTridentTuples(tupleEvents); // run aggregator to compute the result AccumulatedTuplesCollector collector = new AccumulatedTuplesCollector(delegateCollector); Object state = aggregator.init(currentTriggerId, collector); for (TridentTuple resultTuple : resultTuples) { aggregator.aggregate(state, resultTuple, collector); } aggregator.complete(state, collector); List<List<Object>> resultantAggregatedValue = collector.values; ArrayList<WindowsStore.Entry> entries = Lists.newArrayList(new WindowsStore.Entry(windowTriggerCountId, currentTriggerId + 1), new WindowsStore.Entry(WindowTridentProcessor .generateWindowTriggerKey(windowTaskId, currentTriggerId), resultantAggregatedValue)); windowStore.putAll(entries); pendingTriggers.add(new TriggerResult(currentTriggerId, resultantAggregatedValue)); }
@Override public Object get(String key) { WindowsStore.Entry.nonNullCheckForKey(key); byte[] effectiveKey = effectiveKey(key); Get get = new Get(effectiveKey); Result result = null; try { result = htable().get(get); } catch (IOException e) { throw new RuntimeException(e); } if (result.isEmpty()) { return null; } return windowKryoSerializer().deserialize(result.getValue(family, qualifier)); }
@Override public void removeAll(Collection<String> keys) { List<Delete> deleteBatch = new ArrayList<>(); for (String key : keys) { WindowsStore.Entry.nonNullCheckForKey(key); Delete delete = new Delete(effectiveKey(key), System.currentTimeMillis()); deleteBatch.add(delete); } try { htable().delete(deleteBatch); } catch (IOException e) { throw new RuntimeException(e); } }
@Override public void remove(String key) { WindowsStore.Entry.nonNullCheckForKey(key); Delete delete = new Delete(effectiveKey(key), System.currentTimeMillis()); try { htable().delete(delete); } catch (IOException e) { throw new RuntimeException(e); } }
public Entry(String key, Object value) { nonNullCheckForKey(key); nonNullCheckForValue(value); this.key = key; this.value = value; }