Prioritization of queries in the archive

The aim of query prioritization is to reduce the load on the archives by using OLE DB provider queries rather than Data Manager queries.

The prioritization can be defined by the user and is realized through three read threads. The config parameter exclusiveReadThreadsForDM = exclusive DM and readThreadsPreferringOleDb = favored OLE DB define whether the DM or OLE DB is used. If an invalid configuration (such as total number of read threads is bigger than 3) is set, a warning is shown and the default values are used. Whether the query had been created by DM or OLE DB, can be detected via an identifier (exclusive DM, favored DM or favored OLE DB). Both config entries have to be defined in the [valarch] section of the config file.

The default settings for the three threads are as follows: one thread handles not-OLE DB queries, the second both (favored not-OLE DB) and the third also both (favored OLE DB). Favored means that a thread handles requests from the pool as long as it is empty. The requests from the not favored pool are handled subsequently.