深入浅出 jackrabbit 九 索引合并(下)
2009-09-17 00:00:00 来源:WEB开发网核心提示:在上文中,ahuaxuan讲到了索引创建的主体流程,深入浅出 jackrabbit 九 索引合并(下),但是索引合并其实还有一个较为重要的细节ahuaxuan没有详细阐述,本文中,哪些是有效的索引目录,这样Repository启动的时候就可以拿到正确的 IndexReader,ahuaxuan将会详细阐述这个问题本文分
在上文中,ahuaxuan讲到了索引创建的主体流程,但是索引合并其实还有一个较为重要的细节ahuaxuan没有详细阐述。本文中,ahuaxuan将会详细阐述这个问题
本文分成两部分内容
1 考虑应用拓机时的数据正确性问题。
2 jackrabbit是如何解决这些问题的。
而这个细节将会直接影响我们对query module的改造,这个细节虽然不难,但是却很重要,是jackrabbit中一个比较重要的设计。下面让我们一起来看看这个是什么样的细节。
回顾上文,我们知道一个目录合并的主要逻辑是10个以上同层次(一共10个层次,还记得否)的小目录会合并成上一个层次的目录,我们再来看看这幅图:
图片看不清楚?请点击这里查看原图(大图)。
那么现在的问题是
1. 当低层次的多个小目录合并完成一个高层次的目录之后,我们需要把这些目录删除。
2. 并且要通知程序产生了一个新的目录。
但是这个时候程序突然挂掉,怎么办呢。那么就必须有一个恢复机制。
需要被删除或者需要增加的目录的信息如果没有持久化的机制,那么程序再启动的时候就无法分辨哪些索引数据是要删除的,哪些是新增的。咋办呢,咋整呢?我们得有一个持久化的机制来证明哪些索引目录是需要被删除,哪些是有效的索引目录,这样Repository启动的时候就可以拿到正确的 IndexReader。
Ahuaxuan在前面的文章分析过,Action的接口以及其实现类:
Tags:深入浅出 jackrabbit 索引
编辑录入:爽爽 [复制链接] [打 印][]
更多精彩
赞助商链接