Lucene深入学习(13)Lucene的索引近实时复制
Lucene 6.0 引入了一个NRT segment replication,使得复制索引数据到另一台服务器更可靠,它利用的是更快速更便宜的本地网络技术。与目前流行的解决方案Elasticsearch/Solr等不同,它的索引性能有巨大进步。
Lucene有一个独特的write-once(一次性写入) segment结构:最近索引的文档被写入一个新的segment,一旦写入,这些segment文件将不再改变。这样,在使用了太多的内存来保存最近索引的文档时,或者当需要Lucene刷新搜索器时,就可以搜索所有最近被索引的文档。
由于小的segment会合并成大的segment,活动的索引可能产生一个对数型的阶梯结构,这会使lucene产生一些高级特性。例如:
- 高效的ACID事物
- 实时搜索
- 索引热备
与ZFS文件系统一样,它保留整个文件系统的快照,对于一个文件块采用write-once设计,当你要编辑文件时,ZFS分配新的地址空间并把你添加的内容合并到原文件块,原来的文件块保持不变。
Lucene并不提供事物日志,你可以认为这种NRT的主从复制机制就好像一个单机版的IndexWriter
,这就意味着你需要为最后一次提交后的意外情形做准备,比如整个集群挂掉再重启,或者在实时刷新的时候,主节点宕机。
在文件系统级别,就不存在主从节点的差异,在停掉主节点以后,从节点可以充当主节点继续执行操作。
还没有评论,来说两句吧...