Transaction simulation framework. The idea is to basically give us a way to explore...
[IRC.git] / Robust / TransSim / TransSim.java
1 public class TransSim {
2   public static void main(String[] args) {
3     int numThreads=4;
4     int numTrans=8;
5     int deltaTrans=0;
6     int numObjects=10;
7     int numAccesses=4;
8     int deltaAccesses=2;
9     int readPercent=50;
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     Executor e=new Executor(numThreads, numTrans, deltaTrans, numObjects, numAccesses, deltaAccesses, readPercent, delay, deltaDelay, nonTrans, deltaNonTrans);
17     System.out.println(e.maxTime());
18     FlexScheduler ls=new FlexScheduler(e, FlexScheduler.LAZY);
19     ls.dosim();
20     System.out.println("Lazy Time="+ls.getTime());
21     System.out.println("Aborts="+ls.getAborts()+" Commit="+ls.getCommits());
22     int besttime=ls.getTime();
23
24     //Kill others at commit
25     ls=new FlexScheduler(e, FlexScheduler.COMMIT);
26     ls.dosim();
27     System.out.println("Fast Abort="+ls.getTime());
28     System.out.println("Aborts="+ls.getAborts()+" Commit="+ls.getCommits());
29     if (ls.getTime()<besttime)
30       besttime=ls.getTime();
31
32     //Eager attack
33     ls=new FlexScheduler(e, FlexScheduler.ATTACK);
34     ls.dosim();
35     System.out.println("Attack Abort="+ls.getTime());
36     System.out.println("Aborts="+ls.getAborts()+" Commit="+ls.getCommits());
37     if (ls.getTime()<besttime)
38       besttime=ls.getTime();
39
40     //Eager polite
41     ls=new FlexScheduler(e, FlexScheduler.POLITE);
42     ls.dosim();
43     System.out.println("Polite Abort="+ls.getTime());
44     System.out.println("Aborts="+ls.getAborts()+" Commit="+ls.getCommits());
45     if (ls.getTime()<besttime)
46       besttime=ls.getTime();
47     
48     //Karma
49     ls=new FlexScheduler(e, FlexScheduler.KARMA);
50     ls.dosim();
51     System.out.println("Karma Abort="+ls.getTime());
52     System.out.println("Aborts="+ls.getAborts()+" Commit="+ls.getCommits());
53     if (ls.getTime()<besttime)
54       besttime=ls.getTime();
55
56     Scheduler s=new Scheduler(e, besttime);
57     s.dosim();
58     System.out.println("Optimal Time="+s.getTime());
59   }
60 }