diff options
author | huangming <huangminghuang@users.noreply.github.com> | 2003-11-14 05:04:11 +0000 |
---|---|---|
committer | huangming <huangminghuang@users.noreply.github.com> | 2003-11-14 05:04:11 +0000 |
commit | 8b602fc73332de8e917957ebd7cf15254de220fd (patch) | |
tree | 3955305ff8a25fb27d90755919e15f69252dd634 | |
parent | 3b9b2c00694173f65ce0eb1f65750d1b2ac0dbb3 (diff) | |
download | ATCD-8b602fc73332de8e917957ebd7cf15254de220fd.tar.gz |
*** empty log message ***
-rw-r--r-- | TAO/orbsvcs/FTRT_Event_Service/Event_Service/svc.conf | 4 | ||||
-rwxr-xr-x | TAO/orbsvcs/FTRT_Event_Service/ftec | 5 | ||||
-rwxr-xr-x | TAO/orbsvcs/FTRT_Event_Service/run_tests | 19 | ||||
-rwxr-xr-x | TAO/orbsvcs/FTRT_Event_Service/supplier | 8 | ||||
-rwxr-xr-x | TAO/orbsvcs/FTRT_Event_Service/test.pl | 205 |
5 files changed, 230 insertions, 11 deletions
diff --git a/TAO/orbsvcs/FTRT_Event_Service/Event_Service/svc.conf b/TAO/orbsvcs/FTRT_Event_Service/Event_Service/svc.conf index 17db748017e..c6542e265a8 100644 --- a/TAO/orbsvcs/FTRT_Event_Service/Event_Service/svc.conf +++ b/TAO/orbsvcs/FTRT_Event_Service/Event_Service/svc.conf @@ -1,5 +1,7 @@ ## $Id$ +static Client_Strategy_Factory "-ORBClientConnectionHandler RW" + ## The value of FTEC_DETECTOR_TRANSPORT_PROTOCL should be either "sctp" or "tcp". ## The FTEC_HEART_BEAT is only meanful for stcp. It represents the heart beat in ## seconds for the connections between replicas. @@ -17,4 +19,4 @@ static FTRTEC_Replication "$FTEC_REPLICATION_STRATEGY -Threads $FTEC_NUM_THREADS ## draft-leach-uuids-guids-01.txt. This value should be the same ## for the entire object group. -static FTRTEC_Identification "-Name $FTEC_EVENT_SERVICE_NAME -Object_ID $FTEC_OBJECT_ID"
\ No newline at end of file +static FTRTEC_Identification "-Name $FTEC_EVENT_SERVICE_NAME -Object_ID $FTEC_OBJECT_ID" diff --git a/TAO/orbsvcs/FTRT_Event_Service/ftec b/TAO/orbsvcs/FTRT_Event_Service/ftec index 5d2f5127cb3..771077209f7 100755 --- a/TAO/orbsvcs/FTRT_Event_Service/ftec +++ b/TAO/orbsvcs/FTRT_Event_Service/ftec @@ -13,13 +13,10 @@ do export FTEC_HEART_BEAT=$2 shift;; -ami) export FTEC_REPLCATION_STRATEGY=AMI;; - -p) ARGS="$ARGS -p";; - -j) ARGS="$ARGS -j";; -ns) ORBNameServicePort=${ORBNameServicePort=10000} export NameServiceIOR=${NameServiceIOR=corbaloc:iiop:$2:$ORBNameServicePort/NameService} shift;; - -d) ARGS="$ARGS -d $2" - shift;; + *) ARGS="$ARGS $1";; esac shift done diff --git a/TAO/orbsvcs/FTRT_Event_Service/run_tests b/TAO/orbsvcs/FTRT_Event_Service/run_tests new file mode 100755 index 00000000000..34e1f2ce4db --- /dev/null +++ b/TAO/orbsvcs/FTRT_Event_Service/run_tests @@ -0,0 +1,19 @@ +#!/bin/sh + +for num_ecs in 5 +do + for num_suppliers in 1 + do + for num_consumers in 1 2 3 4 5 + do + for transaction_depth in 1 2 3 4 5 + do + PARAM="-num_ecs $num_ecs -num_suppliers $num_suppliers -num_consumers $num_consumers -transaction_depth $transaction_depth -iteration 10" + echo $PARAM + ./test.pl $PARAM + echo with AMI + ./test.pl $PARAM -AMI + done + done + done +done diff --git a/TAO/orbsvcs/FTRT_Event_Service/supplier b/TAO/orbsvcs/FTRT_Event_Service/supplier index 5cca0b01d8b..b4fa054860c 100755 --- a/TAO/orbsvcs/FTRT_Event_Service/supplier +++ b/TAO/orbsvcs/FTRT_Event_Service/supplier @@ -12,15 +12,11 @@ do EndpointParam="$EndpointParam -ORBEndpoint sciop://";; -td) FTEC_TransactionDepth=$2 shift;; - -d) EndpointParam="$EndpointParam -d $2" - shift;; - -k) EndpointParam="$EndpointParam -k $2" - shift;; - -n) EndpointParam="$EndpointParam -n";; + *) EndpointParam="$EndpointParam $1";; esac shift done cd $TAO_ROOT/orbsvcs/tests/FtRtEvent export FTEC_TransactionDepth -./supplier $EndpointParam $* +./supplier $EndpointParam diff --git a/TAO/orbsvcs/FTRT_Event_Service/test.pl b/TAO/orbsvcs/FTRT_Event_Service/test.pl new file mode 100755 index 00000000000..082aeb5c2cc --- /dev/null +++ b/TAO/orbsvcs/FTRT_Event_Service/test.pl @@ -0,0 +1,205 @@ +#!/usr/bin/perla + +#$Id$ + +use strict; +use lib '../../../bin'; +use PerlACE::Run_Test; +use Proc::Background; + +my $HOSTNAME=`hostname`; + +my $client_args; +my $NameServicePort=$ENV{"ORBNameServicePort"}; +my $result_dir="R"; +my $iterations=100; +my $num_ecs; +my $num_consumers; +my $num_suppliers; +my $transaction_depth; +my $is_AMI="NO"; +my $heartbeat="NA"; +my $ns_args; + +$NameServicePort = 10000 unless defined($NameServicePort); +$ENV{"ORBNameServicePort"} = $NameServicePort; + +while (defined($ARGV[0])) +{ + $_=$ARGV[0]; + if (/-num_ecs/) { + $num_ecs=$ARGV[1]; + $result_dir .= "_ES$num_ecs"; + shift(@ARGV); + } + elsif (/-num_suppliers/) { + $num_suppliers=$ARGV[1]; + $result_dir .= "_NS$num_suppliers"; + shift(@ARGV); + } + elsif (/-num_consumers/) { + $num_consumers=$ARGV[1]; + $result_dir .= "_NC$num_consumers"; + shift(@ARGV); + } + elsif (/-transaction_depth/) { + $transaction_depth=$ARGV[1]; + $ENV{"FTEC_TransactionDepth"}=$ARGV[1]; + $result_dir .= "_TD$ARGV[1]"; + shift(@ARGV); + } + elsif (/-AMI/) { + $is_AMI="YES"; + $ENV{"FTEC_REPLCATION_STRATEGY"}="AMI"; + $result_dir .= "_AMI"; + } + elsif (/-hb/) { + $heartbeat=$ARGV[1]; + $ENV{"FTEC_DETECTOR_TRANSPORT_PROTOCOL"}="sctp"; + $ENV{"FTEC_HEART_BEAT"}=$ARGV[1]; + $ns_args = "-ORBEndPoint sciop://$HOSTNAME:$NameServicePort"; + $client_args .= " -ORBEndpoint sciop:// "; + $result_dir .= "_HB$ARGV[1]"; + shift(@ARGV); + } + elsif (/-iteration/) { + $iterations=$ARGV[1]; + shift(@ARGV); + } + shift(@ARGV) +} + +mkdir $result_dir unless -d $result_dir; +my $TAO_ROOT=$ENV{"TAO_ROOT"}; + +my $ns_ior="$TAO_ROOT/orbsvcs/FTRT_Event_Service/$result_dir/ns.ior"; +unlink ($ns_ior) if -e $ns_ior; +chdir "$TAO_ROOT/orbsvcs/Naming_Service"; +$ns_args .= " -o $ns_ior"; +my $NS = new PerlACE::Process ("Naming_Service", "$ns_args"); + +$NS->Spawn (); + +if (PerlACE::waitforfile_timed ("$ns_ior", 5) == -1) { + print STDERR "ERROR: cannot find file <$ns_ior>\n"; + $NS->Kill (); + exit 1; +} + +$client_args .= " -ORBInitRef NameService=file://$ns_ior"; + +#starting the primary +my @ECS; +my $FILE_PATH="$TAO_ROOT/orbsvcs/FTRT_Event_Service/$result_dir"; + +chdir "$TAO_ROOT/orbsvcs/FTRT_Event_Service/Event_Service"; +#$ECS[0]=Proc::Background->new("./ftrt_eventservice $client_args -p -d 3 2>&1 | tee $FILE_PATH/ec0.txt") +$ECS[0]=Proc::Background->new("./ftrt_eventservice $client_args -p") + || die "Cannot start Primary\n"; +print "Primary Started\n"; + +sleep 5; + +#starting backups +my $i; +for ($i=1; $i< $num_ecs; ++$i) { +# $ECS[$i]=Proc::Background->new("./ftrt_eventservice $client_args -j -d 3 2>&1 | tee $FILE_PATH/ec$i.txt") + $ECS[$i]=Proc::Background->new("./ftrt_eventservice $client_args -j") + || die "Cannot start backup $i"; + print "backup $i started\n"; + sleep 10; +} + +chdir "$TAO_ROOT/orbsvcs/tests/FtRtEvent"; + +#starting consumers + +my @CONSUMERS; + +for ($i=0 ; $i < $num_consumers ; ++$i){ + my $FILENAME="$FILE_PATH/c$i.txt"; + $CONSUMERS[$i] = Proc::Background->new("./consumer $client_args -k $iterations > $FILENAME 2>&1"); + print "consumer $i started\n"; +} + +#starting suppliers + +my @SUPPLIERS; +for ($i=0 ; $i < $num_suppliers ; ++$i){ + my $FILENAME="$FILE_PATH/s$i.txt"; + $SUPPLIERS[$i] = Proc::Background->new("./supplier $client_args -k $iterations -d 1 2>&1 | tee $FILENAME"); + print "supplier $i started\n"; +} + +for ($i=0 ; $i < $num_consumers ; ++$i){ + $CONSUMERS[$i]->wait; +} + +for ($i=1; $i< @ECS; ++$i) { + $ECS[$i]->die; +} + +$NS->TerminateWaitKill(0); + +my @supplier_subscription; + +chdir "$FILE_PATH"; +foreach (<s*.txt>) { + open (LINE, $_); + while (<LINE>) { + /latency = (\d+)/ && push(@supplier_subscription, $1); + } +} + +my @consumer_subscription; +my @event_time; + +foreach(<c*.txt>) { + open (LINE, $_); + while (<LINE>) { + /latency = (\d+)/ && push(@consumer_subscription, $1); + /single trip time = (\d+)/ && push(@event_time, $1); + } +} + + +my $sl = mean(@supplier_subscription); +my $cl = mean(@consumer_subscription); +my $em = mean(@event_time); +my $dev_em = dev(@event_time); + + +chdir "$TAO_ROOT/orbsvcs/FTRT_Event_Service"; + +open(RESULT, ">>$TAO_ROOT/orbsvcs/FTRT_Event_Service/result.txt") or die "cannot open result.txt"; + +write (RESULT); + + +format RESULT = + @>> @>> @>> @>> @>>> @>> @>>>>>>>>>> @>>>>>>>>> @>>>>>>>>> @######.### +$num_ecs, $num_suppliers, $num_consumers, $transaction_depth, $is_AMI, $heartbeat, $sl, $cl, $em, $dev_em +. + +sub mean { + my $count = @_; + my $sum=0; + my $value; + foreach $value (@_) { + $sum += $value; + } + return $sum/$count; +} + +sub dev { + my $count = @_; + my $result=0; + my $average=mean(@_); + my $value; + foreach $value (@_) { + my $tmp = $value-$average; + $result += $tmp*$tmp; + } + + return sqrt($result)/$count; +} |