[SERVER-74011] Add a new `Session` type for ingress gRPC streams Created: 14/Feb/23  Updated: 29/Oct/23  Resolved: 30/Mar/23

Status: Closed
Project: Core Server
Component/s: Internal Code
Affects Version/s: None
Fix Version/s: 7.0.0-rc0

Type: New Feature Priority: Major - P3
Reporter: Amirsaman Memaripour Assignee: Amirsaman Memaripour
Resolution: Fixed Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified

Assigned Teams:
Service Arch
Backwards Compatibility: Fully Compatible
Sprint: Service Arch 2023-02-20, Service Arch 2023-03-06, Service Arch 2023-03-20, Service Arch 2023-04-03
Participants:

 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;



 Comments   
Comment by Githook User [ 30/Mar/23 ]

Author:

{'name': 'Amirsaman Memaripour', 'email': 'amirsaman.memaripour@mongodb.com', 'username': 'samanca'}

Message: SERVER-74011 Add a new `Session` type for ingress gRPC streams
Branch: master
https://github.com/mongodb/mongo/commit/01d0e04c2a054353d01193ad4ea171517a4f34c2

Generated at Thu Feb 08 06:26:15 UTC 2024 using Jira 9.7.1#970001-sha1:2222b88b221c4928ef0de3161136cc90c8356a66.