Uploaded image for project: 'Spark'
  1. Spark
  2. SPARK-16008

ML Logistic Regression aggregator serializes unnecessary data

    XMLWordPrintableJSON

Details

    • Improvement
    • Status: Resolved
    • Major
    • Resolution: Fixed
    • None
    • 2.0.0
    • ML
    • None

    Description

      LogisticRegressionAggregator class is used to collect gradient updates in ML logistic regression algorithm. The class stores a reference to the coefficients array of length equal to the number of features. It also stores a reference to an array of standard deviations which is length numFeatures also. When a task is completed it serializes the class which also serializes a copy of the two arrays. These arrays don't need to be serialized (only the gradient updates are being aggregated). This causes issues performance issues when the number of features is large and can trigger excess garbage collection when the executor doesn't have much excess memory.

      This results in serializing 2*numFeatures excess data. When multiclass logistic regression is implemented, the excess will be numFeatures + numClasses * numFeatures.

      Attachments

        Issue Links

          Activity

            People

              sethah Seth Hendrickson
              sethah Seth Hendrickson
              Votes:
              0 Vote for this issue
              Watchers:
              4 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved: