[MCOL-2008] Improve QoS against small queries Created: 2018-12-10  Updated: 2022-11-05  Resolved: 2022-11-05

Status: Closed
Project: MariaDB ColumnStore
Component/s: N/A
Affects Version/s: None
Fix Version/s: Icebox

Type: New Feature Priority: Major
Reporter: Patrick LeBlanc (Inactive) Assignee: Todd Stoffel (Inactive)
Resolution: Won't Do Votes: 1
Labels: None


 Description   

In primproc, right now if a short-running query comes in while a long-running one is running, its jobs must wait for all of the large query's jobs to complete before it can run. This impacts everyone using CS for real-time queries and anything else from the same cluster. Prioritizing new queries and small queries over old ones would fix this.

Modifications include:

  1. Modifying PriorityThreadPool to track the total 'scheduled time' of each query (session id at that level iirc) from create to destroy.
  2. ... as a query accumulates more 'scheduled time', PTP demotes it to lower priority queues.
  3. Modifying the jobsteps dictionary-scan and tuplebps to estimate the weight of their work (a simple metric will likely be good enough, ie, the # of blocks to be touched), and propagate this info to primproc so it can insert a query's jobs into the appropriate queue
  4. Modifying JobList to sum the estimates from each jobstep and make the # available to jobsteps.


 Comments   
Comment by Todd Stoffel (Inactive) [ 2022-11-05 ]

Item is out of date. Closing due to inactivity. If you feel this was done in error please open a new ticket.

Generated at Thu Feb 08 02:33:01 UTC 2024 using Jira 8.20.16#820016-sha1:9d11dbea5f4be3d4cc21f03a88dd11d8c8687422.