My indexes are stored on a NetApp filter via NFS. The indexer process
updates the indexes over NFS. I have multiple indexes. My search
process determines if the nfs indexes have been updated, and if they
have, then loads the index into a RAMDirectory. RAMDirectory is of
course much faster than searching over NFS. This way, I can also have
multiple search servers running easily. The drawback of course is
startup time. It takes a few minutes to start each search server
because it has to load the data into memory. RAMDirectory also seems
to be kind of memory inneficient, using a lot more memory than the
data actually consumes on disk.
On Wed, 24 Nov 2004 14:26:40 -0800, Jonathan Hager <[EMAIL PROTECTED]> wrote:
> When comparing RAMDirectory and FSDirectory it is important to mention
> what OS you are using. When using linux it will cache the most recent
> disk access in memory. Here is a good article that describes its
> strategy: http://forums.gentoo.org/viewtopic.php?t=175419
>
> The 2% difference you are seeing is the memory copy. With other OSes
> you may see a speed up when using the RAMDirectory, because not all
> OSes contain a disk cache in memory and must access the disk to read
> the index.
>
> Another consideration is there is currently a 2GB limitation with the
> size of the RAMDirectory. Indexes over 2GB causes a overflow in the
> int used to create the buffer. [see int len = (int) is.length(); in
> RamDirectory]
>
> I ended up using RAM directory for a very different reason. The index
> is 1 to 2MB and is rebuilt every few hours. It takes 3 to 4 minutes
> to query the database and rebuild the index. But the search should be
> available 100% of the time. Since the index is so small I do the
> following:
>
> on server startup:
> - look for semaphore, if it is there delete the index
> - if there is no index, build it to FSdirectory
> - load the index from FSDirectory into RAMDirectory
>
> on reindex:
> - create semaphore
> - rebuild index to FSDirectory
> - delete semaphore
> - load index from FSDirecttory into RAMDirectory
>
> to search:
> - search the RAMDirectory
>
> RAMDirectory could be replaced by a regular FSDirectory, but it seemed
> silly to copy the index from disk to disk, when it ultimately needs to
> be in memory.
>
> FSDirectory could be replaced by a RAMDirectory, but this means that
> it would take the server 3 to 4 minutes longer to startup every time.
> By persisting the index, this time would only be necessary if indexing
> was interrupted.
>
> Jonathan
>
> On Mon, 22 Nov 2004 12:39:07 -0800, Kevin A. Burton
>
>
> <[EMAIL PROTECTED]> wrote:
> > Otis Gospodnetic wrote:
> >
> > >For the Lucene book I wrote some test cases that compare FSDirectory
> > >and RAMDirectory. What I found was that with certain settings
> > >FSDirectory was almost as fast as RAMDirectory. Personally, I would
> > >push FSDirectory and hope that the OS and the Filesystem do their share
> > >of work and caching for me before looking for ways to optimize my code.
> > >
> > >
> > Yes... I performed the same benchmark and in my situation RAMDirectory
> > for searches was about 2% slower.
> >
> > I'm willing to bet that it has to do with the fact that its a Hashtable
> > and not a HashMap (which isn't synchronized).
> >
> > Also adding a constructor for the term size could make loading a
> > RAMDirectory faster since you could prevent rehash.
> >
> > If you're on a modern machine your filesystme cache will end up
> > buffering your disk anyway which I'm sure was happening in my situation.
> >
> > Kevin
> >
> > --
> >
> > Use Rojo (RSS/Atom aggregator). Visit http://rojo.com. Ask me for an
> > invite! Also see irc.freenode.net #rojo if you want to chat.
> >
> > Rojo is Hiring! - http://www.rojonetworks.com/JobsAtRojo.html
> >
> > If you're interested in RSS, Weblogs, Social Networking, etc... then you
> > should work for Rojo! If you recommend someone and we hire them you'll
> > get a free iPod!
> >
> > Kevin A. Burton, Location - San Francisco, CA
> >AIM/YIM - sfburtonator, Web - http://peerfear.org/
> > GPG fingerprint: 5FB2 F3E2 760E 70A8 6174 D393 E84D 8D04 99F1 4412
> >
> >
> >
> >
> > -
> > To unsubscribe, e-mail: [EMAIL PROTECTED]
> > For additional commands, e-mail: [EMAIL PROTECTED]
> >
> >
>
> -
> To unsubscribe, e-mail: [EMAIL PROTECTED]
> For additional commands, e-mail: [EMAIL PROTECTED]
>
>
-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]