|
Client Module
The Client Module (CM) represents the client software residing on client machines. It consists of two components;
the IDVLS Visual Basic application and a Client Request Manager. An API layer will interface the IDVLS application
and the Client Request Manager.
Client Request Manager
The Client Request Manager (CRM) manages requests from the IDVLS application and transfers these request to the
Query Manager. The CRM continuously probes the Query Manager to see if it is alive. In the event of a failure the
CRM will provide the required detour to the backup Query Manager. The client Request Manager also makes it possible
to cater query requests from more than one IDVLS on a single client machine assuming that multiple copies of IDVLS
can run in a single address space.
Query Manager
This module manages request from multiple clients. In Figure 2., we show the primary Query Manager (QM)
processing requests from two separate clients. The requests are processed and sent to the appropriate Load Balancer
module. It is the function of the Query Manager to determine which back end search engine will receive the request
based on the type of the request. For instance, if a query is a Text query, the Query Manager will ensure that
the query is routed to a Text Search Engine.
Load Balancer
The Load Balancer (LB) is a module that sits transparently between a Query Manager and a set of search engines.
A Query Manager sends a query to a Load Balancer and will receive a result of the query as a reply. As far as the
Query Manager is concerned, the Load Balancer returns results of queries. The Load Balancer as its name suggest,
provides the functionality needed to distribute queries and balance the load on a set of search engines.
Search Engine
Each of these Search Engines (SE) encapsulates a search engine that will actually process a query. We replicate
the Search Engine module in order to perform load balancing.
3. Distributed Systems Innovations
Our design will make employ of the following features of distributed systems:
- Naming Service
We will have protocols so that the Client Request Manager will be able to identify the primary Query Manager.
In the event the primary Query Manager fails the Client Request Manager must be able to route via the backup Query
Manager. Naming resolution will also enable the Query Manager to identify the primary Load Balancer module.
- Replication Management Approach
For both the Query Manager and the Load Balancer modules, we will us a Primary Backup approach in our provision
for fault tolerance. We have yet to determine the exact number of backup modules. In Figure 2., only one
backup is shown per module. However, this does not imply that our final design and implementation will have only
one backup per module.
- Load Balancing
The Load Balancer serves as a hub for all the requests. The Load Balancer has a host of search engines connected
to it. The Load Balancer maintains a set of queues of query requests. Each queue corresponds to a Search Engine.
By managing the queues, the Load Balancer can determine the load on each Search Engine based on the queue lengths.
|