w.r.t `SessionKeySchema` MAX_VALUE is correct. This is because we use the end time (rather than the start time) of the session to define which segment the session is in. So it could be in any segment starting from `from` time.
On Sun, 19 Nov 2017 at 20:27 Ted Yu <[email protected]> wrote: > For `getMinSegmentGreaterThanEqualToTimestamp` , the email was indeed > meant for #4162. > > Pardon. > > On Sun, Nov 19, 2017 at 11:55 AM, Guozhang Wang <[email protected]> > wrote: > >> For `SessionKeySchema#segmentsToSearch`: for session store, multiple >> sessions may merge together when receiving late arrived records. When I >> looked at the code, it seems that we have merged the sessions during >> aggregations to effectively move the sessions between segments. So I'm not >> 100% certain why we still need to enforce MAX_VALUE. @Damian? >> >> For `getMinSegmentGreaterThanEqualToTimestamp` and ` >> getMaxSegmentLessThanEqualToTimestamp`: I think you meant to leave it as a >> comment on https://github.com/apache/kafka/pull/4162? This is only added >> in >> that PR. >> >> >> Guozhang >> >> >> On Sat, Nov 18, 2017 at 11:16 AM, Ted Yu <[email protected]> wrote: >> > >> > This code: >> > >> > final Segment minSegment = segments >> > .getMinSegmentGreaterThanEqualToTimestamp(timeFrom); >> > >> > final Segment maxSegment = segments >> > .getMaxSegmentLessThanEqualToTimestamp(timeTo); >> > >> > Can be replaced with: >> > >> > final List<Segment> searchSpace = keySchema.segmentsToSearch( >> > segments, from, to); >> > >> > The minSegment would be first in List and maxSegment would be last in >> List. >> > >> > On Sat, Nov 18, 2017 at 11:09 AM, Ted Yu <[email protected]> wrote: >> > >> > > Hi, >> > > I was reading code for SessionKeySchema#segmentsToSearch() where: >> > > >> > > public List<Segment> segmentsToSearch(final Segments segments, >> final >> > > long from, final long to) { >> > > return segments.segments(from, Long.MAX_VALUE); >> > > >> > > I wonder why the parameter to is ignored. >> > > WindowKeySchema#segmentsToSearch() passes parameter to >> > > to segments.segments(). >> > > >> > > Cheers >> > > >> >> >> >> >> -- >> -- Guozhang >> > >
