From e08767228c33e290313caf5ff19b183df069fc26 Mon Sep 17 00:00:00 2001 From: coryan Date: Mon, 27 Mar 2000 17:05:35 +0000 Subject: ChangeLogTag:Mon Mar 27 09:03:51 2000 Carlos O'Ryan --- TAO/ChangeLogs/ChangeLog-02a | 10 ++++++++++ TAO/orbsvcs/orbsvcs/LoadBalancing/Minimum_Dispersion.cpp | 2 +- TAO/orbsvcs/orbsvcs/Minimum_Dispersion.cpp | 2 +- TAO/orbsvcs/tests/LoadBalancing/Hash_ReplicaControl.cpp | 2 ++ 4 files changed, 14 insertions(+), 2 deletions(-) diff --git a/TAO/ChangeLogs/ChangeLog-02a b/TAO/ChangeLogs/ChangeLog-02a index 62ce03547ab..a1ae6c5801e 100644 --- a/TAO/ChangeLogs/ChangeLog-02a +++ b/TAO/ChangeLogs/ChangeLog-02a @@ -1,3 +1,13 @@ +Mon Mar 27 09:03:51 2000 Carlos O'Ryan + + * orbsvcs/tests/LoadBalancing/Hash_ReplicaControl.cpp: + Only one client is rejected under high load conditions. + Otherwise we get herds of clients moving from server to server, + i.e. the load balancing system is unstable. + + * orbsvcs/orbsvcs/LoadBalancing/Minimum_Dispersion.cpp: + Adjust the high load threshold. + Sun Mar 26 20:15:17 2000 Carlos O'Ryan * orbsvcs/orbsvcs/Makefile.LoadBalancing: diff --git a/TAO/orbsvcs/orbsvcs/LoadBalancing/Minimum_Dispersion.cpp b/TAO/orbsvcs/orbsvcs/LoadBalancing/Minimum_Dispersion.cpp index f94ded70438..f02daeb1f77 100644 --- a/TAO/orbsvcs/orbsvcs/LoadBalancing/Minimum_Dispersion.cpp +++ b/TAO/orbsvcs/orbsvcs/LoadBalancing/Minimum_Dispersion.cpp @@ -117,7 +117,7 @@ Minimum_Dispersion_Strategy::load_changed (ReplicaProxy_Impl *proxy, ACE_DEBUG ((LM_DEBUG, "Load[%x] %f %f %f\n", proxy, cl, avg, relative_load)); - if (relative_load > 1 + 1.0F / n) + if (relative_load > 1 + 1.5F / n) { proxy->has_high_load_ = 1; proxy->control_->high_load_advisory (ACE_TRY_ENV); diff --git a/TAO/orbsvcs/orbsvcs/Minimum_Dispersion.cpp b/TAO/orbsvcs/orbsvcs/Minimum_Dispersion.cpp index f94ded70438..f02daeb1f77 100644 --- a/TAO/orbsvcs/orbsvcs/Minimum_Dispersion.cpp +++ b/TAO/orbsvcs/orbsvcs/Minimum_Dispersion.cpp @@ -117,7 +117,7 @@ Minimum_Dispersion_Strategy::load_changed (ReplicaProxy_Impl *proxy, ACE_DEBUG ((LM_DEBUG, "Load[%x] %f %f %f\n", proxy, cl, avg, relative_load)); - if (relative_load > 1 + 1.0F / n) + if (relative_load > 1 + 1.5F / n) { proxy->has_high_load_ = 1; proxy->control_->high_load_advisory (ACE_TRY_ENV); diff --git a/TAO/orbsvcs/tests/LoadBalancing/Hash_ReplicaControl.cpp b/TAO/orbsvcs/tests/LoadBalancing/Hash_ReplicaControl.cpp index cb60acf0482..866f8d43429 100644 --- a/TAO/orbsvcs/tests/LoadBalancing/Hash_ReplicaControl.cpp +++ b/TAO/orbsvcs/tests/LoadBalancing/Hash_ReplicaControl.cpp @@ -65,6 +65,7 @@ Hash_ReplicaControl::handle_timeout (const ACE_Time_Value &, this->proxy_->current_load (this->current_load_, ACE_TRY_ENV); ACE_TRY_CHECK; + ACE_DEBUG ((LM_DEBUG, "Current_Load = %f\n", this->current_load_)); } ACE_CATCHANY { @@ -83,6 +84,7 @@ Hash_ReplicaControl::request_received (void) void Hash_ReplicaControl::request_rejected (CORBA::Environment &ACE_TRY_ENV) { + this->replica_.reject_requests (0); ACE_THROW (PortableServer::ForwardRequest ( CORBA::Object::_duplicate (this->group_.in ()))); -- cgit v1.2.1