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

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

      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.

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

              Created:
              Updated:
              Resolved: