{"push_id":2965853444,"size":2,"distinct_size":2,"ref":"refs/heads/range-scan-concurrency-semaphore/v2","head":"8e254cfb190a6b2f6ea91799782a4641c09eac5b","before":"02138a42d079f31decc1b6a5099327d748b7b054","commits":[{"sha":"75d706f613ff9b5f75eecce0359b3cfbc154382a","author":{"name":"Botond Dénes","email":"a584fa4d75a0a85d721f44fb6e06315a2853b0b6@scylladb.com"},"message":"database: add separate concurrency semaphore for range scans\n\nStateful range scans, introduced in e49a14e308, caused a significant\nincrease of active readers, created on behalf of a range scans. This\nnegatively affects workloads, where range scans and normal reads run\nside-by-side, as they have to compete for the same concurrency\nsemaphore. If Scylla is bombarded with range scans, this semaphore is\nflooded with request for read permits, on behalf of shard readers,\nbelonging to scans, and compete directly with normal reads. To make\nthings worse (from the perspective of normal reads), range scans use\nread ahead, and persist their shard readers at least until the end of\nthe scan.\nTo avoid this direct competition, create a dedicated concurrency\nsemaphore for range scans. Now, shard readers created on behalf of range\nscans will compete only with other shard readers, belonging to other\nrange scans, but not with normal reads.\n\nThe semaphore has the same limits as that of the normal reads. This can\nbe changed later if it proves to be a problem.\n\nThis patch only adds the new semaphore, updating\n`table::make_sstable_reader()` to use the correct semaphore (based on\nthe read range) is left to the next patch.","distinct":true,"url":"https://api.github.com/repos/denesb/scylla/commits/75d706f613ff9b5f75eecce0359b3cfbc154382a"},{"sha":"8e254cfb190a6b2f6ea91799782a4641c09eac5b","author":{"name":"Botond Dénes","email":"a584fa4d75a0a85d721f44fb6e06315a2853b0b6@scylladb.com"},"message":"table::make_sstable_reader(): assign correct semaphore for range scans\n\nIf the read is using the query I/O priority class, decide which semaphore\nto use based on whether the read range is for a single partition or not.\nFor range scans, use the range concurrency semaphore for range scans.\n\nAlso fix up the querier eviction test, to it passes single partition\nranges when reading, as passing a non-singular range now results in\na different semaphore being used.","distinct":true,"url":"https://api.github.com/repos/denesb/scylla/commits/8e254cfb190a6b2f6ea91799782a4641c09eac5b"}]}
{"actor":{"display_login":"denesb"}}