|
|||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Object org.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 AbstractScheduler
request
- 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 AbstractScheduler
request
- the completed requestAbstractScheduler.readCompletedNotify(SelectRequest)
public void scheduleNonSuspendedWriteRequest(AbstractWriteRequest request) throws java.sql.SQLException
AbstractScheduler
scheduleNonSuspendedWriteRequest
in class AbstractScheduler
request
- 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 AbstractScheduler
request
- the completed requestAbstractScheduler.notifyWriteCompleted(AbstractWriteRequest)
public final void scheduleNonSuspendedStoredProcedure(StoredProcedure proc) throws java.sql.SQLException, RollbackException
AbstractScheduler
scheduleNonSuspendedStoredProcedure
in class AbstractScheduler
proc
- 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 AbstractScheduler
proc
- 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 AbstractScheduler
transactionId
- the transaction idAbstractScheduler.commitTransaction(long)
protected final void rollbackTransaction(long transactionId)
AbstractScheduler
rollbackTransaction
in class AbstractScheduler
transactionId
- the transaction idAbstractScheduler.rollbackTransaction(long)
protected final void rollbackTransaction(long transactionId, java.lang.String savepointName)
AbstractScheduler
rollbackTransaction
in class AbstractScheduler
transactionId
- 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 AbstractScheduler
transactionId
- 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 AbstractScheduler
transactionId
- the transaction idname
- the name of the savepointAbstractScheduler.releaseSavepointTransaction(long,
String)
public java.lang.String getXmlImpl()
getXmlImpl
in class AbstractScheduler
AbstractScheduler.getXmlImpl()
|
|||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |