Foreseer:一种新型的支持关键字搜索的P2P系统架构
1 引言
如今,对等网络(P2P)系统变得越来越流行和复杂,为数百万用户提供服务。当前的非结构化P2P系统设计未能充分利用P2P系统工作负载中丰富的局部性属性,可能导致搜索效率低下或系统可扩展性不佳。
现有的P2P系统架构可分为集中式和分布式。集中式系统(如Napster)需要中央索引服务器,限制了系统的可扩展性且存在单点故障问题。而像Gnutella这样的分布式系统,其搜索方案可分为盲目搜索和知情搜索。盲目搜索基于消息泛洪,系统可扩展性差;一些改进方案(如随机游走、Directed BFS、GIA和Interest - based shortcuts)虽能减少泛洪消息,但仍存在盲目性,无法避免重复搜索和向搭便车节点发送无意义消息。知情搜索通过维护分布式索引来提高搜索性能,但索引维护开销大,部分抵消了索引带来的好处。
当前的P2P系统具有地理局部性和时间局部性。地理局部性指节点附近的节点更有可能为其提供服务;时间局部性指过去成功响应过请求的节点未来更有可能继续提供服务。现有的搜索方案未能充分利用这两种局部性,导致搜索性能和系统可扩展性不佳。
为解决这些问题,我们设计了一种名为Foreseer的新型非结构化P2P系统架构,用于关键字搜索。它具有以下特点:
- 构建基于地理局部性的邻居覆盖网络和基于时间局部性的朋友覆盖网络。
- 使用布隆过滤器(Bloom filters)来紧凑地表示每个节点共享的内容,并分发内容过滤器。
- 采用基于局部性的搜索方案,高效回答查询,减少冗余泛洪消息,跳过大多数搭便车节点。
超级会员免费看
订阅专栏 解锁全文
1248

被折叠的 条评论
为什么被折叠?



