org.objectweb.cjdbc.controller.loadbalancer.raidb1
Class RAIDb1_WRR
java.lang.Object
javax.management.StandardMBean
org.objectweb.cjdbc.controller.jmx.AbstractStandardMBean
org.objectweb.cjdbc.controller.loadbalancer.AbstractLoadBalancer
org.objectweb.cjdbc.controller.loadbalancer.raidb1.RAIDb1
org.objectweb.cjdbc.controller.loadbalancer.raidb1.RAIDb1_WRR
- All Implemented Interfaces:
- AbstractLoadBalancerMBean, javax.management.DynamicMBean, javax.management.NotificationBroadcaster, javax.management.NotificationEmitter, XmlComponent
- public class RAIDb1_WRR
- extends RAIDb1
RAIDb-1 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 , Nicolas Modrzyk
Nested classes inherited from class javax.management.StandardMBean |
|
Field Summary |
private int |
index
|
private java.util.HashMap |
weights
|
Fields inherited from class javax.management.StandardMBean |
|
Methods inherited from class org.objectweb.cjdbc.controller.loadbalancer.raidb1.RAIDb1 |
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
index
private int index
RAIDb1_WRR
public RAIDb1_WRR(VirtualDatabase vdb,
WaitForCompletionPolicy waitForCompletionPolicy)
throws java.lang.Exception
- Creates a new RAIDb-1 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?
- Throws:
java.lang.Exception
- if an error occurs
execReadRequest
public ControllerResultSet execReadRequest(SelectRequest request,
MetadataCache metadataCache)
throws java.sql.SQLException
- Selects the backend using a weighted round-robin algorithm and executes the
read request.
- Specified by:
execReadRequest
in class RAIDb1
- Throws:
java.sql.SQLException
- See Also:
RAIDb1.execReadRequest(SelectRequest,
MetadataCache)
execReadOnlyReadStoredProcedure
public ControllerResultSet execReadOnlyReadStoredProcedure(StoredProcedure proc,
MetadataCache metadataCache)
throws java.sql.SQLException
- Selects the backend using a least pending request first policy. The backend
that has the shortest queue of currently executing queries is chosen to
execute this stored procedure.
- 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)
executeWRR
private ControllerResultSet executeWRR(AbstractRequest request,
boolean isSelect,
java.lang.String errorMsgPrefix,
MetadataCache metadataCache)
throws java.sql.SQLException
- Common code to execute a SelectRequest or a StoredProcedure on a backend
chosen using a weighted round-robin algorithm.
- Parameters:
request
- a SelectRequest
or
StoredProcedure
isSelect
- true if it is a SelectRequest
, false if it
is a StoredProcedure
errorMsgPrefix
- the error message prefix, usually "Request " or
"Stored procedure " ... failed because ...metadataCache
- a metadataCache if any or null
- Returns:
- a
ResultSet
- Throws:
java.sql.SQLException
- if an error occurs
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
getRaidb1Xml
public java.lang.String getRaidb1Xml()
- Description copied from class:
RAIDb1
- Surrounding raidb1 tags can be treated by getXmlImpl
above, but more detailed content have to be returned by the method
getRaidb1Xml below.
- Specified by:
getRaidb1Xml
in class RAIDb1
- Returns:
- content of Raidb1 xml
- See Also:
RAIDb1.getRaidb1Xml()
Copyright © 2002, 2005 - ObjectWeb Consortium - All Rights Reserved.