Refactoring and performance improvements of the communication with the engines. This is mainly achieved through the use of BlockingQueue's for queries and connections, preventing multiple queries from being executed on the same connection at the same time
The following issues have been resolved:
gRPC channels being over-requested, resulting in exceptions when executing queries in batches
gRPC channels not being shut down properly, resulting in dangling channels
Query backend dropdown not having a value or being set to a backend that had been removed
Duplicate code blocks for gRPC communication (mainly refactored in preparation for simulation queries)
Additionally, multiple consumer threads could be started in the ´BackendDriver´ to execute queries multithreaded (this has been tested). However, as the performance is quite good with just a single thread, this has not been implemented yet.
Refactoring and performance improvements of the communication with the engines. This is mainly achieved through the use of
BlockingQueue
's for queries and connections, preventing multiple queries from being executed on the same connection at the same timeThe following issues have been resolved:
Additionally, multiple consumer threads could be started in the ´BackendDriver´ to execute queries multithreaded (this has been tested). However, as the performance is quite good with just a single thread, this has not been implemented yet.