Class OverlapGeneratorKernel

Inheritance Relationships

Base Type

Class Documentation

class ral::batch::OverlapGeneratorKernel : public ral::cache::kernel

The OverlapGeneratorKernel is only used for window functions that have no partition by clause and that also have bounded window frames. The OverlapGeneratorKernel assumes that it will be following by OverlapAccumulatorKernel and has three output caches:

  • ”batches”

  • ”preceding_overlaps”

  • ”following_overlaps”

Its purpose is to take its input batches and create preceding and/or following overlaps depending on the preceding and following clauses of the window frames. It operates on each batch independently and does not communicate with other nodes. If it cannot create a complte overlap (the overlap size is bigger than the batch), it will set the overlap’s status to INCOMPLETE, which is captured by the CacheData metadata for the overlap.

Public Functions

OverlapGeneratorKernel(std::size_t kernel_id, const std::string &queryString, std::shared_ptr<Context> context, std::shared_ptr<ral::cache::graph> query_graph)
inline virtual std::string kernel_name()
ral::execution::task_result do_process(std::vector<std::unique_ptr<ral::frame::BlazingTable>> inputs, std::shared_ptr<ral::cache::CacheMachine> output, cudaStream_t stream, const std::map<std::string, std::string> &args) override
virtual kstatus run() override

Executes the batch processing. Loads the data from their input port, and after processing it, the results are stored in their output port.

Return

kstatus ‘stop’ to halt processing, or ‘proceed’ to continue processing.