[SERVER-12380] port update improvements to batch write commands Created: 16/Jan/14 Updated: 11/Jul/16 Resolved: 17/Feb/14 |
|
| Status: | Closed |
| Project: | Core Server |
| Component/s: | Write Ops |
| Affects Version/s: | None |
| Fix Version/s: | 2.6.0-rc0 |
| Type: | Task | Priority: | Major - P3 |
| Reporter: | Greg Studer | Assignee: | Andy Schwerin |
| Resolution: | Done | Votes: | 0 |
| Labels: | None | ||
| Remaining Estimate: | Not Specified | ||
| Time Spent: | Not Specified | ||
| Original Estimate: | Not Specified | ||
| Issue Links: |
|
||||||||
| Participants: | |||||||||
| Description |
|
Improvements to the update code moving parsing outside the dblock should be ported to batch_executor.cpp. |
| Comments |
| Comment by Githook User [ 17/Feb/14 ] |
|
Author: {u'username': u'andy10gen', u'name': u'Andy Schwerin', u'email': u'schwerin@10gen.com'}Message: Doing this requires that the write commands set last error themselves, rather |
| Comment by Githook User [ 14/Feb/14 ] |
|
Author: {u'username': u'andy10gen', u'name': u'Andy Schwerin', u'email': u'schwerin@10gen.com'}Message: This patch introduces an UpdateExecutor type, that encapsulates the work of |
| Comment by Githook User [ 14/Feb/14 ] |
|
Author: {u'username': u'andy10gen', u'name': u'Andy Schwerin', u'email': u'schwerin@10gen.com'}Message: The UpdateDriver represents a document->document transformation described by the |
| Comment by Greg Studer [ 16/Jan/14 ] |
|
Notes from In the current implementation of WriteBatchExecutor::execUpdate a new UpdateDriver object is implicitly created (under the write lock) for each update in the batch. Constructing an UpdateDriver is somewhat expensive. However, an UpdateDriver object can be re-used, so it would be somewhat better if a single UpdateDriver object was created, than reset to handle each individual update operation in the batch. This would amortize the cost of UpdateDriver construction across all of the updates in the batch. This would also have the nice side effect of hoisting UpdateDriver construction out of the write lock, as was done in the old update path. |