[
https://issues.apache.org/jira/browse/STORM-1979?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15394224#comment-15394224
]
ASF GitHub Bot commented on STORM-1979:
---------------------------------------
Github user harshach commented on a diff in the pull request:
https://github.com/apache/storm/pull/1583#discussion_r72304747
--- Diff:
external/storm-druid/src/main/java/org/apache/storm/druid/trident/DruidBeamState.java
---
@@ -0,0 +1,73 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.storm.druid.trident;
+
+import com.metamx.tranquility.beam.Beam;
+import com.twitter.util.Await;
+import org.apache.storm.trident.state.State;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import scala.collection.JavaConversions;
+
+import java.util.List;
+
+
+/**
+ * Trident {@link State} implementation for Druid.
+ */
+public class DruidBeamState<E> implements State {
+ private static final Logger LOG =
LoggerFactory.getLogger(DruidBeamState.class);
+
+ Beam<E> beam = null;
+
+ public DruidBeamState(Beam<E> beam) {
+ this.beam = beam;
+ }
+
+ public void send(List<E> events ) {
+ try {
+ LOG.info("Sending %d events", events.size());
+
Await.result(beam.sendBatch(JavaConversions.collectionAsScalaIterable(events).toList()));
+ } catch (Exception e) {
+ final String errorMsg = "Failed in writing messages to Druid";
+ LOG.error(errorMsg, e);
+ throw new RuntimeException(errorMsg);
--- End diff --
do we want to throw the run-time exception. What if this is a temporary
failure and on a re-try we might succeed in those cases throwing run time
exception will kill the worker JVM itself.
> Storm Druid Connector
> ---------------------
>
> Key: STORM-1979
> URL: https://issues.apache.org/jira/browse/STORM-1979
> Project: Apache Storm
> Issue Type: Improvement
> Reporter: Sriharsha Chintalapani
> Assignee: Manikumar Reddy
>
> Storm Bolt & Trident state implementation for Druid.
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)