fixed some bugs
[IRC.git] / Robust / TransSim / TransSim.java
1 public class TransSim {
2   public static void main(String[] args) {
3     int numThreads=32;
4     int numTrans=100;
5     int deltaTrans=0;
6     int numObjects=500;
7     int numAccesses=20;
8     int deltaAccesses=5;
9     int readPercent=30;
10     //time for operation
11     int delay=20;
12     int deltaDelay=4;
13     //time between transactions
14     int nonTrans=20;
15     int deltaNonTrans=4;
16
17     long tlazy=0, tcommit=0, tattack=0, tpolite=0, tkarma=0;
18     for(int i=0;i<100;i++) {
19       Executor e=new Executor(numThreads, numTrans, deltaTrans, numObjects, numAccesses, deltaAccesses, readPercent, delay, deltaDelay, nonTrans, deltaNonTrans);
20       System.out.println(e.maxTime());
21       FlexScheduler ls=new FlexScheduler(e, FlexScheduler.LAZY);
22       ls.dosim();
23       System.out.println("Lazy Time="+ls.getTime());
24       System.out.println("Aborts="+ls.getAborts()+" Commit="+ls.getCommits());
25       int besttime=ls.getTime();
26       tlazy+=ls.getTime();
27
28       //Kill others at commit
29       ls=new FlexScheduler(e, FlexScheduler.COMMIT);
30       ls.dosim();
31       System.out.println("Fast Abort="+ls.getTime());
32       System.out.println("Aborts="+ls.getAborts()+" Commit="+ls.getCommits());
33       if (ls.getTime()<besttime)
34         besttime=ls.getTime();
35       tcommit+=ls.getTime();
36       
37       //Eager attack
38       ls=new FlexScheduler(e, FlexScheduler.ATTACK);
39       ls.dosim();
40       System.out.println("Attack Abort="+ls.getTime());
41       System.out.println("Aborts="+ls.getAborts()+" Commit="+ls.getCommits());
42       if (ls.getTime()<besttime)
43         besttime=ls.getTime();
44       tattack+=ls.getTime();      
45
46       //Eager polite
47       ls=new FlexScheduler(e, FlexScheduler.POLITE);
48       ls.dosim();
49       System.out.println("Polite Abort="+ls.getTime());
50       System.out.println("Aborts="+ls.getAborts()+" Commit="+ls.getCommits());
51       if (ls.getTime()<besttime)
52         besttime=ls.getTime();
53       tpolite+=ls.getTime();      
54
55       //Karma
56       ls=new FlexScheduler(e, FlexScheduler.KARMA);
57       ls.dosim();
58       System.out.println("Karma Abort="+ls.getTime());
59       System.out.println("Aborts="+ls.getAborts()+" Commit="+ls.getCommits());
60       if (ls.getTime()<besttime)
61         besttime=ls.getTime();
62       tkarma+=ls.getTime();
63       //    Scheduler s=new Scheduler(e, besttime);
64       //s.dosim();
65       //System.out.println("Optimal Time="+s.getTime());
66     }
67     System.out.println("lazy="+tlazy);
68     System.out.println("commit="+tcommit);
69     System.out.println("attack="+tattack);
70     System.out.println("polite="+tpolite);
71     System.out.println("karma="+tkarma);
72   }
73 }