Is there a way to replace Pthread threading backend to OpenMP?

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.