cancel
Showing results for 
Search instead for 
Did you mean: 

FULL Index recovery in HA

oznevo
Champ in-the-making
Champ in-the-making
Hi,

Question - if we have two Alfresco server in HA, one is up and on the other one we run FULL index recovery - do the index get synchronized from the server that runs FULL index rebuild to the other server (that stands idle) while the Index recovery is running?

Thanks,
Oz
4 REPLIES 4

brian_robinson
Champ in-the-making
Champ in-the-making
If Server A is doing the FULL index recovery, it will be synchronized to include the latest transactions, which is where I think you're going with this question.  Alfresco maintains transaction Ids that enable this synchronization.  The transaction Ids are stored in the database, content store, and the lucene index.  The lucene index that is being rebuilt is able to do so by "playing back" the transactions in order based on the transaction Ids in the database and content store.

oznevo
Champ in-the-making
Champ in-the-making
Hi,

You are describing the index recovery process.
I'm asking about the index sync between servers in HA.
In HA, any operation on the index is synchronized (set by index.tracking.cronExpression).
My question is - during Full Index recovery on one server (the other server is up and running) - does the server that is doing the recovery sync the index that is being rebuilt to the other server?

I'm asking since we had a case where both servers (in HA) had a problem in their index and we decided to run Full index recovery on one of them.
After a day it was running (we didn’t touch the other server), we noticed that the index on the other server (the one that did not run index recovery) is corrected as well.

It could be that we didn’t test exactly on the same document, or it could be that the index synchronization happens while you are doing Full index recovery on one server in a cluster.
This is my question

Cheers,
Oz

brian_robinson
Champ in-the-making
Champ in-the-making
The lucene indexes do not synchronize with each other, they synchronize with the content store (shared unless using replication) and the database (shared).  Each node in a cluster has its own lucene index, that is basically independent of every other lucene index on every other node in the cluster.  This independence in practice only ends up being independent by something like 5 or ten seconds based on a configurable setting (I'd have to look it up).

The behavior you observed is definitely odd though, and is not explained by how I understand index synchronization to work.

Hopefully though I've clarified that the lucene indexes do not synchronize with each other though.

chapeaurouge
Champ in-the-making
Champ in-the-making
Possibly because of ehcache multicast sync?