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

Enforce the separation between "Router Service" and "Router Role" in the existing server code base

    • Type: Icon: Improvement Improvement
    • Resolution: Unresolved
    • Priority: Icon: Major - P3 Major - P3
    • None
    • Affects Version/s: None
    • Component/s: None
    • Catalog and Routing
    • None
    • None
    • None
    • None
    • None
    • None
    • None

      From a conceptual perspective, "Router Role" and "Router Service" represent two well-separated concepts:

      • a "Router Service" is a node implementing routing functionalities and making them available to external clients through a dedicated ServiceEntryPoint, a CommandRegistry and other pieces of infrastructure;
      • the "Router Role" is the behavior that a mongod node may temporarily assume to involve other shards in the execution of an inflight user command/query; under such a role, the mongod executes some of the functionalities that usually characterize a "Router Service".

      Nevertheless, the current state of the server codebase does not clearly reflect this separation: in particular, the "Router Role" expression is often misused or mixed with other concerns. As an example, service_entry_point_router_role.cpp contains logic that defines the behavior of the "Router Service Entry Point".

      The objective of this ticket is to audit existing usages of "router role" terminology in source code and file names and correct potential inconsistencies.

            Assignee:
            Unassigned Unassigned
            Reporter:
            paolo.polato@mongodb.com Paolo Polato
            Votes:
            0 Vote for this issue
            Watchers:
            4 Start watching this issue

              Created:
              Updated:
              None
              None
              None
              None