*** empty log message ***
[IRC.git] / Robust / Transactions / TransactionalIOSrc / benchmarks / Main.java
1 /*
2  * To change this template, choose Tools | Templates
3  * and open the template in the editor.
4  */
5
6 package TransactionalIO.benchmarks;
7
8 import TransactionalIO.core.CustomThread;
9 import TransactionalIO.core.ExtendedTransaction;
10 import TransactionalIO.core.TransactionalFile;
11 import java.io.File;
12 import java.util.Iterator;
13 import java.util.TreeMap;
14 import java.util.logging.Level;
15 import java.util.logging.Logger;
16
17 /**
18  *
19  * @author navid
20  */
21 public class Main {
22
23     public static void main(String args[]){
24         try {
25         //    benchmark.init();
26           
27             
28         // for (int i=0; i<100; i++){
29             benchmark.init();
30             //System.out.println(
31             long starttime = System.nanoTime();
32            /* thread1 tr1 = new thread1();
33             thread2 tr2 = new thread2();
34             thread3 tr3 = new thread3();
35             thread4 tr4 = new thread4();*/
36             /*TransactionalIO tr2 = new TransactionalIO();
37             TransactionalIO tr3 = new TransactionalIO();
38             CustomThread ct1 = new CustomThread(tr1);
39             CustomThread ct2 = new CustomThread(tr2);*/
40            
41           /*  CustomThread ct1 = new CustomThread(new thread1('a', new TransactionalFile("/home/navid/output.text", "rw")));
42             CustomThread ct2 = new CustomThread(new thread1('b', new TransactionalFile("/home/navid/output.text", "rw")));
43             CustomThread ct3 = new CustomThread(new thread1('c', new TransactionalFile("/home/navid/output.text", "rw")));
44             CustomThread ct4= new CustomThread(new thread1('d', new TransactionalFile("/home/navid/output.text", "rw")));
45             CustomThread ct5 = new CustomThread(new thread1('e', new TransactionalFile("/home/navid/output.text", "rw")));
46             CustomThread ct6 = new CustomThread(new thread1('f', new TransactionalFile("/home/navid/output.text", "rw")));
47             CustomThread ct7 = new CustomThread(new thread1('g', new TransactionalFile("/home/navid/output.text", "rw")));
48             CustomThread ct8 = new CustomThread(new thread1('h', new TransactionalFile("/home/navid/output.text", "rw")));
49             CustomThread ct9 = new CustomThread(new thread1('i',new TransactionalFile("/home/navid/output.text", "rw")));
50             CustomThread ct10 = new CustomThread(new thread1('j', new TransactionalFile("/home/navid/output.text", "rw")));
51             CustomThread ct11 = new CustomThread(new thread1('k', new TransactionalFile("/home/navid/output.text", "rw")));
52             CustomThread ct12 = new CustomThread(new thread1('l', new TransactionalFile("/home/navid/output.text", "rw")));
53             CustomThread ct13 = new CustomThread(new thread1('m', new TransactionalFile("/home/navid/output.text", "rw")));
54             CustomThread ct14 = new CustomThread(new thread1('n', new TransactionalFile("/home/navid/output.text", "rw")));
55             
56             CustomThread ct15 = new CustomThread(new thread1('o', new TransactionalFile("/home/navid/output.text", "rw")));
57             CustomThread ct16 = new CustomThread(new thread1('p', new TransactionalFile("/home/navid/output.text", "rw")));
58             CustomThread ct17 = new CustomThread(new thread1('q', new TransactionalFile("/home/navid/output.text", "rw")));
59             CustomThread ct18 = new CustomThread(new thread1('r', new TransactionalFile("/home/navid/output.text", "rw")));
60              
61            // CustomThread ct15 = new CustomThread(tr2);
62             CustomThread ct19 = new CustomThread(new thread1('s', new TransactionalFile("/home/navid/output.text", "rw")));
63             CustomThread ct20 = new CustomThread(new thread1('t', new TransactionalFile("/home/navid/output.text", "rw")));*/
64             
65             
66             CustomThread ct1 = new CustomThread(new thread1('a'));
67             CustomThread ct2 = new CustomThread(new thread1('b'));
68             CustomThread ct3 = new CustomThread(new thread1('c'));
69             CustomThread ct4= new CustomThread(new thread1('d'));
70             CustomThread ct5 = new CustomThread(new thread1('e'));
71             CustomThread ct6 = new CustomThread(new thread1('f'));
72             CustomThread ct7 = new CustomThread(new thread1('g'));
73             CustomThread ct8 = new CustomThread(new thread1('h'));
74             CustomThread ct9 = new CustomThread(new thread1('i'));
75             CustomThread ct10 = new CustomThread(new thread1('j'));
76             CustomThread ct11 = new CustomThread(new thread1('k'));
77             CustomThread ct12 = new CustomThread(new thread1('l'));
78             CustomThread ct13 = new CustomThread(new thread1('m'));
79             CustomThread ct14 = new CustomThread(new thread1('n'));
80             
81             CustomThread ct15 = new CustomThread(new thread1('o'));
82             CustomThread ct16 = new CustomThread(new thread1('p'));
83             CustomThread ct17 = new CustomThread(new thread1('q'));
84             CustomThread ct18 = new CustomThread(new thread1('r'));
85              
86            // CustomThread ct15 = new CustomThread(tr2);
87             CustomThread ct19 = new CustomThread(new thread1('s'));
88             CustomThread ct20 = new CustomThread(new thread1('t'));
89             
90            
91             //CustomThread ct4 = new CustomThread(tr3);
92             
93             // CustomThread ct5 = new CustomThread(tr4);
94             // CustomThread ct6 = new CustomThread(tr2); 
95               
96            //  CustomThread ct4 = new CustomThread(tr2);
97             ct1.runner.join();
98             ct2.runner.join();
99             ct3.runner.join();
100             ct4.runner.join();
101             ct5.runner.join();
102             ct6.runner.join();
103             ct7.runner.join();
104             ct8.runner.join();
105             ct9.runner.join(); 
106             ct10.runner.join();
107             ct11.runner.join(); 
108             ct12.runner.join();
109             ct13.runner.join();
110             ct14.runner.join();
111             
112             
113           
114             ct15.runner.join();
115             ct16.runner.join();
116             ct17.runner.join();
117             ct18.runner.join(); 
118             ct19.runner.join();
119             
120             ct20.runner.join();
121             
122             long endttime = System.nanoTime();
123            // System.out.println(endttime - starttime);
124             System.out.println((endttime - starttime)/1000000);
125             //}
126           /*  TreeMap msgs = new TreeMap();
127             Iterator it = benchmark.transacctions.iterator();
128             while(it.hasNext()){
129                 ExtendedTransaction tr = (ExtendedTransaction) it.next();
130                 msgs.putAll(tr.msg);
131             }
132             
133             Iterator it2 = msgs.keySet().iterator();
134             while(it2.hasNext()){
135                  Long time = (Long) it2.next();
136                  System.out.print(time +" " + msgs.get(time));
137             }*/
138             int index =97;
139             for (int j = 0; j < 26; j++) {
140                 ((TransactionalFile)(benchmark.m.get(String.valueOf((char) (index+j))))).close();
141             }
142       //  }
143               
144             //System.out.println(Thread.currentThread().getName());
145        } catch (InterruptedException ex) {
146             Logger.getLogger(Main.class.getName()).log(Level.SEVERE, null, ex);
147         }
148         //System.out.println(Thread.currentThread().getName());
149     
150         
151     }
152 }