head	1.9;
access;
symbols;
locks
	jonh:1.9; strict;
comment	@// @;


1.9
date	2000.04.18.15.19.05;	author jonh;	state Exp;
branches;
next	1.8;

1.8
date	2000.04.10.02.48.17;	author jonh;	state Exp;
branches;
next	1.7;

1.7
date	2000.04.10.00.25.13;	author jonh;	state Exp;
branches;
next	1.6;

1.6
date	2000.04.08.18.22.18;	author jonh;	state Exp;
branches;
next	1.5;

1.5
date	2000.04.06.14.45.18;	author jonh;	state Exp;
branches;
next	1.4;

1.4
date	2000.04.04.20.06.33;	author jonh;	state Exp;
branches;
next	1.3;

1.3
date	2000.03.30.14.00.45;	author jonh;	state Exp;
branches;
next	1.2;

1.2
date	2000.03.24.16.53.33;	author jonh;	state Exp;
branches;
next	1.1;

1.1
date	2000.03.24.14.08.25;	author jonh;	state Exp;
branches;
next	;


desc
@null
@


1.9
log
@null
@
text
@fileLength.var = 'fileLengthNum';
fileLength.axisUnits = 'bytes';
fileLength.axisFactor = 1;
fileLength.slopeUnits = 'MB';
fileLength.slopeFactor = 1/(1024*1024);	% bytes => MB
fileLength.scale = 'log';

requestsPerConnection.var = 'requestsPerConnectionNum';
requestsPerConnection.axisUnits = 'req';
requestsPerConnection.axisFactor = 1;
requestsPerConnection.slopeUnits = 'req';
requestsPerConnection.slopeFactor = 1;
requestsPerConnection.scale = 'linear';

msPerRequest.var = 'timePerRequest';
msPerRequest.units = 'ms';
msPerRequest.factor = 1000;			% sec => ms
msPerRequest.rawSamples = 1;		% need multiple copies of each x value,
									% since we're displaying raw samples.

% msPerRequest.var = 'meanPerRequest';
% msPerRequest.rawSamples = 0;

msPerConn.var = 'timePerConnection';
msPerConn.units = 'ms';
msPerConn.factor = 1000;			% sec => ms
msPerConn.rawSamples = 1;

%%% The Snowflake bandwidth experiment

experiment(1).name = 'Snowflake bandwidth';
experiment(1).nick = 'sfbw_sh';
experiment(1).subex = {
	{'identicalRequests','true','useMacs','true','authenticateServer','false'},
	{'identicalRequests','false','useMacs','true','authenticateServer','false'},
	{'identicalRequests','false','useMacs','false','authenticateServer','false'}};
experiment(1).subnick = {'ident','macs','full'};
experiment(1).range = 650;
experiment(1).ind = fileLength;
experiment(1).dep = msPerRequest;

experiment(2) = experiment(1);

% experiment(1).source = 'timedata/snowflake-shovel-bw';
% experiment(2).source = 'timedata/snowflake-plow-bw';
% experiment(1).source = 'timedata/snowflake-shovel-withsign';
% experiment(2).source = 'timedata/snowflake-plow-close';
% experiment(1).source = 'timedata/snowflake-shovel-withauth';
% experiment(2).source = 'timedata/snowflake-plow-withauth';
experiment(1).source = 'timedata/snowflake-authz-shovel2';
experiment(2).source = 'timedata/snowflake-authz-plow2';

%%% The HTTP bandwidth experiment
experiment(3).name = 'HTTP Bandwidth';
experiment(3).nick = 'httpbw';
experiment(3).source = 'timedata/http-shovel-bw';
experiment(3).subex = { ...
	{'server','apache'}, {'server','simple'}, {'server', 'Jetty'}
	};
experiment(3).range = 150;
experiment(3).ind = fileLength;
experiment(3).dep = msPerRequest;

experiment(4) = experiment(3);
experiment(4).source = 'timedata/http-plow-bw';

%%% The SSL bandwidth experiment
sub_experiments(1).ex = {...
	{'server','apache','cacheContext','true','cacheSessions','true'}, ...
	{'server','apache','cacheContext','true','cacheSessions','false'}, ...
	{'server','apache','cacheContext','false','cacheSessions','false'}, ...
	};
sub_experiments(2).ex = {...
	{'server','simple','cacheContext','true','cacheSessions','true'}, ...
	{'server','simple','cacheContext','true','cacheSessions','false'}, ...
	{'server','simple','cacheContext','false','cacheSessions','false'}, ...
	};
sub_experiments(3).ex = {...
	{'server','Jetty','cacheContext','true','cacheSessions','true'}, ...
	{'server','Jetty','cacheContext','true','cacheSessions','false'}, ...
	{'server','Jetty','cacheContext','false','cacheSessions','false'}, ...
	};

experiment(5).name = 'SSL Bandwidth';
experiment(5).source = 'timedata/ssl-shovel-bw';
experiment(5).subnick = {'cacSes','cacCon','full'};
experiment(5).range = 3500;
experiment(5).ind = fileLength;
experiment(5).dep = msPerRequest;

experiment(6) = experiment(5);
experiment(7) = experiment(5);

experiment(5).subex = sub_experiments(1).ex;
experiment(5).nick = 'sslbw_apache';
experiment(6).subex = sub_experiments(2).ex;
experiment(6).nick = 'sslbw_simple';
experiment(7).subex = sub_experiments(3).ex;
experiment(7).nick = 'sslbw_jetty';

%%% The SSL request time experiment
experiment(8).name = 'SSL Request Time';
experiment(8).nick = 'sslreq';
experiment(8).source = 'timedata/sslreq3-shovel';
experiment(8).subex = {...
	{'server','apache','fileLength','000100'}, ...
	{'server','Jetty', 'fileLength','000100'}, ...
	};
experiment(8).subnick = {'apache','jetty'};
experiment(8).range = 5000;
experiment(8).ind = requestsPerConnection;
experiment(8).dep = msPerConn;

experiment(9) = experiment(8);
experiment(9).source = 'timedata/sslreq3-plow';

% There should be a way to extract from this data the cost of
% a new 0-byte connection. But I didn't spend enough time to figure it out.
% It's kinda linear in two variables (reqPerConn, fileLength)

%%% The HTTP1.1 request time experiment
%%% (How much do you save by reusing a socket?)
experiment(10).name = 'HTTP/1.1 Request Time';
experiment(10).nick = 'httpIIreq';
experiment(10).source = 'timedata/11req-shovel';
experiment(10).subex = experiment(8).subex;
experiment(10).subnick = experiment(8).subnick;
experiment(10).range = 750;
experiment(10).ind = requestsPerConnection;
experiment(10).dep = msPerConn;

experiment(11) = experiment(10);
experiment(11).source = 'timedata/11req-plow';

%%% The SSL context/session setup experiment
experiment(12).name = 'SSL context/session setup';
experiment(12).nick = 'sslsetup';
experiment(12).source = 'timedata/sslsetup2-shovel';
experiment(12).subex = {...
	{'cacheContext','true','cacheSessions','true'}, ...
	{'cacheContext','true','cacheSessions','false'}, ...
	{'cacheContext','false','cacheSessions','false'}, ...
	};
experiment(12).subnick = {'cacSes','cacCon','full'};
experiment(12).range = 2500;
experiment(12).ind = requestsPerConnection;
experiment(12).dep = msPerConn;

%%% re-done SSL bandwidth experiments using HTTP/1.1 consistently
experiment(13).name = 'SSL Bandwidth with HTTP/1.1';
experiment(13).source = 'timedata/sslbw11-shovel';
experiment(13).subnick = experiment(5).subnick;
experiment(13).range = 3500;
experiment(13).ind = fileLength;
experiment(13).dep = msPerRequest;

experiment(14) = experiment(13);
experiment(13).subex = sub_experiments(1).ex;
experiment(13).nick = 'sslIIbw_apache';
experiment(14).subex = sub_experiments(3).ex;
experiment(14).nick = 'sslIIbw_jetty';

experiment(15) = experiment(13);
experiment(15).source = 'timedata/sslbw11-plow';
experiment(15).subex = sub_experiments(1).ex;
experiment(15).nick = 'sslIIbw_apache';

experiment(16) = experiment(15);
experiment(16).subex = sub_experiments(3).ex;
experiment(16).nick = 'sslIIbw_jetty';

% The C client (fastget) experiments
experiment(17).name = 'dumb C (fastget) client, HTTP/1.0';
experiment(17).nick = 'fastgetbw';
experiment(17).source = 'timedata/fastget-shovel-bw';
experiment(17).range = 10;
experiment(17).ind = fileLength;
experiment(17).dep = msPerRequest;
experiment(17).subex = {{'server', 'apache'}};

experiment(18) = experiment(17);
experiment(18).source = 'timedata/fastget-plow-bw';
experiment(18).range = 100;

%%% The Snowflake signing (server authentication) experiment

experiment(19).name = 'Snowflake server authentication';
experiment(19).nick = 'sfserverauth';
experiment(19).subex = {
	{'authenticateServer','false','signFiles','false','cacheSigns','false'},
	{'authenticateServer','false','signFiles','true','cacheSigns','false'},
	{'authenticateServer','false','signFiles','true','cacheSigns','true'},
	{'authenticateServer','true','signFiles','true','cacheSigns','false'},
	{'authenticateServer','true','signFiles','true','cacheSigns','true'}};
experiment(19).subnick = {'none','sign','cacSig','sigChk','cacChk'};
experiment(19).range = 800;
experiment(19).ind = fileLength;
experiment(19).dep = msPerRequest;

experiment(20) = experiment(19);

experiment(19).source = 'timedata/snowflake-signs-shovel4';
experiment(20).source = 'timedata/snowflake-signs-plow4';

% weird case
experiment(21).name = 'weird chunky snowflake case';
experiment(21).nick = 'weird';
experiment(21).source = 'timedata/snowflake-weird-plow';
experiment(21).range = 250;
experiment(21).ind = fileLength;
experiment(21).dep = msPerRequest;
experiment(21).subex = {{'cacheSigns', 'true'}};	% some true test

% try experiment 1, subex 3 with linear data
experiment(22) = experiment(1);
experiment(22).source = 'timedata/snowflake-authzlin-shovel3';
experiment(22).subex = experiment(1).subex(3);
experiment(22).nick = 'sfbw_sh_lin';

%%%% RMI+ssh experiments

experiment(23).name = 'RMI bandwidth';
experiment(23).nick = 'rmibw';
experiment(23).source = 'timedata/rmibw-shovel-5';
experiment(23).range = 600;
experiment(23).ind = fileLength;
experiment(23).ind.scale = 'linear';
experiment(23).dep = msPerRequest;
experiment(23).subex = {
	{'registryService', 'TestRMIServer0'},
	{'registryService', 'TestRMIServer2'},
	{'registryService', 'TestRMIServer3'}
	};	% some true test
experiment(23).subnick = {'rmi','rmissh','rmisf'};

experiment(24) = experiment(23);
experiment(24).source = 'timedata/rmibw-plow-6';

%%%% RMI+ssh setup

experiment(25).name = 'RMI ssh setup';
experiment(25).nick = 'rmisetup';
experiment(25).source = 'timedata/rmisetup-shovel-3';
experiment(25).range = 1200;
experiment(25).ind = fileLength;
experiment(25).dep = msPerRequest;
experiment(25).subex = {
	{'clientCachesProofs', 'false', 'serverCachesProofs', 'false'},
	{'clientCachesProofs', 'true', 'serverCachesProofs', 'false'},
	{'clientCachesProofs', 'true', 'serverCachesProofs', 'true'}
	};
experiment(25).subnick = {'nocache','clientcache','servercache'};

experiment(26) = experiment(25);
experiment(26).source = 'timedata/rmisetup-plow-4';

%experiment(27).name = 'RMI ssh setup2';
%experiment(27).nick = 'rmisetupTwo';
%experiment(27).source = 'timedata/rmisetup2-shovel-1';
%experiment(27).range = 200;
%experiment(27).ind = fileLength;
%experiment(27).dep = msPerRequest;
%experiment(27).subex = {
%	{'clientCachesProofs', 'true', 'serverCachesProofs', 'true', 'borrowingAllowed', 'false', 'cacheRMIConnections', 'false', 'registryService', 'TestRMIServer2'},
%	{'clientCachesProofs', 'true', 'serverCachesProofs', 'true', 'borrowingAllowed', 'true', 'cacheRMIConnections', 'false', 'registryService', 'TestRMIServer2'},
%	{'clientCachesProofs', 'true', 'serverCachesProofs', 'true', 'borrowingAllowed', 'true', 'cacheRMIConnections', 'true', 'registryService', 'TestRMIServer2'},
%	{'clientCachesProofs', 'true', 'serverCachesProofs', 'true', 'borrowingAllowed', 'false', 'cacheRMIConnections', 'false', 'registryService', 'TestRMIServer3'},
%	{'clientCachesProofs', 'true', 'serverCachesProofs', 'true', 'borrowingAllowed', 'true', 'cacheRMIConnections', 'false', 'registryService', 'TestRMIServer3'},
%	{'clientCachesProofs', 'true', 'serverCachesProofs', 'true', 'borrowingAllowed', 'true', 'cacheRMIConnections', 'true', 'registryService', 'TestRMIServer3'},
%	{'clientCachesProofs', 'false', 'serverCachesProofs', 'false', 'borrowingAllowed', 'false', 'cacheRMIConnections', 'false', 'registryService', 'TestRMIServer3'},
%	{'clientCachesProofs', 'true', 'serverCachesProofs', 'false', 'borrowingAllowed', 'false', 'cacheRMIConnections', 'false', 'registryService', 'TestRMIServer3'},
%	};
%experiment(27).subnick = {'sshfull','sshborrow','sshrmicache', 'sffull','sfborrow','sfrmicache','sfclientcache','sfservercache'};

% number the experiments
for i=1:length(experiment),
	experiment(i).index = i;
end
@


1.8
log
@null
@
text
@d115 1
a115 1
experiment(9).source = 'timedata/sslreq-plow';
d164 1
a164 1
experiment(15).source = 'timedata/ssl11bw-plow';
d219 55
@


1.7
log
@*** empty log message ***
@
text
@d104 1
a104 1
experiment(8).source = 'timedata/sslreq-shovel-bw';
a106 1
	{'server','apache','fileLength','006309'}, ...
a107 1
	{'server','Jetty', 'fileLength','006309'}, ...
d109 1
a109 1
experiment(8).subnick = {'apaHun','apaSix','jetHun','jetSix'};
d151 1
a151 1
experiment(13).source = 'timedata/ssl11bw-shovel';
@


1.6
log
@*** empty log message ***
@
text
@d6 1
d13 1
d32 1
a32 1
experiment(1).nick = 'sfbw';
d37 1
a37 1
experiment(1).subnick = {'identical','macs','full'};
d86 1
a86 1
experiment(5).subnick = {'cacheSessions','cacheContext','full'};
d111 1
a111 1
experiment(8).subnick = {'apache100','apache6309','jetty100','jetty6309'};
d126 1
a126 1
experiment(10).nick = 'http11req';
d146 1
a146 1
experiment(12).subnick = {'cacheSessions','cacheContext','full'};
d161 1
a161 1
experiment(13).nick = 'ssl11bw_apache';
d163 1
a163 1
experiment(14).nick = 'ssl11bw_jetty';
d167 3
a170 1
experiment(15).subex = sub_experiments(1).ex;
d172 1
d197 1
a197 1
experiment(19).subnick = {'none','sign','cacheSign','signCheck','cacheCheck'};
d204 2
a205 2
experiment(19).source = 'timedata/snowflake-signs-shovel';
experiment(20).source = 'timedata/snowflake-signs-plow2';
d215 6
@


1.5
log
@*** empty log message ***
@
text
@d13 1
a13 1
msPerRequest.var = 'meanPerRequest';
d16 2
d19 4
a22 1
msPerConn.var = 'meanPerConnection';
d25 1
d30 7
a36 7
experiment(1).subex = {{'identicalRequests','true','useMacs','true','authenticateServer','false'},
						{'identicalRequests','false','useMacs','true','authenticateServer','false'},
						{'identicalRequests','false','useMacs','false','authenticateServer','false'},
						{'identicalRequests','true','useMacs','true','authenticateServer','true'},
						{'identicalRequests','false','useMacs','true','authenticateServer','true'},
						{'identicalRequests','false','useMacs','false','authenticateServer','true'}};
experiment(1).range = 800;
d46 4
a49 2
experiment(1).source = 'timedata/snowflake-shovel-withauth';
experiment(2).source = 'timedata/snowflake-plow-withauth';
d53 1
d84 1
d93 1
d95 1
d97 1
d101 1
d109 1
d124 1
d127 1
d137 1
d144 1
d152 1
d159 1
d161 1
d171 1
d185 1
d192 1
d200 10
a209 1
experiment(20).source = 'timedata/snowflake-signs-plow';
@


1.4
log
@*** empty log message ***
@
text
@d24 6
a29 3
experiment(1).subex = {{'identicalRequests','true','useMacs','true'},
						{'identicalRequests','false','useMacs','true'},
						{'identicalRequests','false','useMacs','false'}};
d40 2
a41 2
experiment(1).source = 'timedata/snowflake-shovel-usemacs';
experiment(2).source = 'timedata/snowflake-plow-usemacs';
d158 18
@


1.3
log
@*** empty log message ***
@
text
@d24 4
a27 2
experiment(1).subex = {{'cacheContext','true'}, {'cacheContext','false'}};
experiment(1).range = 350;
d35 4
a38 2
experiment(1).source = 'timedata/snowflake-shovel-close';
experiment(2).source = 'timedata/snowflake-plow-close';
@


1.2
log
@*** empty log message ***
@
text
@a0 3
% don't run this as one file, you'll miss all the plots. Unless you print
% in between.

d2 4
a5 2
fileLength.units = 'MB';
fileLength.factor = 1/(1024*1024);	% bytes => MB
d8 4
a11 2
requestsPerConnection.units = 'req';
requestsPerConnection.factor = 1;
a23 1
experiment(1).source = 'timedata/snowflake-shovel-bw';
d25 1
a25 1
experiment(1).range = 0.35;
d30 5
a34 1
experiment(2).source = 'timedata/snowflake-plow-bw';
d42 1
a42 1
experiment(3).range = 0.15;
a51 1
	{'server','apache','cacheContext','false','cacheSessions','true'}, ...
a56 1
	{'server','simple','cacheContext','false','cacheSessions','true'}, ...
a61 1
	{'server','Jetty','cacheContext','false','cacheSessions','true'}, ...
d68 1
a68 1
experiment(5).range = 3.5;
d88 1
a88 1
experiment(8).range = 5.0;
d104 1
a104 1
experiment(10).range = 0.75;
d119 1
a119 1
experiment(12).range = 2.5;
d122 34
@


1.1
log
@null
@
text
@d4 16
d26 2
a27 2
experiment(1).ind_var = 'fileLengthNum';
experiment(1).dep_var = 'meanPerRequest';
d39 2
a40 2
experiment(3).ind_var = 'fileLengthNum';
experiment(3).dep_var = 'meanPerRequest';
d68 2
a69 2
experiment(5).ind_var = 'fileLengthNum';
experiment(5).dep_var = 'meanPerRequest';
d88 2
a89 4
experiment(8).ind_var = 'requestsPerConnectionNum';
experiment(8).ind_units = 'ms';
experiment(8).ind_factor = 'ms';
experiment(8).dep_var = 'meanPerConnection';
d104 2
a105 2
experiment(10).ind_var = 'requestsPerConnectionNum';
experiment(10).dep_var = 'meanPerConnection';
d111 3
a113 2
base_experiment = 'timedata/sslsetup2-shovel';
sub_experiment = {...
d118 3
a120 5
plot_bw_results(base_experiment, sub_experiment, 10, reqPerConn, 'meanTime');

fileLength = 'fileLengthNum';
reqPerConn = 'requestsPerConnectionNum';

@
