Hi Mark, On Mon, Mar 8, 2010 at 9:23 PM, Mark Fletcher <mark.fletcher2...@gmail.com>wrote:
> > My main purpose of having 2 identical cores > COREX - always serves user request > COREY - every day once, takes the updates/latest data and passess it on to > COREX. > is:- > > Suppose say I have only one COREY and suppose a request comes to COREY > while the update of the latest data is happening on to it. Wouldn't it > degrade performance of the requests at that point of time? > The thing to note is that both reads and writes are happening on the same box. So when you swap cores, the OS has to cache the hot segments of the new (inactive) index. If you were just re-opening the same (active) index, at least some of the existing files could remain in the OS's file cache. I think that may just degrade performance further so you should definitely benchmark before going through with this. The best practice is to use a master/slave architecture and separate the writes and reads. > So I was planning to keep COREX and COREY always identical. Once COREY has > the latest it should somehow sync with COREX so that COREX also now has the > latest. COREY keeps on getting the updates at a particular time of day and > it will again pass it on to COREX. This process continues everyday. > You could use the same approach that Solr 1.3's snapinstaller script used. It deletes the files and creates hard links to the new index files. -- Regards, Shalin Shekhar Mangar.