sailfin
  1. sailfin
  2. SAILFIN-1745

CLB and DCU have different view of the cluster

    Details

    • Type: Bug Bug
    • Status: Resolved
    • Priority: Major Major
    • Resolution: Fixed
    • Affects Version/s: 2.0
    • Fix Version/s: milestone 1
    • Component/s: load_balancer
    • Labels:
      None
    • Environment:

      Operating System: All
      Platform: All

    • Issuezilla Id:
      1,745

      Description

      When the CLB is increasing the load after a restart, it is out-of-sync with the
      DCU. Calls to getActualServerInstance() return the view from applying the full
      load, not the current view of the CLB.

      On the other hand, certain calculations (like the SSR expat calculation) need
      the view of the healthy cluster, so we need two methods; if
      getActualServerInstance is changed to map the CLB load factor, the expat list
      and other uses can use a renamed-version of getActualServerInstance().

        Activity

        Hide
        kshitiz_saxena added a comment -

        Added a new API getCLBServerInstance() in DataCentricUtilImpl to return instance
        that will be selected by CLB to service the request. It takes into account
        properties load-increase-factor and load-factor-increase-period-in-seconds.

        However this API is not available in DataCentricUtil. User need to cast class
        returned from DataCentricUtilHolder to DataCentricUtilImpl to access this API.

        Check-in logs:
        Checking in org/jvnet/glassfish/comms/clb/core/Controller.java;
        /cvs/sailfin/clb/src/main/java/org/jvnet/glassfish/comms/clb/core/Controller.java,v
        <-- Controller.java
        new revision: 1.20; previous revision: 1.19
        done
        Checking in org/jvnet/glassfish/comms/clb/core/common/chr/ConsistentHashRouter.java;
        /cvs/sailfin/clb/src/main/java/org/jvnet/glassfish/comms/clb/core/common/chr/ConsistentHashRouter.java,v
        <-- ConsistentHashRouter.java
        new revision: 1.27; previous revision: 1.26
        done
        Checking in org/jvnet/glassfish/comms/clb/core/sip/DataCentricUtilImpl.java;
        /cvs/sailfin/clb/src/main/java/org/jvnet/glassfish/comms/clb/core/sip/DataCentricUtilImpl.java,v
        <-- DataCentricUtilImpl.java
        new revision: 1.29; previous revision: 1.28
        done
        RCS file:
        /cvs/sailfin/clb/src/main/java/org/jvnet/glassfish/comms/clb/core/util/LoadFactorChangeEventListener.java,v
        done
        Checking in
        org/jvnet/glassfish/comms/clb/core/util/LoadFactorChangeEventListener.java;
        /cvs/sailfin/clb/src/main/java/org/jvnet/glassfish/comms/clb/core/util/LoadFactorChangeEventListener.java,v
        <-- LoadFactorChangeEventListener.java
        initial revision: 1.1
        done
        RCS file:
        /cvs/sailfin/clb/src/main/java/org/jvnet/glassfish/comms/clb/core/util/LoadFactorManager.java,v
        done
        Checking in org/jvnet/glassfish/comms/clb/core/util/LoadFactorManager.java;
        /cvs/sailfin/clb/src/main/java/org/jvnet/glassfish/comms/clb/core/util/LoadFactorManager.java,v
        <-- LoadFactorManager.java
        initial revision: 1.1
        done
        RCS file:
        /cvs/sailfin/clb/src/main/java/org/jvnet/glassfish/comms/clb/core/util/LoadFactorTask.java,v
        done
        Checking in org/jvnet/glassfish/comms/clb/core/util/LoadFactorTask.java;
        /cvs/sailfin/clb/src/main/java/org/jvnet/glassfish/comms/clb/core/util/LoadFactorTask.java,v
        <-- LoadFactorTask.java
        initial revision: 1.1
        done
        Checking in org/jvnet/glassfish/comms/logger/clb/LogStrings.properties;
        /cvs/sailfin/clb/src/main/java/org/jvnet/glassfish/comms/logger/clb/LogStrings.properties,v
        <-- LogStrings.properties
        new revision: 1.32; previous revision: 1.31
        done

        Show
        kshitiz_saxena added a comment - Added a new API getCLBServerInstance() in DataCentricUtilImpl to return instance that will be selected by CLB to service the request. It takes into account properties load-increase-factor and load-factor-increase-period-in-seconds. However this API is not available in DataCentricUtil. User need to cast class returned from DataCentricUtilHolder to DataCentricUtilImpl to access this API. Check-in logs: Checking in org/jvnet/glassfish/comms/clb/core/Controller.java; /cvs/sailfin/clb/src/main/java/org/jvnet/glassfish/comms/clb/core/Controller.java,v <-- Controller.java new revision: 1.20; previous revision: 1.19 done Checking in org/jvnet/glassfish/comms/clb/core/common/chr/ConsistentHashRouter.java; /cvs/sailfin/clb/src/main/java/org/jvnet/glassfish/comms/clb/core/common/chr/ConsistentHashRouter.java,v <-- ConsistentHashRouter.java new revision: 1.27; previous revision: 1.26 done Checking in org/jvnet/glassfish/comms/clb/core/sip/DataCentricUtilImpl.java; /cvs/sailfin/clb/src/main/java/org/jvnet/glassfish/comms/clb/core/sip/DataCentricUtilImpl.java,v <-- DataCentricUtilImpl.java new revision: 1.29; previous revision: 1.28 done RCS file: /cvs/sailfin/clb/src/main/java/org/jvnet/glassfish/comms/clb/core/util/LoadFactorChangeEventListener.java,v done Checking in org/jvnet/glassfish/comms/clb/core/util/LoadFactorChangeEventListener.java; /cvs/sailfin/clb/src/main/java/org/jvnet/glassfish/comms/clb/core/util/LoadFactorChangeEventListener.java,v <-- LoadFactorChangeEventListener.java initial revision: 1.1 done RCS file: /cvs/sailfin/clb/src/main/java/org/jvnet/glassfish/comms/clb/core/util/LoadFactorManager.java,v done Checking in org/jvnet/glassfish/comms/clb/core/util/LoadFactorManager.java; /cvs/sailfin/clb/src/main/java/org/jvnet/glassfish/comms/clb/core/util/LoadFactorManager.java,v <-- LoadFactorManager.java initial revision: 1.1 done RCS file: /cvs/sailfin/clb/src/main/java/org/jvnet/glassfish/comms/clb/core/util/LoadFactorTask.java,v done Checking in org/jvnet/glassfish/comms/clb/core/util/LoadFactorTask.java; /cvs/sailfin/clb/src/main/java/org/jvnet/glassfish/comms/clb/core/util/LoadFactorTask.java,v <-- LoadFactorTask.java initial revision: 1.1 done Checking in org/jvnet/glassfish/comms/logger/clb/LogStrings.properties; /cvs/sailfin/clb/src/main/java/org/jvnet/glassfish/comms/logger/clb/LogStrings.properties,v <-- LogStrings.properties new revision: 1.32; previous revision: 1.31 done

          People

          • Assignee:
            kshitiz_saxena
            Reporter:
            Scott Oaks
          • Votes:
            0 Vote for this issue
            Watchers:
            0 Start watching this issue

            Dates

            • Created:
              Updated:
              Resolved: