Skip to content

v0.16.3

Latest

Choose a tag to compare

@github-actions github-actions released this 21 Oct 09:19
· 9 commits to master since this release
fa389cb

Highlights

Step aligned windows

Rolling and expanding functions have been updated so that the start of each window is aligned with the smallest unit of time passed by the user within the step.

For example, if the step is "1 month and 1 day", the first window will begin at the start of the most recent day. Explicitly, if the earliest time in the graph is 15/01/25 14:02:23 and you call the rolling function you would get the following increments:

Increments in previous versions:

15/01/25 14:02:2316/01/25 14:02:2317/01/25 14:02:2318/01/25 14:02:23 → …

Increments in v0.16.3:

15/01/25 00:00:0016/01/25 00:00:0017/01/25 00:00:0018/01/25 00:00:00→ …

This change was made to make windows more intuitive. If someone wants a rolling window over "1 year", they typically want it to start at the beginning of the calendar year and end at the end of the year. You can also explicitly set the alignment_unit. For example, you can set g.rolling("1 month", alignment_unit="day") if you want to align to the most recent day.

In addition to this change, if rolling or expanding on the 29th, 30th or 31st in monthly increments, you will return to this day if it is present in the next month (or as close as possible). Previously if your date was decremented you would stay at that date:

Increments in previous versions:

31/01/2528/02/2528/03/2528/04/25 → …

Increments in v0.16.3:

31/01/2528/02/2531/03/2530/04/25 → …

Bug fixes

  • Previously, the timeline_start and timeline_end fallbacks for not explicitly windowed graphs previously looked at the filtered earliest and latest time. This made rolling/expanding inconsistent between different layers. Now when you call rolling or expanding functions on individual layers they will have the same window alignment.
  • Computing the filtered time has improved performance.
  • Significant stress testing added for the server discovered several deadlocks at high concurrency. We rebuilt the locking mechanism in the Graphql server to fix this.
  • Fixed panics in case of simultaneous additions and reads (not all nodes were guaranteed to be initialised in iterators).

What's Changed

New Contributors

Full Changelog: v0.16.2...v0.16.3