Hi,
A bit of update about the byCost and what's behind it.
The byCost function assigns a cost to each available resource according to
the Cost-Benefit Framework, a concept originally developed at Johns Hopkins by
Baruch Awerbuch and adapted to practice by several of us practical guys at Hopkins.
The essence is that the price of a resource is increased as the availability of
it is depleted - its utilization increased. Now, theory shows that if the price
is increased EXPONENTIALLY as the utilization of it is increased. then an online
scheduling algorithm (that does not know what requests will happen in the future)
will be competitive compared with the optimal algorithm that knows everything in
advance and have infinite power to calculate the best strategy after the fact.
"Competitive" means that you can bound the different between the byCost algorithm
and the optimal algorithm with a known factor. Highly important theoretical result.
This result applies to the worst case. What most practitioners care about is
the average case. We showed that in several different settings (A PVM cluster, A mosix cluster,
global multicast flow control) this algorithm outperforms in practice the best
algorithms out there in the AVERAGE case (which our theory does not make any predictions
about).
So - actually an old 486 PC can be cheaper compared with the strongest Pentium III if,
for example, the Pentium III is extremely busy and the 486 is totally empty.
The more interesting question is how to compare a machine which is moderately
stronger but have much more available memory compared with another machine at
a particular time. How do you compare apples (cpu) and oranges (memory)?
This is exactly what the cost-benefit framework does by assigning a cost
based on the utilization.
Here is a good slide about this:
http://www.cnds.jhu.edu/funding/tolerant_networks/ar0101_cost/sld029.htm Enjoy,
:) Yair.
Sean Chittenden wrote:
>
> > > > > Add byCost if at all possible because it uses the Ariba #. If
> > > > > they machines you're working with are all doing the same thing, then
> > > > > try:
> > > > >
> > > > >
> > > > > Backhand byAge 3
> > > > > # BackhandFromSO libexec/byHostname.so byHostname www
> > > > > Backhand byLogWindow
> > > > > Backhand byCost
> > > > > Backhand addPrediction
> > > > >
> > > > > If you want only your machines with www in their name, then
> > > > > uncomment the previous line. Cost + Prediction = VERY good thing. ;)
> > > >
> > > > Can someone please elaborate on addPrediction? I've seen it in the
> > > > builtins.c and am at a loss at what it's doing (other than the fact it's
> > > > adding on to the load value of some server).
> > >
> > > In a nutshell:
> > >
> > > byCost: a request on a big IBM RS6000 is going to cost less than a
> > > request on an old 386 SX33 Mhz system. byCost uses the arriba
> > > number to take this into account and send reuqests to the RS6000
> > > if both systems have a load of 0.00
> >
> > Ok, so it uses the system load and the arriba number to figure the cost?
> > anything else, like cpu idle or memory consumption?
>
> I believe so.... yeah, it looks like it takes cpu, ammount of memory
> available, and arriba and mixes it in an academically proven/studied (?)
> algorythm to figure out what server is best to use. Prediction updates
> internal data so that if you get 1000 requests in a sec, you don't all
> send them to one server (or might depending on the HP of that one
> server). -sc
>
> PS Theo, can you update the permissions for wackamole? anoncvs
> can't get a directory lock in /storage/cvs/munjal/wacamole. Thanks.
>
> --
> Sean Chittenden
>
> _______________________________________________
> backhand-users mailing list
> backhand-users@lists.backhand.org
> http://lists.backhand.org/mailman/listinfo/backhand-users