`

横瓜先生深度推测解密百度网页搜索引擎的内部索引结构及分布式架构原理

 
阅读更多

百度的搜索技术横扫中国,在各方面都超过其他搜索引擎。学习研究推测百度的内部索引结构及分布式架构原理,将有助于整个中国的搜索技术的更远发展更快发展。横瓜先生用5年时间从0行代码起步,经历近百次优化并完成横瓜搜索引擎(一个类似LUCENE全新的搜索),写的搜索代码接近百万行,横瓜先生对于搜索引擎技术的各方面都知晓细节,并有不同凡响的开发体会。横瓜先生深层次推测剖析百度网页搜索引擎的内部索引结构及分布式架构原理如下:

1.索引存储介质推测:百度8个关键字AND计算的检索速度在10MS以内,传统硬盘寻道时间高于此级别,再排除网络延迟时间。横瓜先生推测:百度索引已经采用固态闪盘或500G级别内存来实现存储索引文件,传统硬盘已经被百度网页搜索引擎弃用。

2.分布式单元数量以及索引架构推测:百度日IP为8000万,日PV为8亿,可以推算百度的每秒并发IP为1000,每秒承载的PV为10000。横瓜先生推测:百度的执行单元为100个左右,1个执行单元下有100台PC负责100亿网页级别的检索,1个执行单元可以每秒承受100次查询,则100个执行单元可以每秒承载的PV为10000。横瓜先生推测百度网页搜索引擎的仅服务器就在数千台左右。百度在全国各地做CDN优化,将URL导向百度接入层,百度接入层为高速陆由器或高速交换机,负责轮流分发给100个执行单元处理,以保持检索并发的负载均衡。

3.百度索引树算法推测:LUCENE索引结构是以2叉树为基础的B树倒排结构,这决定了索引数据时要维护2叉树为基础的B树倒排结构,例如查找并增量,将耗费一定的时间消耗,其时间复杂度为O(LOGN),而sphinx是以HASH哈希树为基础的倒排结构,其时间复杂度为O(1),所以随着数据的增多,LUCENE索引树的维护将超过sphinx索引树的维护。导致sphinx索引速度是LUCENE索引速度的10倍这么大的差距。百度更新数据都是非常迅速的,当然分布式可以补偿单机的吞吐量。但横瓜先生大胆推测认为:百度索引树算法有80%的可能是以HASH哈希树为基础的倒排结构,20%是以2叉树为基础的B树倒排结构。这点,横瓜先生并无完全把握去推测。

如有不同观点请联系横瓜先生QQ601069289讨论,欢迎共同推测百度搜索技术,将有助于整个中国的搜索技术的更远发展更快发展。

附:类哈希定义:sphinx要考虑存储和查询,sphinx要考虑空间效率和时间效率的平衡,那么sphinx用的哈希,已经是混合算法了.但是计算机课本上的哈希是sphinx的基础.

搜索用的哈希与计算机课本上的哈希,有很大差别,sphinx只能说用的类哈希算法,与计算机课本上的哈希,有很大差别.




分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics