FB onsite设计题

原帖地址:mitbbs

System design。
Given a location (a coordinate), return top 100 nearest places.
Follow up, given a location, return top 100 events within x months in
nearest places。follow up 其实就是多加一个时间维度。

提出的方案就是对平面坐标系做grid,每个grid里的locations放到一台机器上。搜索
的时候就是针对input的location找到候选的grids(以某个半径画个圆),再从中通过
map-reduce找到前100个location。

可以根据grid里location的密度或者访问量决定是不是要再做partition以提高
scalability。

follow up的话就是多加一个dimension代表时间。