--- /dev/null
+#!/bin/bash
+source utils.sh
+#Mserver and killall must be in /etc/sudoers
+function kmonet() {
+ sudo killall -TERM Mserver
+ sleep 2
+ sudo killall -9 Mserver
+}
+trap kmonet INT TERM
+
+function do_monet(){
+ while pidof Mserver >/dev/null
+ do
+
+ sudo killall -TERM Mserver
+ sleep 3
+ done
+
+ while ! pidof Mserver >/dev/null
+ do
+ sudo /usr/local/bin/alarm 600 22000000 Mserver --dbinit="module(pathfinder);" >/dev/null 2>&1 &
+ sleep 3
+ done
+ sync
+
+ query="$1"
+ doc="$2"
+ repeat="$3"
+ TIME_MAT=""
+ TIME_COUNT=""
+ TIME_PRINT=""
+ NUM_RESULTS=""
+ for i in `seq 1 "$repeat"`
+ do
+ {
+ read foo
+ read foo
+ read num
+ read foo
+ read foo
+ read tquery
+ read foo
+ read foo
+ } < <(echo "fn:count(fn:doc(\"$doc\")$query)
+" | mclient -t --interactive 2>&1 | grep -o '[0-9.]*' )
+
+ TIME_COUNT="$TIME_COUNT
+$tquery"
+
+ NUM_RESULTS="$num"
+ done
+
+ if [ -z "$4" ]
+ then
+ for i in `seq 1 "$repeat"`
+ do
+ {
+ read foo
+ read foo
+ read tquery
+ read tprint
+ read foo
+ } < <(echo "\>/dev/null
+fn:doc(\"$doc\")$query
+" | mclient -t --interactive 2>&1 | grep -o '[0-9.]*' )
+
+ TIME_MAT="$TIME_MAT
+$tquery"
+
+ TIME_PRINT="$TIME_PRINT
+$tprint"
+
+ done
+ else
+ TIME_MAT="999999"
+ TIME_PRINT="0"
+ fi
+ while pidof Mserver >/dev/null
+ do
+
+ sudo killall -TERM Mserver
+ sleep 3
+ done
+
+ echo "$TIME_COUNT" | tail -n +2 | average
+ echo "$TIME_MAT" | tail -n +2 | average
+ echo "$TIME_PRINT" | tail -n +2 | average
+ echo $NUM_RESULTS
+}
+
+do_monet "$@"