WEB开发网
开发学院软件开发Java 深入浅出 jackrabbit 九 索引合并(下) 阅读

深入浅出 jackrabbit 九 索引合并(下)

 2009-09-17 00:00:00 来源:WEB开发网   
核心提示: 也写的很清楚,当删除一个PersistentIndex时,深入浅出 jackrabbit 九 索引合并(下)(3),检查一下indexs(PersistentIndex的集合)中是否包含这个要删除的PersistentIndex,如果包含就执行index.deleteIndex方法:Java代码

也写的很清楚,当删除一个PersistentIndex时,检查一下indexs(PersistentIndex的集合)中是否包含这个要删除的PersistentIndex,如果包含就执行index.deleteIndex方法:

Java代码  

synchronized void deleteIndex(PersistentIndex index) { 
 
    // remove it from the lists if index is registered 
 
    indexes.remove(index); 
 
    indexNames.removeName(index.getName()); 
 
    // during recovery it may happen that an index had already been marked 
 
    // deleted, so we need to check if it is already marked deleted. 
 
    synchronized (deletable) { 
 
      if (!deletable.contains(index.getName())) { 
 
        deletable.addName(index.getName()); 
 
      } 
 
    } 
 
}

进入这个方法后,我们可以看到,所谓的删除,就是把indexNames中的PersistentIndex的name删除掉,并把这个要删除的indexName加入到deletable中。

关键是indexNames和deletable到底是个什么东西,从这里我们可以看出来,其实indexNames和deletable就记录着 PersistentIndex的name,也就是说这两个对象中保存着有效的索引目录和需要被删除的索引目录。当10个目录合并成一个目录的时候,就是把10个目录的name从indexNames中删除,并加入到deletable中去。

Jackrabbit就是通过这种方式来保证应用拓机时索引数据的正确性。

上一页  1 2 3 4 5 6  下一页

Tags:深入浅出 jackrabbit 索引

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接