[192] in 6.033-lab
life after webproxy
daemon@ATHENA.MIT.EDU (Benjie Chen)
Mon Mar 13 18:39:27 2000
From: Benjie Chen <benjie@cag.lcs.mit.edu>
Message-Id: <200003132339.SAA00500@amsterdam.lcs.mit.edu>
To: 6.033-lab@mit.edu
Date: Mon, 13 Mar 2000 18:39:20 -0500 (EST)
MIME-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Transfer-Encoding: 7bit
Hi
First of all, congrats to all who have finished. Good job. A few things.
- How will it be graded? If it works, it will get a good grade. If it
crashes once in a while, you will get a few points taken off, but I
promise not very much. Mostly, I want to see that it proxies, caches,
do so nonblockingly, and obey, to some degree, to the specs.
- Can you still make changes? I have already grabed a version. If you
want to hack on it, feel free. But make sure you do your design report
first. If I can't get your program to work or it has a lot of bugs, I
may ask you for a changed version later so I can actually test it. You
will get points knocked off, of course. But I mostly want to see that
you have working code.
- All those bugs! Yes yes. I have to say I feel very embarrased about all
the bugs that surfaced in http.c. I had looked at the code they gave out
last year and decided against giving it out this year for various
reasons. So I hacked http.c. I did not have time to debug it fully and
it turns out to be full of bugs (I am a better coder than that =)). Thanks
to all those who reported them to me. I have to say this is an important
lesson to me as a TA. I have a good version of http.c that is changed a
bit from the one in the locker. I will send out my version of webproxy
with that later. I have a version of the webproxy that does not do disk
cache (only memory cache).
- Design report. Go work on your design report. Turn in ONE copy to your
recitation instructor, but mark it clearly that it is from lab section
so they know to give it to me.
Things you should address:
1. statement of the problem. be brief, since we all know what the
problem is.
2. overview of how a caching web proxy should work. be brief again,
since we all know what it is.
3. overview of your design.
4. detail of how your proxy works. this should include, in detail (
give algorithm, data structure, etc)
1) how connections bewteen clients and servers are handled
2) when a connection arrives at the proxy, how to determine
if a cache response can be given
3) changes to original stream while proxying to server
4) what responses should be cached
5) what alg did you use to locate a cached response
6) what was your eviction algorithm
7) how did you handle disk/memory cache
8) any other interesting algorithm about your proxy
of course, you should only include parts that you have implemented.
make sure you include both why you did something and why you didn't
do something.
5. how would you improve it?
1) things from above list that you didn't have time to implement?
2) other interesting things that you could have done but didn't?
don't spend too much time on this, but you should talk about it.
6. any performance/results
1) give some numbers. for example, was able to handle how many
connections simultanenously? what was its throughput rate?
2) cache performance. use it for a few days, mention how many
times you got cache hit.
you don't need to have this section, but if you are ambitious, this
is good.
- Office hours: I will be available on Wed to go over your paper with you.
I can help you with performance/results section if you would like me to
help you get numbers. If you have a draft of your paper by then, I can
also look over it. But you will need to email me first, and it will only
be on Wed.
- File system: over the spring break and the week after that, if you have
time, you should read the unix paper again and also Tennenbaum, if you
have it (LCS reading room also has a copy, I believe), about how file
systems work on UNIX. You can also read the LFS paper in your 6033
paper handout. There is also another good filesystem paper at
http://www.pdos.lcs.mit.edu/papers/cffs.html
If you are familiar with file systems, you can jump into the next
assignment that much easier.
For file system assignment, you will get a library from us that
implements a loopback nfs server. Unless the http.c code, it is
tested and hopefully has very few, if any, bugs. You will implement
your file system on top of a file, which will have a nfs loop back
mechanism so you can mount it as a NFS file system.
- I won't be around for spring break. But send me email if you have
questions.
--
Benjie Chen
benjie@lcs.mit.edu