|
|||||||||||
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.raidb2.RAIDb2QueryLevelScheduler
This scheduler provides query level scheduling for RAIDb-2 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_DB, XML_VERSION |
Constructor Summary | |
RAIDb2QueryLevelScheduler()
Creates a new Query Level Scheduler |
Method Summary | |
protected void |
commitTransaction(long transactionId)
Commit a transaction given its id. |
java.lang.String |
getXmlImpl()
|
void |
notifyWriteCompleted(AbstractWriteRequest request)
Notify the completion of a write statement. |
void |
readCompletedNotify(SelectRequest request)
Notify the completion of a read statement. |
protected void |
rollbackTransaction(long transactionId)
Rollback a transaction given its id. |
void |
scheduleNonSuspendedWriteRequest(AbstractWriteRequest request)
Schedule a write request (implementation specific). |
void |
scheduleReadRequest(SelectRequest request)
Schedule a read request (implementation specific). |
private void |
waitForReadCompletion(AbstractWriteRequest request)
Wait for the reads completion. |
Methods inherited from class org.objectweb.cjdbc.controller.scheduler.AbstractScheduler |
begin, beginCompleted, commit, commitCompleted, getNumberRead, getNumberWrite, getParsingGranularity, getPendingTransactions, getPendingWrites, getRAIDbLevel, getSchedulerData, getXml, hasSQLMacros, initializeTransactionId, isSuspendedTransactions, isSuspendedWrites, mergeDatabaseSchema, readCompleted, resumeNewTransactions, resumeWrites, rollback, rollbackCompleted, scheduleWriteRequest, setDatabaseSchema, setParsingGranularity, setRAIDbLevel, suspendNewTransactionsForCheckpoint, suspendWrites, writeCompleted |
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 RAIDb2QueryLevelScheduler()
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)
private void waitForReadCompletion(AbstractWriteRequest request) throws java.sql.SQLException
request
- the request that is being scheduled
java.sql.SQLException
- if an error occurspublic final void notifyWriteCompleted(AbstractWriteRequest request)
AbstractScheduler
notifyWriteCompleted
in class AbstractScheduler
request
- the completed requestAbstractScheduler.notifyWriteCompleted(AbstractWriteRequest)
protected 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)
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 |