Or just ignore it if you have the disk space. The files will be cleaned up eventually. I believe they'll magically disappear if you simply bounce the server (but work on *nix so can't personally guarantee it). And replication won't replicate the stale files, so that's not a problem either....
Best Erick On Wed, Mar 14, 2012 at 11:54 PM, Mike Austin <mike.aus...@juggle.com> wrote: > Shawn, > > Thanks for the detailed answer! I will play around with this information in > hand. Maybe a second optimize or just a dummy commit after the optimize > will help get me past this. Both not the best options, but maybe it's a do > it because it's running on windows work-around. If it is indeed a file > locking issue, I think I can probably work around this since my indexing is > scheduled at certain times and not "live" so I could try the optimize again > soon after or do a single commit that seems to fix the issue also. Or just > not optimize.. > > Thanks, > Mike > > On Wed, Mar 14, 2012 at 6:34 PM, Shawn Heisey <s...@elyograg.org> wrote: > >> On 3/14/2012 2:54 PM, Mike Austin wrote: >> >>> The odd thing is that if I optimize the index it doubles in size.. If I >>> then, add one more document to the index it goes back down to half size? >>> >>> Is there a way to force this without needing to wait until another >>> document >>> is added? Or do you have more information on what you think is going on? >>> I'm using a trunk version of solr4 from 9/12/2011 with a master with two >>> slaves setup. Everything besides this is working great! >>> >> >> The not-very-helpful-but-true answer: Don't run on Windows. I checked >> your prior messages to the list to verify that this is your environment. >> If you can control index updates so they don't happen at the same time as >> your optimizes, you can also get around this problem by doing the optimize >> twice. You would have to be absolutely sure that no changes are made to >> the index between the two optimizes, so the second one basically doesn't do >> anything except take care of the deletes. >> >> Nuts and bolts of why this happens: Solr keeps the old files open so the >> existing reader can continue to serve queries. That reader will not be >> closed until the last query completes, which may not happen until well >> after the time the new reader is completely online and ready. I assume >> that the delete attempt occurs as soon as the new index segments are >> completely online, before the old reader begins to close. I've not read >> the source code to find out. >> >> On Linux and other UNIX-like environments, you can delete files while they >> are open by a process. They continue to exist as in-memory links and take >> up space until those processes close them, at which point they are truly >> gone. On Windows, an attempt to delete an open file will fail, even if >> it's open read-only. >> >> There are probably a number of ways that this problem could be solved for >> Windows platforms. The simplest that I can think of, assuming it's even >> possible, would be to wait until the old reader is closed before attempting >> the segment deletion. That may not be possible - the information may not >> be available to the portion of code that does the deletion. There are a >> few things standing in the way of me fixing this problem myself: 1) I'm a >> beginning Java programmer. 2) I'm not familiar with the Solr code at all. >> 3) My interest level is low because I run on Linux, not Windows. >> >> Thanks, >> Shawn >> >>