Beefy Boxes and Bandwidth Generously Provided by pair Networks
Perl: the Markov chain saw
 
PerlMonks  

Re: Load Balancing

by Limbic~Region (Chancellor)
on Nov 16, 2007 at 15:09 UTC ( [id://651232]=note: print w/replies, xml ) Need Help??


in reply to Load Balancing

onegative,
With such a small number of hosts, you are very likely to hit the same host repeatedly by grabbing a random host.

Why do you feel that you can't keep track of which host was previously called? Have you seen Storable and DBM::Deep?

Another solution, which can be just as problematic as using rand may be to use Time::HiRes. Divide a second into 4 quarters and choose which host to use based on which quarter you are in at runtime.

Cheers - L~R

Replies are listed 'Best First'.
Re^2: Load Balancing
by onegative (Scribe) on Nov 16, 2007 at 15:45 UTC
    Thanks ya'll, I forgot to mention that my hosts needed to be in a list...also the reason I wanted to not require an external call is because the script calling my hosts doesn't belong to me thus I was attempting to make the code simple and not require additional Modules to be installed/called...

    After some thought/research I have decided upon the following code as my solution...

    #!/usr/bin/perl sub get_hosts { @hosts=("host1.domain.com","host1.domain.com","host1.domain.com","h +ost1.domain.com"); @app = (); while (@hosts) { $rv = int(rand(@hosts)); push @app,$hosts[$rv]; $hosts[$rv] = $hosts[$#hosts]; pop @hosts; } $thosts = "$app[0],$app[1],$app[2],$app[3]"; return $thosts; } print &get_hosts();
    Thanks again everyone for your suggestions...

    Danny

Log In?
Username:
Password:

What's my password?
Create A New User
Domain Nodelet?
Node Status?
node history
Node Type: note [id://651232]
help
Chatterbox?
and the web crawler heard nothing...

How do I use this?Last hourOther CB clients
Other Users?
Others meditating upon the Monastery: (4)
As of 2024-03-28 16:59 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    No recent polls found