Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
31 commits
Select commit Hold shift + click to select a range
9cefd2e
Speed up searching of partitions within the in memory data source state
pirvtech Sep 26, 2025
143f095
Narrowing search space for an interval when an exact match is not found
pirvtech Oct 6, 2025
d38750e
Implemented an optimized data structure to find intervals encompassin…
pirvtech Oct 8, 2025
ecb9f82
Added rebalancing
pirvtech Oct 9, 2025
6789646
Added imbalance threshold to control when to trigger rebalancing
pirvtech Oct 10, 2025
b55c9e2
Added rebalance and data content checks
pirvtech Oct 11, 2025
54b0a4e
Updated doc
pirvtech Oct 13, 2025
982b238
Cleaned up some comments and names
pirvtech Oct 13, 2025
99d6628
Overwriting value if there is an exact interval match with add
pirvtech Oct 13, 2025
ac4b8e0
Addressing review comments
pirvtech Oct 14, 2025
42cafff
Added feature flag to control use of interval tree for matching segments
pirvtech Oct 14, 2025
de9138b
Using a single interval field for storing the min to max range for a …
pirvtech Oct 20, 2025
ee4dcab
Generified the match function, so it can be used with different types…
pirvtech Oct 21, 2025
236c0e0
Addressed review comments
pirvtech Oct 22, 2025
e63e660
Removed commented code
pirvtech Oct 24, 2025
0badf8c
Added addition documentation
pirvtech Oct 24, 2025
e076a74
Updated doc
pirvtech Oct 24, 2025
af17043
Removed commented code
pirvtech Oct 24, 2025
ef483c4
Cast IntervalTree as a NavigableMap so it can become a drop in replac…
pramodin Nov 7, 2025
b3c6791
Using both start and end dates of the interval during comparision whe…
pirvtech Nov 8, 2025
01c477f
Made the index configurable via a timeline configuration parameter
pirvtech Apr 22, 2026
1d3ddc5
Parameterized VersionedIntervalTimeline tests to run against fast int…
pirvtech May 6, 2026
2113d18
Using comparators for exact match checks to take Chronology in account
pirvtech May 6, 2026
5c83921
Added ability to specify a separate condition for the range check
pirvtech May 7, 2026
053423f
Added methods for finding matches with full traversal and documented …
pirvtech May 9, 2026
2a6ae5e
Merge remote-tracking branch 'apache/master' into segment-interval-tree
pirvtech May 11, 2026
446962b
Passing locale to fix forbidden api validation error
pirvtech May 11, 2026
51a1728
Removed comments and unused injection
pirvtech Jul 1, 2026
b07a191
Merge remote-tracking branch 'apache/master' into segment-interval-tree
pirvtech Jul 1, 2026
1f9d4c4
Optimizations
pirvtech Jul 1, 2026
6edc125
Documentation and optimizations
pirvtech Jul 1, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -119,6 +119,34 @@ public int compare(Interval lhs, Interval rhs)
}
};

private static final Comparator<Interval> INTERVAL_BY_START = new Comparator<>()
Comment thread
pirvtech marked this conversation as resolved.
{
private final DateTimeComparator dateTimeComp = DateTimeComparator.getInstance();

@Override
public int compare(Interval lhs, Interval rhs)
{
if (lhs.getChronology().equals(rhs.getChronology())) {
return Long.compare(lhs.getStartMillis(), rhs.getStartMillis());
}
return dateTimeComp.compare(lhs.getStart(), rhs.getStart());
}
};

private static final Comparator<Interval> INTERVAL_BY_END = new Comparator<>()
{
private final DateTimeComparator dateTimeComp = DateTimeComparator.getInstance();

@Override
public int compare(Interval lhs, Interval rhs)
{
if (lhs.getChronology().equals(rhs.getChronology())) {
return Long.compare(lhs.getEndMillis(), rhs.getEndMillis());
}
return dateTimeComp.compare(lhs.getEnd(), rhs.getEnd());
}
};

@Deprecated
public static Comparator<Interval> intervals()
{
Expand All @@ -135,4 +163,15 @@ public static Comparator<Interval> intervalsByEndThenStart()
return INTERVAL_BY_END_THEN_START;
}

public static Comparator<Interval> intervalsByStart()
{
return INTERVAL_BY_START;
}

public static Comparator<Interval> intervalsByEnd()
{
return INTERVAL_BY_END;
}


}
Loading