|
I don't think there's much work here, but I have a few open questions:
- Should we make an effort to ban snapshot reads for aggregations that are actually reading metadata sources (as opposed to reading actual user data with DocumentSourceCursor, or DocumentSourceSampleFromRandomCursor)?
- I think we could end up taking a lot of locks, or taking the same lock recursively many times. In particular $lookup could pose a problem. Any issues we foresee here? I assume we should at least write a test case to make sure this doesn't completely blow up?
- In particular, I notice that the locking code will keep a list of resources to unlock when two-phase locking is enabled. Since $lookup normally acquires and drops locks repeatedly, this list could grow quite long. Is this a problem?
- Anything somehow related to transactions (but not snapshot reads) that I might be missing?
- Can I go ahead and file a server ticket? I have a patch in progress.
- Need to ban $out and change streams? And probably geo near? I better audit the agg language to see if there is anything else that will cause trouble. $mergeCursors maybe?
|