[Xapian-discuss] Splitting terms into separate B-Trees.
Alexander Lind
malte at webstay.org
Tue May 22 22:34:35 BST 2007
Kevin Duraj wrote:
> Splitting terms into separate B-Trees.
>
> I would like to have a feature in Xapian that would allow me to tell
> Xapian to split B-Tree terms into 2 or more B-Trees that I could place
> on different servers and then based on what term Xapian is searching
> master server will issue search to particular worker server that holds
> the term. Master server will received info from worker server which
> documents IDs contain the term then master server retrieves document
> from local database and return search result to client.
>
> Example:
>
> Master holds database with documents Server0
> - B-tree with bitmaps for all terms starting a-m are stored on ServerA
> - B-tree with bitmaps for all terms starting n-z are stored on ServerB
>
> If I am looking for term: xapian, Master Server0 will issue search to
> ServerB, result is then send back Master Server0 then Master Server0
> retrieves documents details from local database and will send to
> client.
>
Is it really a better approach to achieve load balancing this way,
rather than have identical indexes on all worker-machines, and just
round-robin out requests to them? Or if you want to get fancy, use some
sort of loadmonitor report to decide which machine should carry out the
search?
Seems like it could get pretty hairy to have the trees split like you
suggest. What if you want to add a third server? What if most people
happen to be searching on things beginning with [a-m]?
Alec
More information about the Xapian-discuss
mailing list