Skip to content

API Docs - v5.0.3

Tested Siddhi Core version: 5.0.2

It could also support other Siddhi Core minor versions.

Reorder

akslack (Stream Processor)

Stream processor performs reordering of out-of-order events optimized for a givenparameter using AQ-K-Slack algorithm. This is best for reordering events on attributes those are used for aggregations.data .

Syntax

reorder:akslack(<LONG> timestamp, <INT|FLOAT|LONG|DOUBLE> correlation.field)
reorder:akslack(<LONG> timestamp, <INT|FLOAT|LONG|DOUBLE> correlation.field, <LONG> batch.size)
reorder:akslack(<LONG> timestamp, <INT|FLOAT|LONG|DOUBLE> correlation.field, <LONG> batch.size, <LONG> timeout)
reorder:akslack(<LONG> timestamp, <INT|FLOAT|LONG|DOUBLE> correlation.field, <LONG> batch.size, <LONG> timeout, <LONG> max.k)
reorder:akslack(<LONG> timestamp, <INT|FLOAT|LONG|DOUBLE> correlation.field, <LONG> batch.size, <LONG> timeout, <LONG> max.k, <BOOL> discard.late.arrival)
reorder:akslack(<LONG> timestamp, <INT|FLOAT|LONG|DOUBLE> correlation.field, <LONG> batch.size, <LONG> timeout, <LONG> max.k, <BOOL> discard.late.arrival, <DOUBLE> error.threshold, <DOUBLE> confidence.level)

QUERY PARAMETERS

Name Description Default Value Possible Data Types Optional Dynamic
timestamp The event timestamp on which the events should be ordered. LONG No Yes
correlation.field By monitoring the changes in this field Alpha K-Slack dynamically optimises its behavior. This field is used to calculate the runtime window coverage threshold, which represents the upper limit set for unsuccessfully handled late arrivals. INT
FLOAT
LONG
DOUBLE
No Yes
batch.size The parameter 'batch.size' denotes the number of events that should be considered in the calculation of an alpha value. This should be greater than or equal to 15. 10,000 LONG Yes No
timeout A timeout value in milliseconds, where the buffered events who are older than the given timeout period get flushed every second. -1 (timeout is infinite) LONG Yes No
max.k The maximum K-Slack window threshold ('K' parameter). 9,223,372,036,854,775,807 (The maximum Long value) LONG Yes No
discard.late.arrival If set to true the processor would discarded the out-of-order events arriving later than the K-Slack window, and in otherwise it allows the late arrivals to proceed. false BOOL Yes No
error.threshold The error threshold to be applied in Alpha K-Slack algorithm. 0.03 (3%) DOUBLE Yes No
confidence.level The confidence level to be applied in Alpha K-Slack algorithm. 0.95 (95%) DOUBLE Yes No

Examples EXAMPLE 1

define stream StockStream (eventTime long, symbol string, volume long);

@info(name = 'query1')
from StockStream#reorder:akslack(eventTime, volume, 20)#window.time(5 min)
select eventTime, symbol, sum(volume) as total
insert into OutputStream;

The query reorders events based on the 'eventTime' attribute value and optimises for aggregating 'volume' attribute considering last 20 events.

kslack (Stream Processor)

Stream processor performs reordering of out-of-order events using K-Slack algorithm.

Syntax

reorder:kslack(<LONG> timestamp)
reorder:kslack(<LONG> timestamp, <LONG> timeout)
reorder:kslack(<LONG> timestamp, <BOOL> discard.late.arrival)
reorder:kslack(<LONG> timestamp, <LONG> timeout, <LONG> max.k)
reorder:kslack(<LONG> timestamp, <LONG> timeout, <BOOL> discard.late.arrival)
reorder:kslack(<LONG> timestamp, <LONG> timeout, <LONG> max.k, <BOOL> discard.late.arrival)

QUERY PARAMETERS

Name Description Default Value Possible Data Types Optional Dynamic
timestamp The event timestamp on which the events should be ordered. LONG No Yes
timeout A timeout value in milliseconds, where the buffered events who are older than the given timeout period get flushed every second. -1 (timeout is infinite) LONG Yes No
max.k The maximum K-Slack window threshold ('K' parameter). 9,223,372,036,854,775,807 (The maximum Long value) LONG Yes No
discard.late.arrival If set to true the processor would discarded the out-of-order events arriving later than the K-Slack window, and in otherwise it allows the late arrivals to proceed. false BOOL Yes No

Examples EXAMPLE 1

define stream StockStream (eventTime long, symbol string, volume long);

@info(name = 'query1')
from StockStream#reorder:kslack(eventTime, 5000)
select eventTime, symbol, volume
insert into OutputStream;

The query reorders events based on the 'eventTime' attribute value, and it forcefully flushes all the events who have arrived older than the given 'timeout' value (5000 milliseconds) every second.