You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@druid.apache.org by Anastasia Braginsky <an...@oath.com.INVALID> on 2018/07/18 14:04:21 UTC

Implementing "no-RollUp" (aka PlainFactsHolder) in Oak Incremental Index

Hi Again,
Just to summarize once again the way we are implementing the "no-RollUp" (aka PlainFactsHolder) in Oak Incremental Index. If someone is familiar with this part of incremental index, please see if we are wrong in some assumptions. As a reminder, in Oak Incremental Index we are not using Facts Holder at all. The Incremental Index Row (aka Time&Dims) is mapped directly to the Row (Aggregators). However, we want to keep functionality of "RollUp" (aggregate the metrics of the same IncrementalIndexRow up to some time granularity) and "Plain" (no aggregation, each IncrementalIndexRow and its Row are held ordered by their timestamps).

Bottom line, PlainFactsHolder gives you the mapping from timestamp to IncrementalIndexRow+Row disregarding the order among the same timestamp. This is what we wanted to do, just without mapping timestamp to queues as it is done via PlainFactsHolder. We plan to have the same map just giving it a comparator that will order the IncrementalIndexRows according to their timestamps and disregarding the dimensions. The iterators will start from the first timestamp-to-start (with any dimensions) and end with the last timestamp-to-end (with any dimensions). This looks too us as a simplest way that can be also implemented in original incremental index. Any ideas why  PlainFactsHolder was implemented with those queues?

If I am not clear enough I would be happy to know and to explain myself better.Looking forward to hear your opinion!

Thanks,Anastasia