我有一个Solr 4.7实例,包含2个核心(A
,B
)和几个从B
复制的Slave。同样B
也会复制A
。
A
是replicateAfter=optimize
B
是replicateAfter=commit
这样,当我在晚上通过优化进行大量更新时,我只需将文档发送到A
,然后通过B
优化并复制到奴隶。
每天中午有一个小的更新,发送到B
然后发送到A
(没有优化)。诀窍是,B
立即将其复制到奴隶,之后A
和B
具有相同的索引版本,因此它不会再次复制。
在草率配置更新后,一个重要设置可能会丢失,因为当我执行每日小更新时,从B
看到的版本表现如下:
在指数化之前:
Master (Searching) 1000
Master (Replicable) 1000
Slave (Searching) 1000
在索引之后:
Master (Searching) 1001
Master (Replicable) 1000
Slave (Searching) 1001
见Searching > Replicable
。已发送commit
,但未显示为Replicable
。然而B
复制了奴隶。
当然,几分钟后就是这样:
Master (Searching) 1001
Master (Replicable) 1000
Slave (Searching) 1000
所以B
改为旧状态并复制到奴隶。更新丢失了。
Searching
升级为Replicable
?因为在先前的配置中,索引后的状态是:
Master (Searching) 1001
Master (Replicable) 1001
Slave (Searching) 1001
哪个没问题。