[SERVER-80954] Efficient ref tracking - replace nodeDefs with global map Created: 11/Sep/23  Updated: 06/Oct/23  Resolved: 06/Oct/23

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

Type: Task Priority: Major - P3
Reporter: Timour Katchaounov Assignee: Timour Katchaounov
Resolution: Won't Fix Votes: 0
Labels: M1
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified

Sprint: QO 2023-09-18, QO 2023-10-16
Participants:

 Description   

Replace nodeDefs and defs with a global map.



 Comments   
Comment by Timour Katchaounov [ 05/Oct/23 ]

Unfortunately after several reference tracker improvements were merged into master, re-testing the above doesn't show any significant improvement. As a result, for the time being this change will not be proposed for merging into master. We may revisit again if/when reference tracking becomes a bottleneck in some benchmark(s).

Comment by Timour Katchaounov [ 19/Sep/23 ]

Current progress:

The current implementation clearly shows a performance improvement around 5-6% on top of the above two tasks (master as of 19.09.2023), based on the following measurements:

 

/opt/mongodbtoolchain/v4/bin/python3 benchrun.py --readCmd=true -s /home/ubuntu/dev/master/build/install/bin/mongo -f testcases/* --includeFilter Queries.<test> --threads 1 --trialTime 1 --trialCount 5 --out /tmp/<test>.log
 
* ComplexExpressionQuery_CollScan_CNF
- old: 816
- new: 852
- improvement: 4.4%
* ComplexExpressionQuery_CollScan_DNF
- old: 782
- new: 830
- improvement: 6.1%
* ComplexExpressionQuery_CollScan_MixedBoolExpr
- old: 767
- new: 810
- improvement: 5.6
 
* ComplexExpressionQuery_CollScan_MixedBoolExpr2
- old: 85
- new: 90
- improvement: 5.9%

 

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