In this post I want to highlight some improvements to the batch framework of Microsoft Dynamics 365 for Finance and Operation, which has been introduced in the last couple of service updates.
The single scheduler has been introduced as flighted feature in platform update 23 and has been enabled by default with 10.0.1 PU25. The feature tries to reduce the locking contention on the batch table by using only a single scheduler for the batch jobs. Without this feature every (batch) AOS acted as a scheduler for batch jobs.
Batch framework contention reduction
The reason for this additional feature to reduce locking contention on batch tables is that there was still too much locking/blocking on those table. The feature has been initial developed in platform update 31 and got backported to platform update 30. If your implementing/using the latest version of 10.0.6 PU30 you will also have some improvement to the initially developed feature, which in total is a major improvement. I can say that without the “Batch framework contention reduction” feature we wouldn´t have been able to manage the load we see in one of our implementation project where we proceed 21k batch jobs during peak hour.
To reduce the contention the feature takes kind of a snapshot of the batch tables via temp tables and only operates on those temp tables. When finishing the work the “real” batch tables get updated by using exist joins to the temp/snapshot tables.
Batch priority-based scheduling
This feature lights up via flighting in version 10.0.7 PU31 und brings in the ability to prioritize batch jobs via batch groups. The priority of the assigned batch group is the default value for each batch jobs but you are able to overwrite the value on each batch job. This is again a major step forward because you are now able to prioritize your critical batch jobs or even reserve capacity for those jobs.
I want to send a big THANKS to Maciek Zarzycki, Will Foreman and the team around them. The last improvements to the batch framework were a major step forward.
Please keep up the good work, as we are all loving batch jobs!