I think that sounds correct. Why not also include solrconfig.xml? Also, why bother with checking timestamps of those .xml files - they are small enough that it's not worth complicating scripts to save a few KB of xfer only when those files change. But maybe you want that to detect their change easily?
In any case, this would be a nice improvement! Otis -- Sematext -- http://sematext.com/ -- Lucene - Solr - Nutch ----- Original Message ---- > From: Noble Paul നോബിള് नोब्ळ् <[EMAIL PROTECTED]> > To: solr-dev@lucene.apache.org > Sent: Wednesday, April 23, 2008 4:54:28 AM > Subject: replication should include the schema also > > The current Solr replication just copy the data directory . So if the > schema changes and I do a re-index it will blissfully copy the index > and the slaves will fail because of incompatible schema. > > So the steps we follow are > * Stop rsync on slaves > * Update the master with new schema > * re-index data > * forEach slave > ** Kill the slave > ** clean the data directory > ** install the new schema > ** restart > ** do a manual snappull > > The amount of work the admin needs to do is quite significant > (depending on the no:of slaves). These are manual steps and very error > prone > > The solution : > Make the replication mechanism handle the schema replication also. So > all I need to do is to just change the master and the slaves synch > automatically > > What is a good way to implement this? > > We have an idea along the following lines > > This should involve changes to the snapshooter and snappuller scripts > and the snapinstaller components > > Everytime the snapshooter takes a snapshot it must keep the timestamps > of schema.xml and elevate.xml (all the files which might affect the > runtime behavior in slaves) > For subsequent snapshots if the timestamps of any of them is changed > it must copy the all of them also for replication. > > The snappuller copies the new directory as usual > > The snapinstaller checks if these config files are present , > > if yes, > * It can create a temporary core > * install the changed index and configuration > * load it completely and swap it out with the original core > > --Noble