updates to simulator
[IRC.git] / Robust / TransSim / FileSim.java
1 public class FileSim {
2   public static void main(String[] args) throws Exception {
3     //time between transactions
4     //split objects
5     int splitobjects=100;//10 percent of objects special
6     int splitaccesses=100;//40 percent of accesses to special objects
7     int abortThreshold=0; //need 4 aborts to declare risky
8     int abortRatio=0;//need 40% aborts vs commits to declare risky
9     int deadlockdepth=10;
10
11     String filename=args[0];
12     Executor e=new Executor(filename);
13     System.out.println(e.maxTime());
14     FlexScheduler ls=new FlexScheduler(e, FlexScheduler.LAZY, null);
15     ls.start();
16
17     
18     
19     //Kill others at commit
20     FlexScheduler ls4=new FlexScheduler(e, FlexScheduler.COMMIT, null);
21     ls4.start();
22
23     
24     //Eager attack
25     FlexScheduler ls5=new FlexScheduler(e, FlexScheduler.ATTACK, null);
26     ls5.start();
27
28     
29     //Eager polite
30     FlexScheduler ls6=new FlexScheduler(e, FlexScheduler.POLITE, null);
31     ls6.start();
32
33     
34     //Karma
35     FlexScheduler ls7=new FlexScheduler(e, FlexScheduler.KARMA, null);
36     ls7.start();
37
38
39     ls.join();
40     System.out.println("Lazy Time="+ls.getTime());
41     System.out.println("Aborts="+ls.getAborts()+" Commit="+ls.getCommits());
42
43     ls4.join();
44     System.out.println("Fast Abort="+ls4.getTime());
45     System.out.println("Aborts="+ls4.getAborts()+" Commit="+ls4.getCommits());
46
47     ls5.join();
48     System.out.println("Attack Abort="+ls5.getTime());
49     System.out.println("Aborts="+ls5.getAborts()+" Commit="+ls5.getCommits());
50
51     ls6.join();
52     System.out.println("Polite Abort="+ls6.getTime());
53     System.out.println("Aborts="+ls6.getAborts()+" Commit="+ls6.getCommits());
54
55     ls7.join();
56     System.out.println("Karma Abort="+ls7.getTime());
57     System.out.println("Aborts="+ls7.getAborts()+" Commit="+ls7.getCommits());
58     ls=null;ls4=null;ls5=null;ls6=null;ls7=null;
59     
60     {
61     //Lock object accesses
62       FlexScheduler ls2=new FlexScheduler(e, FlexScheduler.LOCK, abortThreshold, abortRatio, deadlockdepth, null);
63       ls2.start();
64       ls2.join();
65       System.out.println("Deadlock count="+ls2.getDeadLockCount());
66       System.out.println("Lock Abort="+ls2.getTime());
67       System.out.println("Aborts="+ls2.getAborts()+" Commit="+ls2.getCommits());
68       ls2=null;
69     }
70     {
71       //Lock Commit object accesses
72       FlexScheduler ls3=new FlexScheduler(e, FlexScheduler.LOCKCOMMIT, abortThreshold, abortRatio, deadlockdepth, null);
73       ls3.start();
74       ls3.join();
75       System.out.println("Deadlock count="+ls3.getDeadLockCount());
76       System.out.println("LockCommit Abort="+ls3.getTime());
77       System.out.println("Aborts="+ls3.getAborts()+" Commit="+ls3.getCommits());
78     }
79   }
80 }