[SERVER-4669] query optimizer refactoring after migration to query optimizer cursor Created: 12/Jan/12  Updated: 11/Jul/16  Resolved: 11/Nov/13

Status: Closed
Project: Core Server
Component/s: Querying
Affects Version/s: None
Fix Version/s: 2.4.0

Type: Improvement Priority: Major - P3
Reporter: Aaron Staple Assignee: Unassigned
Resolution: Done Votes: 0
Labels: query_triage
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified

Issue Links:
Depends
depends on SERVER-4148 reimplement findone and count using q... Closed
depends on SERVER-4149 reimplement update and delete using q... Closed
depends on SERVER-4150 reimplement query using query optimiz... Closed
Related
related to SERVER-8790 Introduce composable "stages" in quer... Closed
is related to SERVER-4953 clean/fix exception handling in query... Closed
Participants:

 Description   

Once we're done migrating code to the query optimizer cursor, we can do some refactoring work on the query optimizer.



 Comments   
Comment by auto [ 24/Oct/12 ]

Author:

{u'date': u'2012-09-15T21:28:43-07:00', u'email': u'aaron@10gen.com', u'name': u'Aaron'}

Message: SERVER-4669 Refactoring

Comment by auto [ 25/May/12 ]

Author:

{u'login': u'astaple', u'name': u'Aaron', u'email': u'aaron@10gen.com'}

Message: SERVER-4669 Fix regression where a matcher might not be generated with a proper index key after a multi cursor takeover.
Branch: master
https://github.com/mongodb/mongo/commit/16ccddb3f7ea362c52deed9b592c13ec5dd4ef00

Comment by auto [ 25/May/12 ]

Author:

{u'login': u'astaple', u'name': u'Aaron', u'email': u'aaron@10gen.com'}

Message: SERVER-4669 Make QueryOp noncopyable.
Branch: master
https://github.com/mongodb/mongo/commit/7cd6e4a24055eec2a5b2b7fea71c71f3526778e8

Comment by auto [ 13/Mar/12 ]

Author:

{u'login': u'astaple', u'name': u'Aaron', u'email': u'aaron@10gen.com'}

Message: SERVER-4669 Remove obsolete code for handling collection drops safely without assertion.
Branch: master
https://github.com/mongodb/mongo/commit/4e1c66f452697a1c19af5eca23a0e8dfb37b6895

Comment by auto [ 13/Mar/12 ]

Author:

{u'login': u'astaple', u'name': u'Aaron', u'email': u'aaron@10gen.com'}

Message: SERVER-4669 Simplify QueryOptimizerCursorOp handling of a yield recovery failure; on a collection or index drop this code will no longer be called, because in such a case the QueryOptimizerCursor itself would be contained in a ClientCursor that does not recover.
Branch: master
https://github.com/mongodb/mongo/commit/a6487107c9b18d8d7849cb8b60e62b61a2eb772a

Comment by auto [ 13/Mar/12 ]

Author:

{u'login': u'astaple', u'name': u'Aaron', u'email': u'aaron@10gen.com'}

Message: SERVER-4669 Check end of QueryOp iteration in MultiPlanScanner
Branch: master
https://github.com/mongodb/mongo/commit/5deaa6ca96547e09702780f84e72d00ee28cd4dc

Comment by auto [ 13/Mar/12 ]

Author:

{u'login': u'astaple', u'name': u'Aaron', u'email': u'aaron@10gen.com'}

Message: SERVER-4669 Clean QueryPlanSet::Runner iteration interface, and make iteration safer.
Branch: master
https://github.com/mongodb/mongo/commit/6d3aab6e4d373eac880edb0c3a767c53e28f5836

Comment by auto [ 13/Mar/12 ]

Author:

{u'login': u'astaple', u'name': u'Aaron', u'email': u'aaron@10gen.com'}

Message: SERVER-4669 make some QueryPlanSet::Runner members private
Branch: master
https://github.com/mongodb/mongo/commit/5bf510bf9b5f1f5fdb2084b71761b43ef44f2df9

Comment by auto [ 13/Mar/12 ]

Author:

{u'login': u'astaple', u'name': u'Aaron', u'email': u'aaron@10gen.com'}

Message: SERVER-4669 simplify MultiPlanScanner::nextOp a bit
Branch: master
https://github.com/mongodb/mongo/commit/77b24b3c0cb26810a4987086fa687a1ea79a87b0

Comment by auto [ 13/Mar/12 ]

Author:

{u'login': u'astaple', u'name': u'Aaron', u'email': u'aaron@10gen.com'}

Message: SERVER-4669 remove unused code, simple implementation for MultiCursor::modifiedKeys(), which is never called
Branch: master
https://github.com/mongodb/mongo/commit/47d77da609792d6e2fb24855333c4841b8602555

Comment by auto [ 13/Mar/12 ]

Author:

{u'login': u'astaple', u'name': u'Aaron', u'email': u'aaron@10gen.com'}

Message: SERVER-4669 make nscanned required for MultiCursor, not optional
Branch: master
https://github.com/mongodb/mongo/commit/564de424b79f0dcb7aad5278bd51787733a50333

Comment by auto [ 13/Mar/12 ]

Author:

{u'login': u'astaple', u'name': u'Aaron', u'email': u'aaron@10gen.com'}

Message: SERVER-4669 add some warnings about old (fragile) failed yield recovery requirements
Branch: master
https://github.com/mongodb/mongo/commit/728fdafdbf0b82956c34676db9299d655b119fd8

Comment by auto [ 13/Mar/12 ]

Author:

{u'login': u'astaple', u'name': u'Aaron', u'email': u'aaron@10gen.com'}

Message: SERVER-4669 _fallbackPlans would not be used when not empty, but clear it in QueryPlanSet::init() any case
Branch: master
https://github.com/mongodb/mongo/commit/ff7cd010c5da3a3e49ebf14f2fbb44e8425100dc

Comment by auto [ 13/Mar/12 ]

Author:

{u'login': u'astaple', u'name': u'Aaron', u'email': u'aaron@10gen.com'}

Message: SERVER-4669 Now that in memory sort exceptions are handled by query specific code, only retry a query clause due to exception if the exception occurs on initialization of the clause runner; additionally make it more clear that explain information cannot be recorded for a clause that will be retried
Branch: master
https://github.com/mongodb/mongo/commit/66ad20abd4d99d811cddd354d4958123ef3e4233

Comment by auto [ 11/Mar/12 ]

Author:

{u'login': u'astaple', u'name': u'Aaron', u'email': u'aaron@10gen.com'}

Message: SERVER-4669 SERVER-4484 Cursor::prepareToYield() no longer returns a value; Cursor::supportYields() should be checked before calling Cursor::prepareToYield() if yielding is required
Branch: master
https://github.com/mongodb/mongo/commit/8cf281eb779c7ebccd6c3b5b3783bef7e31c6893

Comment by auto [ 25/Feb/12 ]

Author:

{u'login': u'astaple', u'name': u'Aaron', u'email': u'aaron@10gen.com'}

Message: SERVER-4669 add tests for or clause advancement in multi cursor
Branch: master
https://github.com/mongodb/mongo/commit/292b455151d4e6852ed3a717f12407a8060930ef

Comment by auto [ 25/Feb/12 ]

Author:

{u'login': u'astaple', u'name': u'Aaron', u'email': u'aaron@10gen.com'}

Message: SERVER-4669 remove bestGuessOnly queryoptimizer mode, instead make recorded plan policy a bit richer
Branch: master
https://github.com/mongodb/mongo/commit/cb40560b1a085f9cd0e632b3e6879d6611df10dc

Comment by auto [ 25/Feb/12 ]

Author:

{u'login': u'astaple', u'name': u'Aaron', u'email': u'aaron@10gen.com'}

Message: SERVER-4669 rewrite MultiCursor to call into the MultiPlanScanner directly and avoid use of a special purpose QueryOp
Branch: master
https://github.com/mongodb/mongo/commit/2ccef07da8b4e4da64cbda6de3b52725e16d36d4

Comment by auto [ 25/Feb/12 ]

Author:

{u'login': u'astaple', u'name': u'Aaron', u'email': u'aaron@10gen.com'}

Message: SERVER-4669 added basic toString() functions for queryutil and queryoptimizer classes, just for debugging
Branch: master
https://github.com/mongodb/mongo/commit/84d715a5fd8c594591e12b7a93d65bd0fbf30c2c

Comment by auto [ 25/Feb/12 ]

Author:

{u'login': u'astaple', u'email': u'aaron@10gen.com', u'name': u'Aaron'}

Message: SERVER-4669 remove update dup comment
Branch: master
https://github.com/mongodb/mongo/commit/55cb84305be208e5166baa4788a544973c02c7d4

Comment by auto [ 25/Feb/12 ]

Author:

{u'login': u'astaple', u'name': u'Aaron', u'email': u'aaron@10gen.com'}

Message: SERVER-4669 simplify MultiCursor by removing non handoff constructor; remove $or clause scanning functionality from bestGuessCursor, which had become unused
Branch: master
https://github.com/mongodb/mongo/commit/6d25e34bffac719d9fac314f56aca77f6417f5cb

Comment by auto [ 25/Feb/12 ]

Author:

{u'login': u'astaple', u'name': u'Aaron', u'email': u'aaron@10gen.com'}

Message: SERVER-4669 remove CursorOp abstraction
Branch: master
https://github.com/mongodb/mongo/commit/a55a6a888eadf51489d5b4cefd58628d1e800323

Comment by auto [ 25/Feb/12 ]

Author:

{u'login': u'astaple', u'name': u'Aaron', u'email': u'aaron@10gen.com'}

Message: SERVER-4669 remove MultiCursor arguments that are now unused
Branch: master
https://github.com/mongodb/mongo/commit/cbe73fc1cf3aaa0f47706ac1f6721fbb5312b091

Comment by auto [ 25/Feb/12 ]

Author:

{u'login': u'astaple', u'name': u'Aaron', u'email': u'aaron@10gen.com'}

Message: SERVER-4669 run QueryPlanSet::Runner iteratively directly from MultiPlanScanner
Branch: master
https://github.com/mongodb/mongo/commit/03f8584da52bd271a7e9e62911be064d8465e2a5

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