Bird
Raised Fist0
HLDsystem_design~3 mins

Why Cross-shard queries in HLD? - Purpose & Use Cases

Choose your learning style10 modes available
The Big Idea

What if you could get answers from many places at once without the headache of searching each one separately?

The Scenario

Imagine you have a huge library where books are stored in different rooms based on their genre. Now, you want to find all books written by a certain author, but their works are scattered across many rooms. You have to walk to each room, search manually, and then combine your findings.

The Problem

This manual search is slow and tiring. You might forget some rooms, mix up results, or take too long to get the full list. It's hard to keep track and easy to make mistakes when data is spread out like this.

The Solution

Cross-shard queries act like a smart librarian who can quickly ask all rooms at once and gather the results for you. This way, you get the complete answer fast and without errors, even though the books are stored separately.

Before vs After
✗ Before
results = []
for shard in shards:
    results += query(shard, condition)
return combine(results)
✓ After
return cross_shard_query(shards, condition)
What It Enables

It enables fast, reliable searches across distributed data, making large systems feel like one seamless source.

Real Life Example

In a global online store, customer orders are stored in different databases by region. Cross-shard queries let managers see all orders worldwide instantly, without checking each region separately.

Key Takeaways

Manual searching across shards is slow and error-prone.

Cross-shard queries gather data from all shards efficiently.

This makes distributed systems easier to use and scale.

Practice

(1/5)
1. What is the main purpose of cross-shard queries in a distributed database system?
easy
A. To encrypt data within a shard
B. To backup data from one shard to another
C. To split a large shard into smaller shards
D. To retrieve data from multiple shards to answer a single complex request

Solution

  1. Step 1: Understand what shards are

    Shards are parts of a database split to store data separately for scalability.
  2. Step 2: Identify the role of cross-shard queries

    Cross-shard queries combine data from multiple shards to answer complex requests that need data from more than one shard.
  3. Final Answer:

    To retrieve data from multiple shards to answer a single complex request -> Option D
  4. Quick Check:

    Cross-shard queries = combine data from shards [OK]
Hint: Cross-shard queries combine data from many shards [OK]
Common Mistakes:
  • Confusing cross-shard queries with data backup
  • Thinking cross-shard queries split shards
  • Assuming cross-shard queries encrypt data
2. Which component is responsible for splitting and merging queries in cross-shard query processing?
easy
A. Coordinator
B. Shard manager
C. Cache server
D. Load balancer

Solution

  1. Step 1: Identify query processing roles

    The coordinator handles query distribution and result merging across shards.
  2. Step 2: Match roles to components

    Shard manager manages shards but does not split/merge queries; cache server stores data temporarily; load balancer distributes traffic but not queries.
  3. Final Answer:

    Coordinator -> Option A
  4. Quick Check:

    Coordinator splits and merges queries [OK]
Hint: Coordinator splits and merges cross-shard queries [OK]
Common Mistakes:
  • Confusing shard manager with coordinator
  • Thinking cache server merges queries
  • Assuming load balancer handles query splitting
3. Consider a system with 3 shards. A cross-shard query is sent to all shards in parallel. If each shard takes 100ms, 120ms, and 80ms respectively to respond, what is the total time to get the combined result?
medium
A. 300ms
B. 80ms
C. 120ms
D. 100ms

Solution

  1. Step 1: Understand parallel query execution

    Queries run in parallel, so total time is the longest shard response time.
  2. Step 2: Identify the longest response time

    Shard times are 100ms, 120ms, and 80ms. The longest is 120ms.
  3. Final Answer:

    120ms -> Option C
  4. Quick Check:

    Parallel time = max shard time = 120ms [OK]
Hint: Total time = longest shard response in parallel [OK]
Common Mistakes:
  • Adding all shard times instead of taking max
  • Choosing shortest shard time
  • Confusing sequential with parallel execution
4. A cross-shard query coordinator is returning incomplete results. Which of the following is the most likely cause?
medium
A. Coordinator failed to merge all shard responses
B. Shard keys are not evenly distributed
C. Cache server is overloaded
D. Load balancer is routing traffic incorrectly

Solution

  1. Step 1: Analyze incomplete results cause

    Incomplete results usually mean some shard data was not included in the final output.
  2. Step 2: Identify coordinator role in merging

    The coordinator merges shard responses; failure here causes missing data.
  3. Final Answer:

    Coordinator failed to merge all shard responses -> Option A
  4. Quick Check:

    Incomplete results = merge failure [OK]
Hint: Incomplete results often mean merge failure by coordinator [OK]
Common Mistakes:
  • Blaming shard key distribution for missing data
  • Assuming cache overload causes missing data
  • Thinking load balancer affects query merging
5. You want to reduce latency of cross-shard queries in a large distributed system. Which combination of strategies is best?
hard
A. Run queries sequentially on each shard and use a load balancer to distribute traffic
B. Use a coordinator to parallelize queries and implement caching of frequent results
C. Increase shard size and avoid caching to reduce complexity
D. Remove the coordinator and let clients query shards directly

Solution

  1. Step 1: Identify strategies to reduce latency

    Parallel query execution via coordinator reduces wait time; caching avoids repeated work.
  2. Step 2: Evaluate options

    Use a coordinator to parallelize queries and implement caching of frequent results uses both parallelism and caching, best for latency. Others increase complexity or remove coordination, causing delays.
  3. Final Answer:

    Use a coordinator to parallelize queries and implement caching of frequent results -> Option B
  4. Quick Check:

    Parallel + caching = lower latency [OK]
Hint: Parallel queries plus caching reduce latency best [OK]
Common Mistakes:
  • Thinking bigger shards reduce latency
  • Running queries sequentially increases latency
  • Removing coordinator causes uncoordinated delays
Recommended

Ready to prove it?

Pass the test and this pattern moves unknown strong while earning +1 Grip toward your certificate.

10 questions~5 mineasy hard