Design Considerations of Yelp

Lesson 130 of 25616 min readPremium lesson preview
In this lesson3 sections

Design Considerations of Yelp

Introduction

The architecture leaves two separate problems: finding every place that could satisfy a geographic query, and ranking those candidates. This lesson compares fixed cells with a quadtree, then considers placement, updates, and failure recovery.

Summary of the Lesson

TopicDesign question
Fixed segmentsWhich cells intersect a radius query, and how much candidate data must we read?
Dynamic segmentsHow should dense cells split, and when can the search safely stop?
Storage and placementWhere do spatial indexes and authoritative place records live?
Updates and recoveryHow do new listings become searchable, and how can a failed index be rebuilt?
RankingWhich scoring rule and freshness target define the final results?

Searching

The Maps case study partitioned road data to reduce routing work. A proximity directory can also use geographic partitions, but it searches points within an area rather than shortest paths through roads. We do not need to connect every candidate place through a road graph for a straight-distance radius query.

The rest of this lesson is for Premium members

Premium opens every lesson in this course, along with all questions and solutions on PracHub.