|
|||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Object javax.management.StandardMBean org.objectweb.cjdbc.controller.jmx.AbstractStandardMBean org.objectweb.cjdbc.controller.loadbalancer.AbstractLoadBalancer org.objectweb.cjdbc.controller.loadbalancer.raidb0.RAIDb0
RAIDb-0: database partitioning.
The requests are sent to the backend nodes hosting the tables needed to execute the request. If no backend has the needed tables to perform a request, it will fail.
Nested Class Summary |
Nested classes inherited from class javax.management.StandardMBean |
|
Field Summary | |
private java.util.ArrayList |
backendThreads
|
private ReadPrioritaryFIFOWriteLock |
backendThreadsRWLock
|
private CreateTablePolicy |
createTablePolicy
|
protected static Trace |
logger
|
Fields inherited from class org.objectweb.cjdbc.controller.loadbalancer.AbstractLoadBalancer |
macroHandler, parsingGranularity, raidbLevel, totalOrderQueue, vdb |
Fields inherited from class org.objectweb.cjdbc.controller.jmx.AbstractStandardMBean |
|
Fields inherited from class javax.management.StandardMBean |
|
Fields inherited from interface org.objectweb.cjdbc.common.xml.XmlComponent |
DOCTYPE_CONTROLLER, DOCTYPE_DB, XML_VERSION |
Constructor Summary | |
RAIDb0(VirtualDatabase vdb,
CreateTablePolicy createTablePolicy)
Creates a new RAIDb-0 request load balancer. |
Method Summary | |
void |
begin(TransactionMarkerMetaData tm)
Begins a new transaction. |
void |
commit(TransactionMarkerMetaData tm)
Commits a transaction. |
void |
disableBackend(DatabaseBackend db)
Disables a backend that was previously enabled. |
void |
enableBackend(DatabaseBackend db,
boolean writeEnabled)
Enables a Backend that was previously disabled. |
ControllerResultSet |
execReadOnlyReadStoredProcedure(StoredProcedure proc,
MetadataCache metadataCache)
Call a read-only stored procedure that returns a ResultSet. |
ControllerResultSet |
execReadRequest(SelectRequest request,
MetadataCache metadataCache)
Performs a read request on the backend that has the needed tables to executes the request. |
ControllerResultSet |
execReadStoredProcedure(StoredProcedure proc,
MetadataCache metadataCache)
Call a stored procedure that returns a ResultSet. |
protected ControllerResultSet |
executeRequestOnBackend(SelectRequest request,
DatabaseBackend backend,
MetadataCache metadataCache)
Execute a read request on the selected backend. |
int |
execWriteRequest(AbstractWriteRequest request)
Performs a write request on the backend that has the needed tables to executes the request. |
ControllerResultSet |
execWriteRequestWithKeys(AbstractWriteRequest request,
MetadataCache metadataCache)
Perform a write request and return a ResultSet containing the auto generated keys. |
int |
execWriteStoredProcedure(StoredProcedure proc)
Call a stored procedure that performs an update. |
java.lang.String |
getInformation()
Get information about the Request load balancer |
int |
getNumberOfEnabledBackends()
Get the number of currently enabled backends. 0 means that no backend is available. |
java.lang.String |
getXmlImpl()
Get information about the Request Load Balancer in xml |
void |
releaseSavepoint(TransactionMarkerMetaData tm,
java.lang.String name)
Release a savepoint from a transaction |
void |
rollback(TransactionMarkerMetaData tm)
Rollbacks a transaction. |
void |
rollback(TransactionMarkerMetaData tm,
java.lang.String savepointName)
Rollback a transaction to a savepoint |
void |
setSavepoint(TransactionMarkerMetaData tm,
java.lang.String name)
Set a savepoint to a transaction. |
void |
setWeight(java.lang.String name,
int w)
Associate a weight to a backend identified by its logical name. |
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 |
Field Detail |
private java.util.ArrayList backendThreads
private ReadPrioritaryFIFOWriteLock backendThreadsRWLock
private CreateTablePolicy createTablePolicy
protected static Trace logger
Constructor Detail |
public RAIDb0(VirtualDatabase vdb, CreateTablePolicy createTablePolicy) throws java.lang.Exception
vdb
- the virtual database this load balancer belongs to.createTablePolicy
- the policy defining how 'create table' statements
should be handled
java.lang.Exception
- if an error occursMethod Detail |
public ControllerResultSet execReadRequest(SelectRequest request, MetadataCache metadataCache) throws java.sql.SQLException
execReadRequest
in class AbstractLoadBalancer
request
- an SelectRequest
metadataCache
- the metadataCache if any or null
java.sql.ResultSet
java.sql.SQLException
- if an error occursAbstractLoadBalancer.execReadRequest(SelectRequest, MetadataCache)
public int execWriteRequest(AbstractWriteRequest request) throws java.sql.SQLException
execWriteRequest
in class AbstractLoadBalancer
request
- an AbstractWriteRequest
java.sql.SQLException
- if an error occurspublic ControllerResultSet execWriteRequestWithKeys(AbstractWriteRequest request, MetadataCache metadataCache) throws java.sql.SQLException
AbstractLoadBalancer
execWriteRequestWithKeys
in class AbstractLoadBalancer
request
- an AbstractWriteRequest
metadataCache
- MetadataCache (null if none)
java.sql.SQLException
- if an error occursAbstractLoadBalancer.execWriteRequestWithKeys(AbstractWriteRequest,
MetadataCache)
protected ControllerResultSet executeRequestOnBackend(SelectRequest request, DatabaseBackend backend, MetadataCache metadataCache) throws java.sql.SQLException
request
- the request to executebackend
- the backend that will execute the requestmetadataCache
- the metadataCache if any or null
java.sql.SQLException
- if an error occurspublic ControllerResultSet execReadOnlyReadStoredProcedure(StoredProcedure proc, MetadataCache metadataCache) throws java.sql.SQLException
AbstractLoadBalancer
execReadOnlyReadStoredProcedure
in class AbstractLoadBalancer
proc
- the stored procedure callmetadataCache
- MetadataCache (null if none)
ControllerResultSet
value
java.sql.SQLException
- if an error occursAbstractLoadBalancer.execReadOnlyReadStoredProcedure(StoredProcedure,
MetadataCache)
public ControllerResultSet execReadStoredProcedure(StoredProcedure proc, MetadataCache metadataCache) throws java.sql.SQLException
AbstractLoadBalancer
execReadStoredProcedure
in class AbstractLoadBalancer
proc
- the stored procedure callmetadataCache
- MetadataCache (null if none)
ControllerResultSet
value
java.sql.SQLException
- if an error occursAbstractLoadBalancer.execReadStoredProcedure(StoredProcedure,
MetadataCache)
public int execWriteStoredProcedure(StoredProcedure proc) throws java.sql.SQLException
AbstractLoadBalancer
execWriteStoredProcedure
in class AbstractLoadBalancer
proc
- the stored procedure call
java.sql.SQLException
- if an error occursAbstractLoadBalancer.execWriteStoredProcedure(org.objectweb.cjdbc.common.sql.StoredProcedure)
public final void begin(TransactionMarkerMetaData tm) throws java.sql.SQLException
begin
in class AbstractLoadBalancer
tm
- the transaction marker metadata
java.sql.SQLException
- if an error occurspublic void commit(TransactionMarkerMetaData tm) throws java.sql.SQLException
commit
in class AbstractLoadBalancer
tm
- the transaction marker metadata
java.sql.SQLException
- if an error occurspublic void rollback(TransactionMarkerMetaData tm) throws java.sql.SQLException
rollback
in class AbstractLoadBalancer
tm
- the transaction marker metadata
java.sql.SQLException
- if an error occurspublic void rollback(TransactionMarkerMetaData tm, java.lang.String savepointName) throws java.sql.SQLException
rollback
in class AbstractLoadBalancer
tm
- The transaction marker metadatasavepointName
- The name of the savepoint
java.sql.SQLException
- if an error occurspublic void releaseSavepoint(TransactionMarkerMetaData tm, java.lang.String name) throws java.sql.SQLException
releaseSavepoint
in class AbstractLoadBalancer
tm
- The transaction marker metadataname
- The name of the savepoint ro release
java.sql.SQLException
- if an error occurspublic void setSavepoint(TransactionMarkerMetaData tm, java.lang.String name) throws java.sql.SQLException
setSavepoint
in class AbstractLoadBalancer
tm
- The transaction marker metadataname
- The name of the new savepoint
java.sql.SQLException
- if an error occurspublic void enableBackend(DatabaseBackend db, boolean writeEnabled) throws java.sql.SQLException
Ask the corresponding connection manager to initialize the connections if needed.
No sanity checks are performed by this function.
enableBackend
in class AbstractLoadBalancer
db
- the database backend to enablewriteEnabled
- True if the backend must be enabled for writes
java.sql.SQLException
- if an error occurspublic void disableBackend(DatabaseBackend db) throws java.sql.SQLException
Ask the corresponding connection manager to finalize the connections if needed.
No sanity checks are performed by this function.
disableBackend
in class AbstractLoadBalancer
db
- the database backend to disable
java.sql.SQLException
- if an error occurspublic void setWeight(java.lang.String name, int w) throws java.sql.SQLException
AbstractLoadBalancer
setWeight
in interface AbstractLoadBalancerMBean
setWeight
in class AbstractLoadBalancer
name
- the backend namew
- the weight
java.sql.SQLException
- if an error occursAbstractLoadBalancer.setWeight(String,
int)
public int getNumberOfEnabledBackends()
AbstractLoadBalancer
getNumberOfEnabledBackends
in class AbstractLoadBalancer
AbstractLoadBalancer.getNumberOfEnabledBackends()
public java.lang.String getInformation()
getInformation
in interface AbstractLoadBalancerMBean
getInformation
in class AbstractLoadBalancer
String
containing informationpublic java.lang.String getXmlImpl()
AbstractLoadBalancer
getXmlImpl
in class AbstractLoadBalancer
String
containing information, xml formattedAbstractLoadBalancer.getXmlImpl()
|
|||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |