[SERVER-13454] 2.6 remove writeCmd regression (baseline: 2.4 remove writeOps + GLE) Created: 02/Apr/14 Updated: 10/Dec/14 Resolved: 01/May/14 |
|
| Status: | Closed |
| Project: | Core Server |
| Component/s: | Querying, Write Ops |
| Affects Version/s: | 2.6.0-rc2 |
| Fix Version/s: | None |
| Type: | Bug | Priority: | Major - P3 |
| Reporter: | Davide Italiano | Assignee: | Greg Studer |
| Resolution: | Done | Votes: | 0 |
| Labels: | None | ||
| Remaining Estimate: | Not Specified | ||
| Time Spent: | Not Specified | ||
| Original Estimate: | Not Specified | ||
| Attachments: |
|
| Operating System: | ALL |
| Participants: |
| Description |
|
About 50% slower in my synthetic scenario. The only difference is that (I guess) 2.4 relies on writeOps + GLE while 2.6 uses writeCmd (and so, in my test I didn't call GLE after remove() call). 2.6 testcase:
2.6 results (githash ad91eb0f75f39c1bb71b5e0ca4279b883cb9fe8d ):
2.4 testcase:
2.4 results:
|
| Comments |
| Comment by Greg Studer [ 01/May/14 ] | ||||||||||||||||||||||||||||||||
|
Resolving as "Javascript write commands are slooow" | ||||||||||||||||||||||||||||||||
| Comment by Greg Studer [ 07/Apr/14 ] | ||||||||||||||||||||||||||||||||
|
> Apparently the shell is awfully slow at building the commands, unless I'm missing something. Maybe the title of this ticket should be rephrased to reflect this new problem (if you consider this a problem). Yeah, it is - I'm not sure we care that much for now? No one should really be using the shell underneath an application - and if doing a lot of writes the batching should amortize the costs. David mentioned that he still saw regressions using the python driver - wonder if this is due to the same overhead. Ideally we could keep investigating, but IMO this is lower priority than more realistic write command tests. | ||||||||||||||||||||||||||||||||
| Comment by Davide Italiano [ 04/Apr/14 ] | ||||||||||||||||||||||||||||||||
|
I tested with the C and C++ driver to confirm it was a client-side issue rather than a server side issue, code attached. WriteOps results (against a 2.6 mongod):
WriteOps results (against a 2.4 mongod):
WriteCmd results (against a 2.6 mongod):
The numbers do not show any evident regression in the new write path actually, and 2.6 is slightly faster than 2.4 in this scenario. Back to the Javascript shell I changed the script in this ticket to manually writing write commands instead of using the remove() helper in this way.
instead of
Results (hand-rolled write commands):
Results(helper):
Apparently the shell is awfully slow at building the commands, unless I'm missing something. Maybe the title of this ticket should be rephrased to reflect this new problem (if you consider this a problem). |