Reorganize repl code and build blocks to avoid unexpected dependency cycles

XMLWordPrintableJSON

    • Type: Improvement
    • Resolution: Unresolved
    • Priority: Major - P3
    • None
    • Affects Version/s: None
    • Component/s: None
    • None
    • Replication
    • None
    • 3
    • None
    • None
    • None
    • None
    • None
    • None

      When working on SERVER-76774, I find out that we are not putting code in the most correct place, leading to some unexpected dependency cycles.

      For my case, I see we put our oplog application code in oplog.cpp/apply_ops.cpp/transaction_oplog_application.cpp, which are actually in the "oplog" build block and we have another "oplog_application" build block depends on this "oplog" build block. There is a "oplog_applier_utils.cpp" in "oplog_application" build block that I understand should be the util function for oplog application. If I want to use these util functions in the oplog application code, there is no easy way to do it because the dependencies for "oplog" and "oplog_application" will be messed up.

      I feel it's worth investigating how to make our dependency graph cleaner and reorganize our code to make it easier to manage common util functions.

            Assignee:
            [DO NOT USE] Backlog - Replication Team
            Reporter:
            Jiawei Yang
            Votes:
            0 Vote for this issue
            Watchers:
            6 Start watching this issue

              Created:
              Updated: