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

Add a new `Session` type for ingress gRPC streams

    • Type: Icon: New Feature New Feature
    • Resolution: Fixed
    • Priority: Icon: Major - P3 Major - P3
    • 7.0.0-rc0
    • Affects Version/s: None
    • Component/s: Internal Code
    • Labels:
      None
    • Service Arch
    • Fully Compatible
    • Service Arch 2023-02-20, Service Arch 2023-03-06, Service Arch 2023-03-20, Service Arch 2023-04-03

      This extends the Session abstraction to wrap a gRPC bidirectional stream. IngressSession corresponds to non-internal clients (prior to completion of PM-2960), only supports blocking APIs, and does not support timeouts (blocking I/O is only interrupted due to cancellation or connection errors). Also, the ingress path only inquires SSL configuration for authentication, which is out of scope for this ticket. Therefore, IngressSession does not implement the following APIs:

      Internally, this class maintains a ServerContext and a ServerReaderWriter for the gRPC stream, and implements the following APIs:

      boost::optional<UUID> clientId() const;
      StatusWith<Message> sourceMessage();
      Status sinkMessage(Message message);
      void terminate(Status status);
      bool isConnected() const;
      bool isFromLoadBalancer() const;
      

            Assignee:
            amirsaman.memaripour@mongodb.com Amirsaman Memaripour
            Reporter:
            amirsaman.memaripour@mongodb.com Amirsaman Memaripour
            Votes:
            0 Vote for this issue
            Watchers:
            2 Start watching this issue

              Created:
              Updated:
              Resolved: