# Copyright (c) 1998 University of Southern California. # All rights reserved. # # Redistribution and use in source and binary forms are permitted # provided that the above copyright notice and this paragraph are # duplicated in all such forms and that any documentation, advertising # materials, and other materials related to such distribution and use # acknowledge that the software was developed by the University of # Southern California, Information Sciences Institute. The name of the # University may not be used to endorse or promote products derived from # this software without specific prior written permission. # # THIS SOFTWARE IS PROVIDED "AS IS" AND WITHOUT ANY EXPRESS OR IMPLIED # WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED WARRANTIES OF # MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. LSAM OBJECT SCHEDULING ====================== LSAM Authors: Lars Eggert, Amy Hughes $Revision: 1.16 $ ($Date: 1998/07/06 23:02:47 $) More Information: http://www.isi.edu/lsam/scheduling Introduction ------------ The LSAM server supports different service classes for requests. Requests may either be foreground (FG) or background (BG) requests. Responses to requests may be sent in the FG or BG as well. This can be thought of as a form of differentiated services. FG requests and responses are being received, processed and/or sent out using the normal apache methods. BG requests and responses, however, are dealt with in a special way as to minimize their impact on FG performance. This may include delaying them longer or maybe not processing them altogether, depending on the FG load. BG requests and responses will be used for cache preloading in the future. The current version of the object scheduler is limited in the following ways: Unicast Only: Responses can only be unicast, there is no support for multicast yet. Distinguishing between FG and BG requests: There is currently no inherent way to distinguish a FG from a BG request. Instead, the server listens on two ports, a "FG port" and a "BG port". All requests arriving on the FG port are assumed to be FG requests and treated as such, while all requests arriving at the BG port are treated as BG requests. Demonstration ------------- Due to the lack of a fully functional status page, demonstrating background scheduling in this release is a little difficult. You may follow these steps: 1. Copy a large file to apache/htdocs - preferably an HTML or text file that is serveral hundred KB long. Let us assume that you call this file bg_test.html. 2. Change the permissions of bg_test.html so it is world readable: % cd apache/htdocs % chmod a+r bg_test.html 3. Start the server, if it not already running: % apachectl.lsam start 4. Open a browser of your choice, and request bg_test.html twice, once from the foreground port and once from the background port. Under the default configuration, these URLs will work: http://www.your.server:8080/bg_test.html for the foreground request http://www.your.server:8081/bg_test.html for the background request 5. Notice that receiving the background response takes considerably longer, because it is being sent rate-limited at 1.0 Mbps (under the default configuration.) If you do not see a significant difference in loading time, your background rate limit is probably too close to your available network bandwidth along the path to the server. You can change the rate limit through the "Foreground/background Scheduling" page. Set it to a small value (i.e. 0.1) and repeat the steps above. Upcoming Features ----------------- * support for multicast responses Acknowledgments --------------- Portions copyright 1994, 1995, 1996, 1997, 1998, by Cold Spring Harbor Laboratory. Funded under Grant P41-RR02188 by the National Institutes of Health. Portions copyright 1996, 1997, 1998, by Boutell.Com, Inc. GIF decompression code copyright 1990, 1991, 1993, by David Koblas (koblas@netcom.com). Non-LZW-based GIF compression code copyright 1998, by Hutchison Avenue Software Corporation (http://www.hasc.com/, info@hasc.com). Permission has been granted to copy and distribute gd in any context, including a commercial application, provided that this notice is present in user-accessible supporting documentation. This does not affect your ownership of the derived work itself, and the intent is to assure proper credit for the authors of gd, not to interfere with your productive use of gd. If you have questions, ask. "Derived works" includes all programs that utilize the library. Credit must be given in user-accessible documentation. Permission to use, copy, modify, and distribute this software and its documentation for any purpose and without fee is hereby granted, provided that the above copyright notice appear in all copies and that both that copyright notice and this permission notice appear in supporting documentation. This software is provided "as is" without express or implied warranty.