深圳SEO公司
欢迎您光临浏览!

搜索引擎的网页库

很显然,爬虫抓取的网页必须及时保存在硬盘上,因此网页 库的首要挑战来自于能够快速存储大规模网页;其次这些网页必 须能够被其他模块快速地读取,因此读写问题是围绕网页库的主 要难点。
1.可伸缩性(Scalability ) 网页库的存储必须具有可伸缩性,可以将大规模网页平滑地分布在一组计林机的硬盘中。
2.双访问模式(Dual access modes) 网页库必须能够有效地支持两种不同的访问模式,即随机访问模式和顺序访问模式。使用随机 访问模式,任愈给出一个网页的标识即可读取相应的网页;使用顺序访问模式,顺序读取全部 网页或者一部分网页。随机访问模式主要为搜索系统的查询系统中网页级存部分提供随机的读 取需要(在第六章中还会提到);顺序访问模式主要用在索引系统中顺序读取网页按序素引的过程 中。
3.大规模更新(Large bulk updates) 由于万维网变化瞬息万变,所以网页库必须能够在网页删除后删除老版本的网页。如此处理可 能会留下存储空洞。更新可以理解为删除后添加。而添加使用顺序添加到网页库的方法,这样 不得不采用一些磁盘空间紧缩( space compaction)技术回收那些存储空洞。此外更新和访问还 要保证互斥。避免同步出现的错误。
为了照颐这些特性,网页的存储方式大致分为以下3种类型。
1.日志结构(Log-structured )
2.基于哈希的结构(Hash-based)
3.哈希日志(Hashed-log )
日志结构将磁盘看做一个连续存储的介质(可以想像为磁带机)。这种存储方式只能顺序读及顺 序写。因此存储介质对网页增加的操作非常有利。然而对于随机访问,则必须通过B- +树的索 引方式,因此每次访问需要执行两次读澡作,分别读取索引和目标网页。此外还需要维护索引 的代价。因此日志结构不能理想地支持随机访问的需要。
基于哈希的结构将磁盘看做一个哈希桶(Hash bucket)的集合,每个集台都足以存放在内存中。 由于不需要构建额外索引。因此对于随机访问非常有利。然而对于顺序读写将十分不利。因 为由于哈希函致的不确定性,对于一次网页增加。往往读入内存一个哈希桶。然后写入新增的 部分。再写入磁盘。对于那些哈希桶中不变的数据。这样的一次谈写操作无疑是浪费的,不断 新增的网页被哈希映射到同一个桶的概率极低。而且由于哈希函致的不确定性。这种须繁读入 哈希桶、更新并写人的操作被不断重复因此对于网页新增是极其不利的。
哈希日志的结构是将哈希和日志的优势相结合。哈希作为索引找到文件块后再顺序写入,如日 3-17所示。

图3-17,哈希日志的同瓦存储结构

图3-17,哈希日志的同瓦存储结构

对于新增的网页,通过URL计算出该网页的签名。进而通过模运算之后,将一个网页映射到哈希 表的一个单元上。每个哈希表的单元对应于一个日志文件的位置。这个新增网页通过哈希函数 的计算映射到Hash(1)上。继而顺序写入Log1这个文件中。如果要随机读取某个URL的已存储 的网页,或者仍然通过类似的哈希函致计算映射到具体的日志文件上。然后通过读取该日志文 件上的B-树索引。进而读取相应的网负文件。因此可以取得与日志文件等价,甚至稍好的随机 访问效果(随机访问的目标文件大大减小)。值得一提的是。哈希日志的方式可以支持批处理写 入。

从而大大改进了纯哈希结构。在每个日志文件中增加一个写入队列,只有积累一定数量的文件 后,才批量写入,如日3-18所示为增加排队机别的批量写入方法。

图3-18哈希日志批量写人记录

图3-18哈希日志批量写人记录

如上图所示,通过一个哈希表可以将那些新增网页插入的不确定性(与哈希结构相比)变为确 定性插入。因此增加一个插入队列可以批处理方式插入到目标日志文件中。由于通过哈希函数 的分解,所以在基于哈希结构的日志中每个日志的大小远小于日志结构中的日志。同时远大于 哈希结构中的哈希桶。另外还必须保证每个日志也能足够存放在内存中,因此确定哈希日志中 哈希表的大小在很大程度上还需要考虑实际物理内存大小和需要存储的网页规模。

文献[Arvind Arasu et al。 2001]中给出了对于这3种网页存储方式的一个定性评价,如表3-1 所示。

网页存储方式的定性评价

只要不存在大量的随机访问机会,日志结构被认为是最佳的网页存储方式。对于可能存在大量 的随机访问,以及大量新增网页的需要,哈希日志被认为是较为理想的网页存储方式。此外哈 希日志能够有效地支持分布式的网页存储。在更大规模的环境中采用多机存储网页的情况下, 它能够有效地将网页存储分布到每个存储结点上,增加网页存储的可靠性和稳定性。即便在某 个存储结点上出现异常,对整体的搜索效果而言也不会产生较大的影响。 综上所述,网页库是搜素引擎中重要的一环,网页库具有不同的访问需求(顺序访问及随机访 问)。具体问题具体分析时需要结合这些需求选择相应的存储方式。在实践中,日志结构和哈 希日志是较为常见的选择。

本文出自深圳SEO公司,未经允许不得转载:深圳SEO公司-深圳SEO服务公司 » 搜索引擎的网页库
分享到: 更多 (0)

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址