Design range search over petabytes of large vehicle records with one-year retention, selective indexes, bounded-memory execution, and stable result delivery.
Design an internal search tool over petabytes of vehicle data retained for one year. Users issue range queries over selected data attributes and can limit the number of rows returned. Individual rows are large, and the system cannot load the full dataset or all matching rows into memory.
Focus on storage, indexing, query execution, and result delivery. Data ingestion is outside this task. Clarify the range dimensions, result order, and maximum-row handling needed by your design.
### What a Strong Answer Covers
- Storage layouts and indexes that reduce scanning for the intended range predicates.
- Query execution and result delivery with bounded memory, including when a single row is very large.
- Stable limits or pagination and the interaction between query views and one-year retention.
- The difference between limiting returned rows and limiting the work needed to find them.
### Follow-up Questions
- How would you return one matching row if its payload is larger than a query worker's memory allowance?
- What happens if data expires while a user is paging through a result?
Overview: Design range search over petabytes of large vehicle records with one-year retention, selective indexes, bounded-memory execution, and stable result delivery.
Design an internal search tool over petabytes of vehicle data retained for one year. Users issue range queries over selected data attributes and can limit the number of rows returned. Individual rows are large, and the system cannot load the full dataset or all matching rows into memory.
Focus on storage, indexing, query execution, and result delivery. Data ingestion is outside this task. Clarify the range dimensions, result order, and maximum-row handling needed by your design.
What a Strong Answer Covers Guidance
Storage layouts and indexes that reduce scanning for the intended range predicates.
Query execution and result delivery with bounded memory, including when a single row is very large.
Stable limits or pagination and the interaction between query views and one-year retention.
The difference between limiting returned rows and limiting the work needed to find them.
Follow-up Questions Guidance
How would you return one matching row if its payload is larger than a query worker's memory allowance?
What happens if data expires while a user is paging through a result?