关于搜索引擎索引文件的一些介绍
来源:互联网 发布:电脑软件培训学校 编辑:程序博客网 时间:2024/05/16 14:47
在搜索引擎的技术中,索引是一项很复杂的技术,索引文件具有以下特点:
(1)文件异常大,一般都是TB级别的文件。
(2)文件只读不写,索引仅仅用来查询,只有只读操作。
(3)索引文件的更换并不频繁。
(4)文件需要快速读取
首先我们希望索引文件具有以下性质
(1)索引文件在磁盘上尽可能连续存放
索引文件随机读的部分基本都在内存中,倒排表在磁盘中,倒排表均为顺序存放,因此索引文件可以看做是顺序读的情况。
一个大文件即便是顺序地访问,但由于文件系统在分配是分配在不同的磁盘块中,也会导致看上去顺序的访问,其实是随机访问,磁盘的寻道时间不可避免,磁盘读取的优化,例如缓存,预取等都无法享受到。关于预取可以参考下面的推荐阅读。
ext2文件系统有限的支持了continuous block的功能,能够尽可能的将文件分配在一个group中,但是对于索引文件这个大家伙来说,价值有限。
因此,索引文件可以考虑存放在裸设备上,据了解oracle在使用裸设备作为存储介质,性能提升50%。相关内容参考推荐阅读。
(2)索引文件的制作代价可控,出错可弥补
过大的索引文件,访问效率不高,且重建代价高,如果数据异常重做代价高。
因此索引分层,索引分段的制作是非常必要的。
(3)索引文件能够支持快速读取(随机读,顺序读)
通常采用mmap的方式进行读取。
文件碎片(空洞文件)的介绍:http://en.wikipedia.org/wiki/File_system_fragmentation
ftruncate函数的说明:http://opengroup.org/onlinepubs/007908799/xsh/ftruncate.html
Sparse file(稀疏文件,和空洞文件时一回事):http://en.wikipedia.org/wiki/Sparse%5Ffile
文件预取:http://linux.chinaunix.net/techdoc/system/2008/09/13/1032255.shtml
ext2文件系统的设计原理:http://frankdrews.com/public_filetree/cs458_558_SQ03/studentpapers/patelhimanshu.pdf
http://e2fsprogs.sourceforge.net/extensions-ext23/
oracle使用裸设备的性能提升50%:http://www.remote-dba.net/t_oracle_9i_administration_26_disk_raw_devices.htm
C++读取mmap提速测试:http://www.byvoid.com/blog/fast-readfile/
AIO(异步IO)相关http://www.ibm.com/developerworks/cn/linux/l-async/
文件大规模写入调优:http://www.westnet.com/~gsmith/content/linux-pdflush.htm
- 关于搜索引擎索引文件的一些介绍
- 一些关于搜索引擎的课题
- 关于搜索引擎的倒排索引技术
- 关于搜索引擎索引表
- 关于搜索引擎索引表
- 关于搜索引擎索引表
- 关于搜索引擎索引表
- 关于搜索引擎索引表
- 关于索引一些用法介绍(db2)
- 关于索引一些用法介绍(db2)
- 关于搜索引擎的一些使用技巧
- 关于搜索引擎使用方法的一些小窍门
- 关于索引的一些认识
- 北大天网搜索引擎TSE分析及完全注释[5]倒排索引的建立及文件介绍
- 自顶向下学搜索引擎——北大天网搜索引擎TSE分析及完全注释[5]倒排索引的建立及文件介绍
- 关于搜索引擎中的索引技术
- 关于龙卷风搜索引擎创建索引失败的解决方案
- lucene搜索引擎(文件索引、数据库索引)
- 字节对齐
- PHP编程4个安全要点小结
- Linux 下 java Swing 中文字体变成方框的问题解决
- 新环境
- 淡淡的有点忧伤
- 关于搜索引擎索引文件的一些介绍
- Oracle日期運算函數
- 用python把图片像素点数据转换成文本
- symbian视频编程资料(Update 20100709)
- xvid的学习[转]
- KEIL C51之绝对地址定位
- Linux核心应用命令速查
- 实现Java验证码
- ffmpeg使用x264编码的配置+ ffmpeg与 x264编码器参数完整对照表