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

Refactor FCV component code in order to remove circular dependencies around feature_compatibility_version.h/cpp

    XMLWordPrintableJSON

Details

    • Storage Execution
    • Storage 2018-01-01, Storage 2018-01-15

    Description

      Right now, we define FeatureCompatibilityVersion::kCollection in feature_compatibility_version.h. It is problematic because:
      1. It's a StringData but it really should be a NamespaceString ("admin.system.version"). Also the name is ambiguous: its name implies the string value should be "system.version" but the db name is in it.
      2. feature_compatibility_version is pretty high-level since it makes calls to high-level functions such as _runUpdateCommand. Some lower-level code (such as op_observer_impl.cpp) refer to this constant (kCollection) so it causes an unnecessary circular dependency issue.

      Update
      Further work required to successfully remove the circular dependencies and clean up the code. See below comment. Title has been updated.

      Attachments

        Activity

          People

            backlog-server-execution Backlog - Storage Execution Team
            xiangyu.yao@mongodb.com Xiangyu Yao (Inactive)
            Votes:
            0 Vote for this issue
            Watchers:
            4 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: