lucene-java-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From kumarlimbu <>
Subject Serving remote lucene client - RMI vs HTTP
Date Mon, 16 Jul 2007 02:10:17 GMT

Hi Everyone,

We are using lucene,nutch and spring framework to create a specialized
search engine. Due to growing traffic we are trying to scale. By doing some
tests we found out that the bottle neck was lucene search. We used some
heavy traffic simulation and logged the time taken by each portion of the
server response and found out that the bulk of the time was spent in
searching from lucene index.

In order to accomodate higher traffic we are planning on splitting our
application in 2 portions:
1. Web application (on 1 machine)
2. Search application (one more than 1 machine)

Each one of the application will reside on a (possibly) separate machines.
We are looking forward to scaling by adding more than 1 machine dedicated to
searching as lucene search seems to be the bottleneck. 

Web application will provide the front-end to the user. All static pages,
images and the style information will reside on this machine. It will also
serve dynamic pages but all the searching will take place on the search
application. Web application will send search parameters to the search
application and after searching, it will send back the results to the web
application which will format it and display it to the user.

What we are unable to decide is whether to use RMI (
cluster4spring  )or simple HTTP POST/GET request with response in XML
format. We did some research and found out that RMI (with clustering
support) might be more suitable for our needs. Unfortunately our team is not
familiar with RMI and so we don't know if there will be any issues with it
during implementation. 
Advantage of using simple GET/POST is we have more control which searcher
app to use and when. An important criteria for us is to disable searching
from the searcher app who's index is being updated. This is very important
for us. Is there anyway in RMI to inform the web (client) application that a
particular server is unavailable (due to index being updated).

We would also like to know if anybody has implemented lucene searching in a
similar fashion. Thanks for your help.

Kumar Limbu

View this message in context:
Sent from the Lucene - Java Users mailing list archive at

  • Unnamed multipart/alternative (inline, None, 0 bytes)
View raw message