2 public static void main(String[] args) {
7 GlobalQuery[] currentWorkList;
9 NUM_THREADS = Integer.parseInt(args[0]);
11 if(args.length == 3) {
12 maxDepth = Integer.parseInt(args[2]);
15 GlobalString firstmachine;
17 int mid[] = new int[NUM_THREADS];
18 /* mid[0] = (128<<24)|(195<<16)|(180<<8)|21; //dc-4
19 mid[1] = (128<<24)|(195<<16)|(180<<8)|24; //dc-5
20 mid[2] = (128<<24)|(195<<16)|(180<<8)|26; //dc-6
22 mid[0] = (128<<24)|(195<<16)|(136<<8)|162; //dc-1
23 mid[1] = (128<<24)|(195<<16)|(136<<8)|163; //dc-2
24 mid[2] = (128<<24)|(195<<16)|(136<<8)|164; //dc-3
25 mid[3] = (128<<24)|(195<<16)|(136<<8)|165; //dc-4
26 // mid[4] = (128<<24)|(195<<16)|(136<<8)|166; //dc-5
27 // mid[5] = (128<<24)|(195<<16)|(136<<8)|167; //dc-6
30 firstmachine = global new GlobalString(args[1]);
32 qt = global new QueryThread[NUM_THREADS];
33 currentWorkList = global new GlobalQuery[NUM_THREADS];
35 GlobalQuery firstquery = global new GlobalQuery(firstmachine);
37 Queue todoList = global new Queue();
38 DistributedHashMap doneList = global new DistributedHashMap(500,500, 0.75f);
39 DistributedHashMap results = global new DistributedHashMap(100,100,0.75f);
41 todoList.push(firstquery);
43 for (i = 0; i < NUM_THREADS; i++) {
44 qt[i] = global new QueryThread(todoList, doneList, results,maxDepth, i,NUM_THREADS,currentWorkList);
47 System.printString("Finished to create Objects\n");
50 for (i = 0; i < NUM_THREADS; i++) {
57 for (i = 0; i < NUM_THREADS; i++) {
65 public static int[] getMID (int num_threads) {
66 int[] mid = new int[num_threads];
68 FileInputStream ifs = new FileInputStream("dstm.conf");
75 for (int i = 0; i < num_threads; i++) {
82 endIndex = str.indexOf('.', fromIndex);
83 sub = str.subString(fromIndex, endIndex);
84 num += (Integer.parseInt(sub) << 24);
86 fromIndex = endIndex + 1;
87 endIndex = str.indexOf('.', fromIndex);
88 sub = str.subString(fromIndex, endIndex);
89 num += (Integer.parseInt(sub) << 16);
91 fromIndex = endIndex + 1;
92 endIndex = str.indexOf('.', fromIndex);
93 sub = str.subString(fromIndex, endIndex);
94 num += (Integer.parseInt(sub) << 8);
96 fromIndex = endIndex + 1;
97 sub = str.subString(fromIndex);
98 num += Integer.parseInt(sub);