You are viewing a plain text version of this content. The canonical link for it is here.
Posted to slide-dev@jakarta.apache.org by re...@apache.org on 2001/08/30 16:43:49 UTC

cvs commit: jakarta-slide/src/share/org/apache/slide/common SlideToken.java

remm        01/08/30 07:43:49

  Modified:    src/share/org/apache/slide/common SlideToken.java
  Log:
  - Add a new flag in the SlideToken, called 'ForceStoreEnlistment', which can
    be used to tell Slide to always enlist the store on every operation (incl reads).
    Of course, that will have a huge impact on performance, so it is only to be
    used in some critical code sections (where it is very important to avoid
    dirty reads).
  
  Revision  Changes    Path
  1.5       +38 -3     jakarta-slide/src/share/org/apache/slide/common/SlideToken.java
  
  Index: SlideToken.java
  ===================================================================
  RCS file: /home/cvs/jakarta-slide/src/share/org/apache/slide/common/SlideToken.java,v
  retrieving revision 1.4
  retrieving revision 1.5
  diff -u -r1.4 -r1.5
  --- SlideToken.java	2001/05/14 06:42:49	1.4
  +++ SlideToken.java	2001/08/30 14:43:49	1.5
  @@ -1,7 +1,7 @@
   /*
  - * $Header: /home/cvs/jakarta-slide/src/share/org/apache/slide/common/SlideToken.java,v 1.4 2001/05/14 06:42:49 remm Exp $
  - * $Revision: 1.4 $
  - * $Date: 2001/05/14 06:42:49 $
  + * $Header: /home/cvs/jakarta-slide/src/share/org/apache/slide/common/SlideToken.java,v 1.5 2001/08/30 14:43:49 remm Exp $
  + * $Revision: 1.5 $
  + * $Date: 2001/08/30 14:43:49 $
    *
    * ====================================================================
    *
  @@ -133,6 +133,14 @@
       
       
       /**
  +     * Always use a transaction for all operations. That will cause Slide to 
  +     * enlist the store in the current transaction for all operations, 
  +     * to be able to prevent dirty reads when doing complex updates.
  +     */
  +    private boolean forceStoreEnlistment = false;
  +    
  +    
  +    /**
        * Lock tokens.
        */
       private Hashtable lockTokens = new Hashtable();
  @@ -200,6 +208,33 @@
        */
       public void setEnforceLockTokens(boolean enforceLockTokens) {
           this.enforceLockTokens = enforceLockTokens;
  +    }
  +    
  +    
  +    /**
  +     * Force store enlistment flag accessor. If true, that will cause Slide to 
  +     * enlist the store in the current transaction for all operations, 
  +     * to be able to prevent dirty reads when doing complex updates.
  +     * 
  +     * @return boolean
  +     */
  +    public boolean isForceStoreEnlistment() {
  +        return forceStoreEnlistment;
  +    }
  +    
  +    
  +    /**
  +     * Force store enlistment flag mutator. If set to true, that will cause 
  +     * Slide to enlist the store in the current transaction for all 
  +     * operations, to be able to prevent dirty reads when doing complex 
  +     * updates. That value should be set to true only in some very specific
  +     * critical sections of the code, as this would greatly decrease the
  +     * ability of Slide to handle multiple concurrent requests.
  +     * 
  +     * @param forceStoreEnlistment New flag value
  +     */
  +    public void setForceStoreEnlistment(boolean forceStoreEnlistment) {
  +        this.forceStoreEnlistment = forceStoreEnlistment;
       }