Main Page | Packages | Class Hierarchy | Alphabetical List | Class List | File List | Class Members | Related Pages

org.objectweb.cjdbc.controller.scheduler.raidb1.RAIDb1OptimisticQueryLevelScheduler Class Reference

Inheritance diagram for org.objectweb.cjdbc.controller.scheduler.raidb1.RAIDb1OptimisticQueryLevelScheduler:

Inheritance graph
[legend]
Collaboration diagram for org.objectweb.cjdbc.controller.scheduler.raidb1.RAIDb1OptimisticQueryLevelScheduler:

Collaboration graph
[legend]
List of all members.

Public Member Functions

 RAIDb1OptimisticQueryLevelScheduler ()
synchronized void scheduleReadRequest (SelectRequest request) throws SQLException
final void readCompletedNotify (SelectRequest request)
synchronized void scheduleNonSuspendedWriteRequest (AbstractWriteRequest request) throws SQLException
final synchronized void notifyWriteCompleted (AbstractWriteRequest request)
String getXmlImpl ()

Protected Member Functions

final void commitTransaction (long transactionId)
final void rollbackTransaction (long transactionId)

Detailed Description

This scheduler provides optimistic query level scheduling for RAIDb-1 controllers. Reads can execute in parallel of any request. Writes are flagged as blocking or not based on the completion of a previous write inside the same transaction.

Author:
Emmanuel Cecchet
Version:
1.0

Definition at line 46 of file RAIDb1OptimisticQueryLevelScheduler.java.


Constructor & Destructor Documentation

org.objectweb.cjdbc.controller.scheduler.raidb1.RAIDb1OptimisticQueryLevelScheduler.RAIDb1OptimisticQueryLevelScheduler  ) 
 

Creates a new Query Level Scheduler

Definition at line 69 of file RAIDb1OptimisticQueryLevelScheduler.java.

00070   {
00071     super(RAIDbLevels.RAIDb1, ParsingGranularities.NO_PARSING);
00072     requestId = 0;
00073   }


Member Function Documentation

final void org.objectweb.cjdbc.controller.scheduler.raidb1.RAIDb1OptimisticQueryLevelScheduler.commitTransaction long  transactionId  )  [protected, virtual]
 

See also:
org.objectweb.cjdbc.controller.scheduler.AbstractScheduler.commitTransaction(long)

Implements org.objectweb.cjdbc.controller.scheduler.AbstractScheduler.

Definition at line 132 of file RAIDb1OptimisticQueryLevelScheduler.java.

00133   {
00134     completedWrites.remove(new Long(transactionId));
00135   }

String org.objectweb.cjdbc.controller.scheduler.raidb1.RAIDb1OptimisticQueryLevelScheduler.getXmlImpl  )  [virtual]
 

See also:
org.objectweb.cjdbc.controller.scheduler.AbstractScheduler#getXmlImpl()

Implements org.objectweb.cjdbc.controller.scheduler.AbstractScheduler.

Definition at line 152 of file RAIDb1OptimisticQueryLevelScheduler.java.

00153   {
00154     return "<" + DatabasesXmlTags.ELT_RAIDb1Scheduler + " "
00155         + DatabasesXmlTags.ATT_level + "=\""
00156         + DatabasesXmlTags.VAL_optimisticQuery + "\"/>";
00157   }

final synchronized void org.objectweb.cjdbc.controller.scheduler.raidb1.RAIDb1OptimisticQueryLevelScheduler.notifyWriteCompleted AbstractWriteRequest  request  )  [virtual]
 

See also:
org.objectweb.cjdbc.controller.scheduler.AbstractScheduler.notifyWriteCompleted(AbstractWriteRequest)

Implements org.objectweb.cjdbc.controller.scheduler.AbstractScheduler.

Definition at line 118 of file RAIDb1OptimisticQueryLevelScheduler.java.

References org.objectweb.cjdbc.common.sql.AbstractRequest.getTransactionId(), and org.objectweb.cjdbc.common.sql.AbstractRequest.isAutoCommit.

00120   {
00121     if (!request.isAutoCommit())
00122       completedWrites.add(new Long(request.getTransactionId()));
00123   }

final void org.objectweb.cjdbc.controller.scheduler.raidb1.RAIDb1OptimisticQueryLevelScheduler.readCompletedNotify SelectRequest  request  )  [virtual]
 

See also:
org.objectweb.cjdbc.controller.scheduler.AbstractScheduler.readCompletedNotify(SelectRequest)

Implements org.objectweb.cjdbc.controller.scheduler.AbstractScheduler.

Definition at line 94 of file RAIDb1OptimisticQueryLevelScheduler.java.

00095   {
00096   }

final void org.objectweb.cjdbc.controller.scheduler.raidb1.RAIDb1OptimisticQueryLevelScheduler.rollbackTransaction long  transactionId  )  [protected, virtual]
 

See also:
org.objectweb.cjdbc.controller.scheduler.AbstractScheduler.rollbackTransaction(long)

Implements org.objectweb.cjdbc.controller.scheduler.AbstractScheduler.

Definition at line 140 of file RAIDb1OptimisticQueryLevelScheduler.java.

00141   {
00142     completedWrites.remove(new Long(transactionId));
00143   }

synchronized void org.objectweb.cjdbc.controller.scheduler.raidb1.RAIDb1OptimisticQueryLevelScheduler.scheduleNonSuspendedWriteRequest AbstractWriteRequest  request  )  throws SQLException [virtual]
 

Additionally to scheduling the request, this method replaces the SQL Date macros such as now() with the current date.

See also:
org.objectweb.cjdbc.controller.scheduler.AbstractScheduler.scheduleWriteRequest(AbstractWriteRequest)

Implements org.objectweb.cjdbc.controller.scheduler.AbstractScheduler.

Definition at line 104 of file RAIDb1OptimisticQueryLevelScheduler.java.

00106   {
00107     request.setId(requestId++);
00108     //    if (request.isAutoCommit())
00109     //      request.setBlocking(true);
00110     //    else
00111     request.setBlocking(completedWrites.contains(new Long(request
00112         .getTransactionId())));
00113   }

synchronized void org.objectweb.cjdbc.controller.scheduler.raidb1.RAIDb1OptimisticQueryLevelScheduler.scheduleReadRequest SelectRequest  request  )  throws SQLException [virtual]
 

Additionally to scheduling the request, this method replaces the SQL Date macros such as now() with the current date.

See also:
org.objectweb.cjdbc.controller.scheduler.AbstractScheduler.scheduleReadRequest(SelectRequest)

Implements org.objectweb.cjdbc.controller.scheduler.AbstractScheduler.

Definition at line 85 of file RAIDb1OptimisticQueryLevelScheduler.java.

00087   {
00088     request.setId(requestId++);
00089   }


The documentation for this class was generated from the following file:
Generated on Mon Apr 11 22:04:33 2005 for C-JDBC by  doxygen 1.3.9.1