How to optimize Scheduler/ReservationPool performance with many vehicles and global traffic state? #267
Unanswered
lingyuan-robot
asked this question in
Q&A
Replies: 0 comments
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Uh oh!
There was an error while loading. Please reload this page.
Hello openTCS maintainers,
We are developing an AGV/RCS system in C# and are currently investigating a performance bottleneck in our traffic control module.
Our traffic control module maintains a global, consistent state containing:
To guarantee consistency, the runtime traffic state is protected by a global lock.
The current process is approximately:
As the number of vehicles and planned route segments increases, the computation inside the critical section becomes expensive. Multiple threads or microservices do not solve the problem because the final resource allocation decision still requires a single consistent view of the traffic state.
We are studying the openTCS
Scheduler,ReservationPool,ReservationEntryandAllocatorTaskimplementations. We would like to understand the recommended design and performance optimization approach.Our questions are:
Does openTCS normally check and allocate only the next resource group in a vehicle's claim, instead of comparing the vehicle's complete route with all other vehicle routes?
Can the
globalSyncObjectinDefaultSchedulerbecome a bottleneck with a large number of vehicles or frequent allocation requests?Is the recommended approach to perform route calculation and complex conflict analysis outside the synchronized section, and keep only resource availability checking and allocation commits inside it?
Are there recommended limits for the number of resources included in each allocation request or claim group?
For larger systems, does openTCS recommend resource zoning, multiple schedulers, custom
AllocationAdvisorimplementations, or another strategy?Are there any benchmarks, documentation, examples or production experience related to Scheduler performance with many vehicles?
Thanks!
All reactions