16 #ifndef IMPALA_RUNTIME_DATA_STREAM_SENDER_H
17 #define IMPALA_RUNTIME_DATA_STREAM_SENDER_H
27 #include "gen-cpp/Results_types.h"
35 class TDataStreamSink;
36 class TNetworkAddress;
37 class TPlanFragmentDestination;
58 const std::vector<TPlanFragmentDestination>& destinations,
59 int per_channel_buffer_size);
RuntimeProfile::Counter * thrift_transmit_timer_
RuntimeProfile::Counter * uncompressed_bytes_counter_
RuntimeProfile::Counter * bytes_sent_counter_
int sender_id_
Sender instance id, unique within a fragment.
RuntimeProfile::Counter * network_throughput_
Throughput per time spent in TransmitData.
virtual Status Prepare(RuntimeState *state)
virtual RuntimeProfile * profile()
Returns the runtime profile for the sink.
virtual Status Open(RuntimeState *state)
const RowDescriptor & row_desc_
Superclass of all data sinks.
std::vector< Channel * > channels_
void SerializeBatch(RowBatch *src, TRowBatch *dest, int num_receivers=1)
virtual Status Send(RuntimeState *state, RowBatch *batch, bool eos)
int64_t GetNumDataBytesSent() const
virtual ~DataStreamSender()
virtual void Close(RuntimeState *state)
RuntimeProfile::Counter * overall_throughput_
Throughput per total time spent in sender.
const RowDescriptor & row_desc() const
bool closed_
If true, this sender has been closed. Not valid to call Send() anymore.
RuntimeProfile * profile_
std::vector< ExprContext * > partition_expr_ctxs_
RuntimeProfile::Counter * serialize_batch_timer_
TRowBatch * current_thrift_batch_
DataStreamSender(ObjectPool *pool, int sender_id, const RowDescriptor &row_desc, const TDataStreamSink &sink, const std::vector< TPlanFragmentDestination > &destinations, int per_channel_buffer_size)
boost::scoped_ptr< MemTracker > mem_tracker_
PlanNodeId dest_node_id_
Identifier of the destination plan node.