That appears to have fixed it, thanks ... at least it hasn't happened in a
few hours, and it was happening at least once an hour previously ...
On Mon, 5 Apr 2004, Matt Clark wrote:
> > 1. a traffic table is read in, and loaded into a hash table that is
> > ordered by company_id, ip_id and port:
> >
> > $traffic{$ip_rec{$ip}{'company_id'}}{$ip_id}{$port} += $bytes1 + $bytes2;
> >
> > 2. a foreach loop is run on that resultant list to do the updates to the
> > database:
> >
> > foreach $company_id ( keys %traffic ) {
> > foreach $ip_id ( keys %{$traffic{$company_id}} ) {
> > foreach $port ( keys %{$traffic{$company_id}{$ip_id}} ) {
> >
> > and the updates are done based on those 3 values, plus the byte value
> > of $traffic{$company_id}{$ip_id}{$port} ...
> >
> > Now, my first mistake may be that I'm mis-assuming that the hashes will
> > be read in a sorted order ... ? If this is the case, though, then sort
> > order shouldn't be an issue, as all servers would be sorted the same way
>
> The output of keys(%hash) is NOT ordered! Try:
>
> foreach $company_id ( sort keys %traffic ) {
> foreach $ip_id ( sort keys %{$traffic{$company_id}} ) {
> foreach $port ( sort keys %{$traffic{$company_id}{$ip_id}} ) {
>
>
> Matt
>
>
----
Marc G. Fournier Hub.Org Networking Services (http://www.hub.org)
Email: scrappy@hub.org Yahoo!: yscrappy ICQ: 7615664