Hi,
I understood how window stores are implemented using rocksdb.
When creating an instance of RocksDBWindowStore we pass two additional
arguments:
retainDuplicates
windowSize

I have not clearly understood the purpose of these two.
Like say in my application I just create one windowed store of a given size
say 10 minutes and retention of 30 minutes.

Does this mean internally it will create a one rocksdb segment for every
record within 10 minutes boundary and retain it for 30 minutes?
If a new record arrives beyond that 10 minutes a new segment gets created?

How does retainDuplicates comes into play here?

Thanks
Sachin



On Mon, Mar 2, 2020 at 12:49 AM Matthias J. Sax <mj...@apache.org> wrote:

> -----BEGIN PGP SIGNED MESSAGE-----
> Hash: SHA512
>
> If you want to put a record into multiple window, you can do a `put()`
> for each window.
>
> The DSL uses the store in the exact same manner for hopping window
> (compare the code I shared in the last reply). Even if windows are
> overlapping, the grouping-key+window-start-timestamp is a unique
> primary key for each window.
>
> - -Matthias
>
> On 2/27/20 9:26 AM, Sachin Mittal wrote:
> > Hi, Yes I get that when I am using the apis provided by kstream I
> > can basically use both: -  Tumbling time window (non-overlapping,
> > gap-less windows) -  Hopping time window (Time-based Fixed-size,
> > overlapping windows)
> >
> > I wanted to know if I am using state store directly when created
> > using a RocksDbWindowBytesStoreSupplier. In that case the
> > RocksDBWindowStore created will always be of type Tumbling. ie any
> > record put into that store will be part of one window only.
> >
> > Thanks Sachin
> >
> >
> >
> >
> >
> >
> > On Thu, Feb 27, 2020 at 1:09 PM Matthias J. Sax <mj...@apache.org>
> > wrote:
> >
> >> What you call "sliding window" is called "hopping window" in
> >> Kafka Streams.
> >>
> >> And yes, you can use a windowed-store for this case: In fact, a
> >> non-overlapping tumbling window is just a special case of a
> >> hopping window with advance == window-size.
> >>
> >> In Kafka Streams we have a single implementation for hopping
> >> windows (that we use for tumbling windows, too):
> >>
> >> https://github.com/apache/kafka/blob/trunk/streams/src/main/java/org/
> apache/kafka/streams/kstream/internals/KStreamWindowAggregate.java
> <https://github.com/apache/kafka/blob/trunk/streams/src/main/java/org/apache/kafka/streams/kstream/internals/KStreamWindowAggregate.java>
> >>
> >>
> >>
> >>
> - -Matthias
> >>
> >> On 2/26/20 9:47 PM, Sachin Mittal wrote:
> >>> Hi, So far how I have understood is that when we create a
> >>> rocksdb window
> >> store;
> >>> we specify a window size and retention period.
> >>>
> >>> So windows are created from epoch time based on size, say size
> >>> if 100
> >> then
> >>> windows are: [0, 100), [100, 200), [200, 300) ...
> >>>
> >>> Windows are retained based on retention period and after which
> >>> it is dropped.
> >>>
> >>> Also a window is divided into segments which is implemented
> >>> using a
> >> treemap.
> >>>
> >>> Please confirm if my understanding is correct.
> >>>
> >>> Also looks from all this is that windows are always hopping.
> >>>
> >>> Is there a case of sliding windows that can be created? If yes
> >>> how? Example of sliding window would be: [0, 100), [75, 175),
> >>> [150, 250) ...
> >>>
> >>> Thanks Sachin
> >>>
> >>
> >>
> >
> -----BEGIN PGP SIGNATURE-----
>
> iQIzBAEBCgAdFiEEI8mthP+5zxXZZdDSO4miYXKq/OgFAl5cCqcACgkQO4miYXKq
> /OiDDhAAp6tUdk97THqCODZ2bUPl2TpRcnyeL9uvGoThlQoNNczf0c4E33tRqGlB
> 9mNSXCsO5xfUEX2SS77pXSXIcTDeEDlV0u+rKG6dgul9ENo9pc7G431HPTf868LS
> UGUXC5TaoslpUmyc/Ig9eY9FNLWBUeB6rGQacTEPRReL3xufjiD3Af/PwXwZEAty
> yGfZ143MLl7a694m+y2lHkbdRsoYyQCMXOC09v34cm47EHxtAaAyXkC9zizKAS/T
> D4JQgI4zA1Xa8JDoDSHCxl/HWQWJspIpd0xoAPqBnAQ0pz4kb57bQsoZQq79uJOo
> UUvEV9wFALIbzdOhb247LsfqNe9oBtaqVkYloZI7T7wADG/Po8QhLEO6mUqN3hcb
> WgZQ+JhaWImbYpZT1kYq/xUnLP9fKhRiNsHNEsXWl7WZ68pYCFuKncUV9dxDtvd+
> KUiTzpAciP7cGi6wM4SyvCbzagYLqbLZpr6vE6s5uRexvAb/LZnGnUUYyozxuDKp
> YtG3ceUtJs62JrYB8/UF3ohYIODiXxW1TlkGRoKf0ydDZN2FTER8v3rrQov9PfFn
> J/0HBNAa+UU7DZJcx4YaxiQMmLPJgxLk2iQ0z60Q43xXwjI9lHjQgqbKn0XaVWUD
> lxnpXF9teT7UpxCs4p4pVqId5R7W29ryu6jjCrR87fgN8cFRF+s=
> =IkD6
> -----END PGP SIGNATURE-----
>

Reply via email to