-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathstartWF.sh
executable file
·92 lines (71 loc) · 2.41 KB
/
startWF.sh
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
#!/bin/bash
REPO_HOME="$(cd "`dirname "$0"`"/..; pwd)"
WFDIR="$1"
confchiron="$2"
XML="$3"
mysql_root_directory="$4"
sccore="dChiron.jar"
setup="dChironSetup.jar"
sccore="$REPO_HOME/d-chiron/$sccore"
setup="$REPO_HOME/d-chiron/$setup"
lockfileroot="${WFDIR}/.lockrank"
executeChiron() {
lineschiron=`cat $confchiron | egrep -v "#" | egrep "@"`
dbdir="$REPO_HOME/d-chiron/dbcluster"
dbconf="$dbdir/databases.conf"
generatedsql="$dbdir/main-generated.sql"
funcgenerated="$dbdir/functions-generated.sql"
echo "Rebuilding the database for the next execution..."
linesdb=`cat $dbconf | egrep -v "#" | egrep ","`
sqlnode=""
FIRST_MACHINE=""
echo "Lines db: $linesdb"
for i in `echo $linesdb`; do
IFS=',' read -ra ADDR <<< "$i"
sqlnode=${ADDR[1]}
if [ $FIRST_MACHINE="" ]; then
FIRST_MACHINE=$sqlnode
fi
done
echo "ssh $FIRST_MACHINE \" $mysql_root_directory/0/usr/local/mysql/bin/mysql --host=$sqlnode --user=root < $generatedsql \" "
ssh $FIRST_MACHINE "$mysql_root_directory/0/usr/local/mysql/bin/mysql --host=$sqlnode --user=root < $generatedsql "
echo "Created main tables, waiting..."
sleep 20
echo "Creating functions..."
for i in `echo $linesdb`; do
echo "line bd: $i"
IFS=',' read -ra ADDR <<< "$i"
sqlnode=${ADDR[1]}
echo "ssh $FIRST_MACHINE \"$mysql_root_directory/0/usr/local/mysql/bin/mysql --host=$sqlnode --user=root < $funcgenerated \" "
ssh $FIRST_MACHINE "$mysql_root_directory/0/usr/local/mysql/bin/mysql --host=$sqlnode --user=root < $funcgenerated "
sleep 10
done
echo "Created functions."
echo "Creating domain tables"
ssh $FIRST_MACHINE java -jar $setup -i $XML
sleep 30
echo "Starting each machine..."
count=0
for i in `echo $lineschiron`; do
file="${lockfileroot}${count}"
echo "Creating lock file $file"
touch $file;
host=`echo $i | cut -d "@" -f 1`
rank=$count
echo "ssh $host \"killall -9 java 2>/dev/null; java -jar $sccore $XML $rank; rm -rf $file;\" & "
echo "I CHANGED JVM MEMORY ARGUMENTS... PLEASE CHECK THIS FILE (scripts/scc-distributed.sh)"
ssh $host "killall -9 java 2>/dev/null; java -jar -Xms1G -Xmx1G $sccore $XML $rank; rm -rf $file;" &
count=`expr $count + 1`
done
echo "All started."
while [[ true ]] ; do
found=`find ${WFDIR} -maxdepth 1 -type f -wholename "${lockfileroot}[0-9]*" 2>/dev/null`
[[ $found ]] || break
sleep 10
done
sleep 15
}
rm -rf $lockfileroot*
executeChiron
echo ""
echo "Done!!!"