PATTERN Cited by 1 source
Parallel multi-slice query¶
Fetching multiple graph data slices (adjacency lists, property sets) in parallel rather than sequentially, specifically to reduce latency for high-fanout graph traversals where a single hop expands to hundreds or thousands of edges.
Context¶
In JanusGraph's default getMultiSlices implementation, fetches for
multiple slices may be serialized or insufficiently parallelized.
For a 4–8 hop identity graph query where each hop fans out to many
neighbors, serial slice fetching compounds latency multiplicatively.
Pattern shape¶
- Identify multi-slice fetch operations in the graph engine.
- Execute fetches concurrently (thread pool, async I/O, or batched backend requests).
- Aggregate results after all parallel fetches complete.
- Bound parallelism to avoid overwhelming the storage backend.
Seen in¶
- sources/2026-05-19-airbnb-scaling-identity-graph-unified-knowledge-graph-infrastructure — Airbnb "improved the getMultiSlices interface to fetch data in parallel, significantly reducing latency for high-fanout queries." This was one of three key optimizations to the core JanusGraph engine.
Related¶
- systems/janusgraph — the engine optimized
- concepts/graph-traversal-fanout — the problem this pattern addresses
- concepts/tail-latency-at-scale — parallel fetching directly reduces tail latency