Skip to content

Temporal sampling: support a fixed per-seed cutoff across hops #5593

Description

@autumnust

Problem

Temporal sampling currently propagates the sampled edge timestamp to the next hop. Some node-time workloads instead require every hop to use the original per-seed cutoff, without imposing temporal ordering between consecutive edges.

For example:

seed cutoff = 10
hop 1: root -> A at time 3
hop 2: A -> B at time 8

Both edges should be eligible because both timestamps are at or before the original cutoff. With monotonically decreasing traversal, the first edge changes the next-hop bound to 3, so the edge at time 8 is excluded.

#5573 proposes per-seed time windows with an end time that remains fixed during traversal. That may overlap with this requirement, but it is unclear whether the changing start time would still enforce cross-hop ordering.

Target behavior

Provide a temporal sampling policy where:

  • each seed has its own cutoff;
  • the same original cutoff is applied at every hop;
  • sampled edge timestamps do not replace that cutoff;
  • separate seed labels retain separate cutoffs, including when they reference the same source vertex.

For the example above, a two-hop call should return both edges at times 3 and 8.

This policy should be available for homogeneous and heterogeneous temporal neighbor sampling. It is independent of the neighbor selection strategy: eligible edges may subsequently be sampled uniformly or selected using latest-k.

Metadata

Metadata

Assignees

Labels

No labels
No labels

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions