*** empty log message ***
authornavid <navid>
Wed, 11 Feb 2009 22:02:18 +0000 (22:02 +0000)
committernavid <navid>
Wed, 11 Feb 2009 22:02:18 +0000 (22:02 +0000)
Robust/Transactions/dstm2/src/dstm2/Defaults.java
Robust/Transactions/dstm2/src/dstm2/Init.java
Robust/Transactions/dstm2/src/dstm2/Thread.java
Robust/Transactions/dstm2/src/dstm2/manager/AggressiveManager.java

index 1295e01797c48bf3087968a93025ce8b2e08ea45..453ba83e8bdd152f315397d7320dcfb6c719ae37 100644 (file)
@@ -52,7 +52,8 @@ public class Defaults {
   /**
    * fully-qualified contention manager name
    **/
-  public static final String MANAGER = "dstm2.manager.SpecialManager";
+  public static final String MANAGER = "dstm2.manager.AggressiveManager";
+  //public static final String MANAGER = "dstm2.manager.SpecialManager";
   /**
    * fully-qualified factory name
    **/
index b7a8791625a5f04067520562ea2f3aa7bb3899d5..57f97dc2704b005a22dd85af4fa01e756c063ca4 100644 (file)
@@ -12,7 +12,7 @@ package dstm2;
 public class Init {
 
     public static void init(){
-        String managerClassName = Defaults.MANAGER;
+        String managerClassName = "dstm2.manager.AggressiveManager";
         Class managerClass = null;
         String adapterClassName = Defaults.ADAPTER;
     
@@ -22,7 +22,8 @@ public class Init {
     
     // Initialize contention manager.
     try {
-      managerClass = Class.forName(Defaults.MANAGER);
+      managerClass = Class.forName(managerClassName);
+      System.out.println("manage r" + managerClass);
       Thread.setContentionManagerClass(managerClass);
     } catch (ClassNotFoundException ex) {
       
index 63f2193544ea7eaac2513f5628e78e6c25229d86..99cae520e00426711a4c4ccf4cd9e98eef53f1e2 100644 (file)
@@ -259,6 +259,7 @@ public class Thread extends java.lang.Thread{
       //  System.out.println(Thread.currentThread() + " even more offically started the transaction");
        ////////////////////////////////////// 
         try {
+            
           result = xaction.call();
         //  System.out.println(Thread.currentThread() + " starting2");
       //     System.out.println(Thread.currentThread() + " aborted in committing");
@@ -274,18 +275,19 @@ public class Thread extends java.lang.Thread{
       //    e.printStackTrace();
        //   throw new PanicException("Unhandled exception " + e);
        // }
+         
             threadState.totalMemRefs += threadState.transaction.memRefs;
             threadState.transaction.attempts++;
-     
+              
             Wrapper.prepareIOCommit();
-
+         
         ///////////////////////////////
         
                 if (threadState.commitTransaction()) {
                     threadState.committedMemRefs += threadState.transaction.memRefs;
                     
                     
-                    Wrapper.realseOffsets();
+                   //Wrapper.realseOffsets();
                     
                     Wrapper.commitIO();
                     flag = true;
@@ -293,7 +295,9 @@ public class Thread extends java.lang.Thread{
         }
         catch(AbortedException ex){
             threadState.depth--;
-            //System.out.println(Thread.currentThread() + " aborted");
+            
+            System.out.println(Thread.currentThread() + " aborted");
+            ex.printStackTrace();
            // Wrapper.getTransaction().unlockAllLocks();
         }
         catch (Exception e) {
@@ -315,7 +319,7 @@ public class Thread extends java.lang.Thread{
           ///              
             }
             if  (flag == true){
-               // System.out.println(Thread.currentThread() + " committed");
+               System.out.println(Thread.currentThread() + " committed");
                 break;
             }
         }
index c199b5e3c7da6257fe43030a5c6e33a3663efb91..a326c300cfe3463cba898878812118d7f8a152bc 100644 (file)
@@ -35,6 +35,7 @@ package dstm2.manager;
 import dstm2.util.Random;
 import dstm2.ContentionManager;
 import dstm2.Transaction;
+import java.util.Collection;
 
 /**
  * The Chuck Norris contention manager:  always abort other transaction.
@@ -48,6 +49,13 @@ public class AggressiveManager extends BaseManager {
       other.abort();   
   }
   
+    @Override
+  public void resolveConflict(Transaction me, Collection<Transaction> others) {
+      for (Transaction other: others)
+        other.abort(); 
+  }
+  
+  
   public long getPriority() {
     throw new UnsupportedOperationException();
   }