[SERVER-76040] Make mirrored requests to include tenant information in multitenancy environment Created: 12/Apr/23 Updated: 29/Oct/23 Resolved: 27/Jun/23 |
|
| Status: | Closed |
| Project: | Core Server |
| Component/s: | None |
| Affects Version/s: | None |
| Fix Version/s: | 7.1.0-rc0 |
| Type: | Task | Priority: | Major - P3 |
| Reporter: | Sophia Tan | Assignee: | Jason Chan |
| Resolution: | Fixed | Votes: | 0 |
| Labels: | ntdi_drop_off_tenant, ntdi_must_have | ||
| Remaining Estimate: | Not Specified | ||
| Time Spent: | Not Specified | ||
| Original Estimate: | Not Specified | ||
| Issue Links: |
|
||||||||
| Backwards Compatibility: | Fully Compatible | ||||||||
| Sprint: | Service Arch 2023-06-26, Service Arch 2023-07-10 | ||||||||
| Participants: | |||||||||
| Story Points: | 2 | ||||||||
| Description |
|
If a completed command request on primary is mirrorable, a mirrored request will be send to secondary. We also need to create a new jstest to verify the modification in multitenancy environment. Today, there are some mirrored read no passthrough test cases (eg, noPassthrough/mirror_reads.js). But, no core jstest cases for mirrored read. That's the reason the NTDI jscore passthrough test suit cannot cover it. |
| Comments |
| Comment by Githook User [ 27/Jun/23 ] |
|
Author: {'name': 'Jason Chan', 'email': 'jason.chan@mongodb.com', 'username': 'jasonjhchan'}Message: |
| Comment by Janna Golden [ 07/Jun/23 ] |
|
shameek.ray@mongodb.com, mirrored reads are actually currently allowed in Serverless - this project is changing the way the server handles requests for Serverless customers, and it's important the project maintains the same functionality as we have today. Just to clarify, there isn't actually a deadline for this ticket in the next two weeks, the intention of our ask was that if Service Arch had time to complete this in the 2 sprints (sometime between now and ~July 7) it would help us out. We're aiming to close out this project ASAP as it blocks Cloud from being able to start testing change streams in a Serverless env, and so we were hoping to get help from a few server teams on any remaining work that that team likely knows better/can complete faster than our team could alone, if the other team has bandwidth. I'd expect this ticket to be relatively quick for a Service Arch engineer, but if you all don't have the bandwidth, we'll pull it back on our team. |
| Comment by Shameek Ray [ 06/Jun/23 ] |
|
If Mirrored Reads isn't critical for the Serverless product, I'd like to ask if we can disable mirrored reads for now, if the deadline is for the next two weeks. |
| Comment by Shameek Ray [ 06/Jun/23 ] |
|
What's our perspective on the value this would unlock for Serverless customers? How does this rank up to the Serverless team's priorities? cc chris.shum@mongodb.com |
| Comment by Sophia Tan [ 01/Jun/23 ] |
|
To have the mirrored requests contain the tenant information, we need to append "$tenant" to the payload of the request (code is here). The tenant id can be grabbed from invocation object with function `CommandInvocation::ns()`. |
| Comment by Sophia Tan [ 12/Apr/23 ] |
|
The mirrored requests get failed on secondary silently. It's an `massert` error `6972100` and only prints assert log without being noticed by evergreen. Once we use `tassert` in |