I have done benchmarking of MongoDB using YCSB tool. I observe that it takes more time to run workloads on ARM machine compared to X86. I am curious to know if there is a way to implement OpenMP threading in MongoDB. If yes, it would be of great help if someone could help me do that.
Hi @mukula_seethi.
Regarding ARM performance differences:
- YCSB and the topology used are not always good predictors of real world performance
- We run hundreds of benchmarks and workloads and some perform better and some perform worse.
Regarding threading backend changes:
- MongoDB doesn’t officially support changing this.
- My initial understanding is it would require a number of code changes to support.
- I’m initially unsure of how much work this would be to try. I think it would be an interesting experiment for comparison, depending on the level of engineering effort involved here.
Hi @mukula_seethi : as my colleague Chris said, some workloads perform better on X86 and some on Arm. Sometimes it can depend on the exact CPU of each kind that you compare. I would be surprised if switching to OpenMP was the only way to close the performance gap for your workload. If your organization has a commercial relationship with MongoDB, I suggest contacting our Technical Services team. They have successfully helped many customers tune MongoDB performance for specific workloads and CPUs.