问个Linkedin设计题:判断任意两个用户间的距离,怎样通过好友

原帖地址:mitts

板上看到的,看下面的讨论没有很好的解答。。。求大牛指点。

对于linkedin上任意两个用户,精确判断他们上1st connection(直接互为好友),还
是2nd,3rd(隔来一个朋友,两个朋友),等等。如果是直接好友,显示他们的共同好
友;否则显示他们怎样通过各自的朋友连起来(通过朋友1再通过朋友2)。请设计数据
结构和算法。怎样把数据存储map到多台机器上。

我自己使用linkedin的经验一般也就显示到最多3rd,觉得还是kv store的思路,可以
在机器上按user id范围分布存储该用户的好友关系信息到不同机器上,运行时直接计
算两个user有没有直连,或者有共同好友,或者共同好友有共同好友。不知道怎样是不
是推荐的做法?

看到有个概念叫graph db,存储关系信息的,不知道这里是不是用得上。