Uploaded image for project: 'Core Server'
  1. Core Server
  2. SERVER-74523

Upgrade abseil to 2023-08-02 LTS

    • Type: Icon: Improvement Improvement
    • Resolution: Fixed
    • Priority: Icon: Major - P3 Major - P3
    • 7.3.0-rc0
    • Affects Version/s: None
    • Component/s: None
    • None
    • Fully Compatible
    • Service Arch 2023-03-06

      We are using an old version.
      Reading changelogs, the upstream has made significant improvements in the past 2 years.

      Motivation (from Slack thread in pm-1812 channel):

      Google's open source offerings (tcmalloc, abseil, grpc) have basically discarded semantic versioning and are going with a "live at head" initiative, which is directly harmful to non-google versioned projects like ours. We are going to have a hard time tracking projects like "evaluate tcmalloc upgrade" or "evaluate grpc" without considering holistic effects of upgrading everything everygoogle all at once. We'll have to adapt to stress on "evergreen cache capacity" and incur cognitive load in interpreting experimental branch perf results as well.

      Staying up to date is no longer optional, as Google's other upstream products that we need (tcmalloc, grpc) are going to be moving forward with dependencies on "head" abseil. We'd need a strong reason to defer upgrading.

      About 1 month ago, a revision tag was introduced upstream.

      Unable to find source-code formatter for language: diff. Available languages are: actionscript, ada, applescript, bash, c, c#, c++, cpp, css, erlang, go, groovy, haskell, html, java, javascript, js, json, lua, none, nyan, objc, perl, php, python, r, rainbow, ruby, scala, sh, sql, swift, visualbasic, xml, yaml
      - LIB_GIT_REVISION=20210324.1
      + LIB_GIT_REVISION=20230125.0
      

      The upstream is tracked by our https://github.com/mongodb-forks/abseil-cpp/ repo, which is the direct origin of our third_party lib.

      Fortunately, we no longer maintain site-specific customizations.

      (depended on by SERVER-74420)
      (related to SERVER-51476)

      All LTS branches as of right now:

        remotes/google/lts_2018_06_20
        remotes/google/lts_2018_12_18
        remotes/google/lts_2019_08_08
        remotes/google/lts_2020_02_25
        remotes/google/lts_2020_09_23
        remotes/google/lts_2021_03_24   <= we are here (but a patch release behind the tip of this branch)
        remotes/google/lts_2021_11_02   <= minimum gRPC requirement
        remotes/google/lts_2022_06_23
        remotes/google/lts_2023_01_25
      

      Minimum required Abseil for TCMalloc hasn't been figured out (not provided by upstream docs), but we can proceed without knowing it.

            Assignee:
            patrick.freed@mongodb.com Patrick Freed
            Reporter:
            billy.donahue@mongodb.com Billy Donahue
            Votes:
            0 Vote for this issue
            Watchers:
            7 Start watching this issue

              Created:
              Updated:
              Resolved: