[SERVER-4563] simplify ClientCursor lifecycle Created: 27/Dec/11 Updated: 06/Dec/22 Resolved: 07/Feb/19 |
|
| Status: | Closed |
| Project: | Core Server |
| Component/s: | Querying |
| Affects Version/s: | None |
| Fix Version/s: | None |
| Type: | Improvement | Priority: | Major - P3 |
| Reporter: | Aaron Staple | Assignee: | Backlog - Query Team (Inactive) |
| Resolution: | Done | Votes: | 0 |
| Labels: | None | ||
| Remaining Estimate: | Not Specified | ||
| Time Spent: | Not Specified | ||
| Original Estimate: | Not Specified | ||
| Issue Links: |
|
||||||||
| Assigned Teams: |
Query
|
||||||||
| Participants: | |||||||||
| Description |
|
Currently there are a multiple ways to yield, hold a pointer to a client cursor, delete/erase a client cursor, etc and in some cases these alternative routines have different nonobvious properties. I think some of these implementations can be unified and their operations can be simplified. Also the current implementation will explicitly delete a ClientCursor object once it becomes invalid, often leaving dangling invalid pointers that must be handled properly. This can make yielding and other ClientCursor operations more difficult to implement than necessary. |
| Comments |
| Comment by David Storch [ 04/Feb/19 ] |
|
We've made many improvements to ClientCursor, ClientCursorPin, and CursorManager since this ticket was filed ~7 years ago. I think this can be safely closed as "Gone Away", but I'm flagging for scheduling first so that the Query Team can assess together. |
| Comment by Aaron Staple [ 29/Jan/13 ] |
|
As part of this we might want to merge ClientCursor::Pin and ClientCursor::Holder. All cases of ClientCursor usage likely have the same functional requirements. In particular this will fix |