org.objectweb.cjdbc.controller.loadbalancer.raidb2
Class RAIDb2_WRR
java.lang.Object
javax.management.StandardMBean
org.objectweb.cjdbc.controller.jmx.AbstractStandardMBean
org.objectweb.cjdbc.controller.loadbalancer.AbstractLoadBalancer
org.objectweb.cjdbc.controller.loadbalancer.raidb2.RAIDb2
org.objectweb.cjdbc.controller.loadbalancer.raidb2.RAIDb2_WRR
- All Implemented Interfaces:
- AbstractLoadBalancerMBean, javax.management.DynamicMBean, javax.management.NotificationBroadcaster, javax.management.NotificationEmitter, XmlComponent
- public class RAIDb2_WRR
- extends RAIDb2
RAIDb-2 Weighted Round Robin load balancer.
The read requests coming from the request manager are sent to the backend
nodes using a weighted round robin. Write requests are broadcasted to all
backends.
- Version:
- 1.0
- Author:
- Emmanuel Cecchet , Julie Marguerite
Nested classes inherited from class javax.management.StandardMBean |
|
Field Summary |
private java.util.HashMap |
weights
|
Fields inherited from class javax.management.StandardMBean |
|
Methods inherited from class org.objectweb.cjdbc.controller.loadbalancer.raidb2.RAIDb2 |
begin, commit, disableBackend, enableBackend, execReadStoredProcedure, executeRequestOnBackend, executeStoredProcedureOnBackend, execWriteRequest, execWriteRequestWithKeys, execWriteStoredProcedure, getNumberOfEnabledBackends, getXmlImpl, releaseSavepoint, rollback, rollback, setSavepoint, waitForAllWritesToComplete, waitForAllWritesToComplete, waitForAllWritesToComplete |
Methods inherited from class org.objectweb.cjdbc.controller.loadbalancer.AbstractLoadBalancer |
executeReadStoredProcedureOnBackend, executeSelectRequestOnBackend, executeUpdateRequestOnBackend, executeUpdateRequestOnBackendWithKeys, executeWriteStoredProcedureOnBackend, getAssociatedString, getConnectionAndBeginTransaction, getParsingGranularity, getRAIDbLevel, getXml, handleMacros, removeHeadFromAndNotifyTotalOrderQueue, setMacroHandler, setParsingGranularity, setRAIDbLevel, waitForTotalOrder |
Methods inherited from class org.objectweb.cjdbc.controller.jmx.AbstractStandardMBean |
addNotificationListener, getDescription, getDescription, getDescription, getDescription, getDescription, getDescription, getNotificationInfo, getParameterName, getParameterName, removeNotificationListener, removeNotificationListener, sendNotification |
Methods inherited from class javax.management.StandardMBean |
cacheMBeanInfo, getAttribute, getAttributes, getCachedMBeanInfo, getClassName, getConstructors, getDescription, getImpact, getImplementation, getImplementationClass, getMBeanInfo, getMBeanInterface, invoke, setAttribute, setAttributes, setImplementation |
Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
weights
private java.util.HashMap weights
RAIDb2_WRR
public RAIDb2_WRR(VirtualDatabase vdb,
WaitForCompletionPolicy waitForCompletionPolicy,
CreateTablePolicy createTablePolicy)
throws java.lang.Exception
- Creates a new RAIDb-2 Weighted Round Robin request load balancer.
- Parameters:
vdb
- The virtual database this load balancer belongs to.waitForCompletionPolicy
- How many backends must complete before
returning the result?createTablePolicy
- The policy defining how 'create table' statements
should be handled
- Throws:
java.lang.Exception
- if an error occurs
execReadRequest
public ControllerResultSet execReadRequest(SelectRequest request,
MetadataCache metadataCache)
throws java.sql.SQLException
- Performs a read request. It is up to the implementation to choose to which
backend node(s) this request should be sent.
- Specified by:
execReadRequest
in class RAIDb2
- Parameters:
request
- an SelectRequest
metadataCache
- cached metadata to use to construct the result set
- Returns:
- the corresponding
java.sql.ResultSet
- Throws:
java.sql.SQLException
- if an error occurs- See Also:
RAIDb2.execReadRequest(SelectRequest,
MetadataCache)
execReadOnlyReadStoredProcedure
public ControllerResultSet execReadOnlyReadStoredProcedure(StoredProcedure proc,
MetadataCache metadataCache)
throws java.sql.SQLException
- Chooses the node to execute the stored procedure using a round-robin
algorithm. If the next node has not the needed stored procedure, we try the
next one and so on until a suitable backend is found.
- Specified by:
execReadOnlyReadStoredProcedure
in class AbstractLoadBalancer
- Parameters:
proc
- the stored procedure callmetadataCache
- MetadataCache (null if none)
- Returns:
- a
ControllerResultSet
value
- Throws:
java.sql.SQLException
- if an error occurs- See Also:
AbstractLoadBalancer.execReadOnlyReadStoredProcedure(StoredProcedure,
MetadataCache)
setWeight
public void setWeight(java.lang.String name,
int w)
throws java.sql.SQLException
- Description copied from class:
AbstractLoadBalancer
- Associate a weight to a backend identified by its logical name.
- Specified by:
setWeight
in interface AbstractLoadBalancerMBean
- Overrides:
setWeight
in class AbstractLoadBalancer
- Parameters:
name
- the backend namew
- the weight
- Throws:
java.sql.SQLException
- if an error occurs- See Also:
AbstractLoadBalancer.setWeight(String,
int)
getInformation
public java.lang.String getInformation()
- Gets information about the request load balancer.
- Specified by:
getInformation
in interface AbstractLoadBalancerMBean
- Specified by:
getInformation
in class AbstractLoadBalancer
- Returns:
String
containing information
getRaidb2Xml
public java.lang.String getRaidb2Xml()
- Description copied from class:
RAIDb2
- return xml formatted information about this raidb2 load balancer
- Specified by:
getRaidb2Xml
in class RAIDb2
- Returns:
- xml formatted string
- See Also:
RAIDb2.getRaidb2Xml()
Copyright © 2002, 2005 - ObjectWeb Consortium - All Rights Reserved.