|
|||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | ||||||||||
java.lang.Objectorg.objectweb.cjdbc.controller.scheduler.AbstractScheduler
org.objectweb.cjdbc.controller.scheduler.raidb1.RAIDb1QueryLevelScheduler
This scheduler provides query level scheduling for RAIDb-1 controllers. Reads can execute in parallel until a write comes in. Then the write waits for the completion of the reads. Any new read is stacked after the write and they are released together when the write has completed its execution.
| Field Summary | |
private int |
pendingReads
|
private java.lang.Object |
readSync
|
private long |
requestId
|
private java.lang.Object |
writeSync
|
| Fields inherited from class org.objectweb.cjdbc.controller.scheduler.AbstractScheduler |
logger, parsingGranularity, raidbLevel |
| Fields inherited from interface org.objectweb.cjdbc.common.xml.XmlComponent |
DOCTYPE_CONTROLLER, DOCTYPE_DB, XML_VERSION |
| Constructor Summary | |
RAIDb1QueryLevelScheduler()
Creates a new Query Level Scheduler |
|
| Method Summary | |
protected void |
commitTransaction(long transactionId)
Commit a transaction given its id. |
java.lang.String |
getXmlImpl()
|
void |
notifyStoredProcedureCompleted(StoredProcedure proc)
Notify the completion of a stored procedure. |
void |
notifyWriteCompleted(AbstractWriteRequest request)
Notify the completion of a write statement. |
void |
readCompletedNotify(SelectRequest request)
Notify the completion of a read statement. |
protected void |
releaseSavepointTransaction(long transactionId,
java.lang.String name)
Release a savepoint given its name from a transaction given its id. |
protected void |
rollbackTransaction(long transactionId)
Rollback a transaction given its id. |
protected void |
rollbackTransaction(long transactionId,
java.lang.String savepointName)
Rollback a transaction given its id to a savepoint given its name. |
void |
scheduleNonSuspendedStoredProcedure(StoredProcedure proc)
Schedule a write request (implementation specific). |
void |
scheduleNonSuspendedWriteRequest(AbstractWriteRequest request)
Schedule a write request (implementation specific). |
void |
scheduleReadRequest(SelectRequest request)
Schedule a read request (implementation specific). |
protected void |
setSavepointTransaction(long transactionId,
java.lang.String name)
Set a savepoint given its name to a transaction given its id. |
private void |
waitForReadCompletion(AbstractRequest request)
Wait for the reads completion. |
| Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
| Field Detail |
private long requestId
private int pendingReads
private java.lang.Object readSync
private java.lang.Object writeSync
| Constructor Detail |
public RAIDb1QueryLevelScheduler()
| Method Detail |
public void scheduleReadRequest(SelectRequest request)
throws java.sql.SQLException
AbstractScheduler
scheduleReadRequest in class AbstractSchedulerrequest - Select request to schedule (SQL macros are already handled
if needed)
java.sql.SQLException - if a timeout occursAbstractScheduler.scheduleReadRequest(SelectRequest)public final void readCompletedNotify(SelectRequest request)
AbstractScheduler
readCompletedNotify in class AbstractSchedulerrequest - the completed requestAbstractScheduler.readCompletedNotify(SelectRequest)
public void scheduleNonSuspendedWriteRequest(AbstractWriteRequest request)
throws java.sql.SQLException
AbstractScheduler
scheduleNonSuspendedWriteRequest in class AbstractSchedulerrequest - Write request to schedule (SQL macros are already handled if
needed)
java.sql.SQLException - if a timeout occursAbstractScheduler.scheduleWriteRequest(AbstractWriteRequest)public final void notifyWriteCompleted(AbstractWriteRequest request)
AbstractScheduler
notifyWriteCompleted in class AbstractSchedulerrequest - the completed requestAbstractScheduler.notifyWriteCompleted(AbstractWriteRequest)
public final void scheduleNonSuspendedStoredProcedure(StoredProcedure proc)
throws java.sql.SQLException,
RollbackException
AbstractScheduler
scheduleNonSuspendedStoredProcedure in class AbstractSchedulerproc - Stored procedure to schedule
java.sql.SQLException - if a timeout occurs
RollbackException - if the transaction must be rollbackedAbstractScheduler.scheduleNonSuspendedStoredProcedure(org.objectweb.cjdbc.common.sql.StoredProcedure)public final void notifyStoredProcedureCompleted(StoredProcedure proc)
AbstractScheduler
notifyStoredProcedureCompleted in class AbstractSchedulerproc - the completed stored procedureAbstractScheduler.notifyStoredProcedureCompleted(org.objectweb.cjdbc.common.sql.StoredProcedure)
private void waitForReadCompletion(AbstractRequest request)
throws java.sql.SQLException
request - the request that is being scheduled
java.sql.SQLException - if an error occursprotected final void commitTransaction(long transactionId)
AbstractScheduler
commitTransaction in class AbstractSchedulertransactionId - the transaction idAbstractScheduler.commitTransaction(long)protected final void rollbackTransaction(long transactionId)
AbstractScheduler
rollbackTransaction in class AbstractSchedulertransactionId - the transaction idAbstractScheduler.rollbackTransaction(long)
protected final void rollbackTransaction(long transactionId,
java.lang.String savepointName)
AbstractScheduler
rollbackTransaction in class AbstractSchedulertransactionId - the transaction idsavepointName - the name of the savepointAbstractScheduler.rollbackTransaction(long,
String)
protected final void setSavepointTransaction(long transactionId,
java.lang.String name)
AbstractScheduler
setSavepointTransaction in class AbstractSchedulertransactionId - the transaction idname - the name of the savepointAbstractScheduler.setSavepointTransaction(long,
String)
protected final void releaseSavepointTransaction(long transactionId,
java.lang.String name)
AbstractScheduler
releaseSavepointTransaction in class AbstractSchedulertransactionId - the transaction idname - the name of the savepointAbstractScheduler.releaseSavepointTransaction(long,
String)public java.lang.String getXmlImpl()
getXmlImpl in class AbstractSchedulerAbstractScheduler.getXmlImpl()
|
|||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | ||||||||||