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

Add a new `Session` type for ingress gRPC streams

    XMLWordPrintableJSON

Details

    • Icon: New Feature New Feature
    • Resolution: Fixed
    • Icon: Major - P3 Major - P3
    • 7.0.0-rc0
    • None
    • Internal Code
    • 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

    Description

      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;
      

      Attachments

        Activity

          People

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

            Dates

              Created:
              Updated:
              Resolved: