[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Wrong request time in webcache simulation



Haobo:
	Thanks.  
	I'm wondering whether I've understood you correctly:
say, a client can't start a new request before repsonse to
last request come back and in TRACE file requests for multiple
browsers multiplexed together so the request interval can 
be extrememly short ( can be zero sometimes), so the warning
message generated?
	But I have a little doubt of above, see the code:
----------------------------------------------------------
(pagepool.cc)
 
 ClientRequest *p = load_req(id);
 if ((p->nrt_ >= 0) && 
   (p->nrt_ < Scheduler::instance().clock())) {
	      fprintf(stderr,
		      "%.17g: Wrong request time %g.\n",
		      Scheduler::instance().clock(),
		      p->nrt_);
	      p->nrt_ = Scheduler::instance().clock()+0.001;
	    }
---------------------------------------------------------
	I guess the "p->nrt_" is the timestamp for next
request in trace file for that client ID.  It only print
a warning message when p->nrt_ is earlier than
Scheduler::instance().clock().  It seems that the warning
has nothing to do with whether last request finished or
not. My question is: how can p->nrt_ be earlier than
current simulation clock ?  This seems unreasonble to me.

	In fact, I dont care how small the request interval
is because I've added "pipelined requests" implementation
in the code (so, issuing a request before last finished
is exacly what I want). 

	By the way, I did a modification to the way of
mapping requests in TRACE file. Originally, you
mapping all requests from clients of same "Node" address
to a same flow of request; now I map all requests from
the same client (there can be multile clients on the
same node) to a same flow of requests.  Just change:

(pagepool.cc)
int id = atoi(argv[2]);
ClientRequest *p = load_req(id);

		To

int id = atoi(argv[2]+2);
ClientRequest *p = load_req(id);

	And in the corrsponding tcl code, call above
method by the object name of the client instead of
the "id" of the client (which is node id the client
bound to). The offset "+2" is for skipping "_o" in
the otcl object name.





Thanks,


Kaichuan


	
On Tue, 21 Sep 1999, Haobo Yu wrote:

> This is because a client does not start a new request before the current
> one finishes. But because the code maps browser address in the log to
> client id in the sim using a 'mod', it is possible that the request
> interval for some client is too short. A hacky solution was used to adjust
> the request time and print out a warning message. 
> 
> Please let me know if you have any suggestions.
> 
> - Haobo
> 
> On Tue, 21 Sep 1999 [email protected] wrote:
> 
> > 	In the webcache simulation code of ns2 (pagepool.cc),
> > when we "load" a request from a Proxy Trace, there is sometimes
> > "Wrong request time xxxx" messaged printed out which means
> > the next request happening time is earlier than the current
> > simulation time (now).  Could you give me an insight in why
> > this would happen ?
> > 	Thanks, 
> > 
> > 
> > 
> > Kaichuan
> > 
> > 
> > 
> 
>