<feed xmlns='http://www.w3.org/2005/Atom'>
<title>ydb/library/cpp/threading/bounded_queue, branch main</title>
<subtitle>Mirror of YDB github repos</subtitle>
<id>https://code.mastervirt.ru/ydb/atom?h=main</id>
<link rel='self' href='https://code.mastervirt.ru/ydb/atom?h=main'/>
<link rel='alternate' type='text/html' href='https://code.mastervirt.ru/ydb/'/>
<updated>2023-07-28T03:50:19Z</updated>
<entry>
<title>Intermediate changes</title>
<updated>2023-07-28T03:50:19Z</updated>
<author>
<name>robot-piglet</name>
<email>robot-piglet@yandex-team.com</email>
</author>
<published>2023-07-28T03:50:19Z</published>
<link rel='alternate' type='text/html' href='https://code.mastervirt.ru/ydb/commit/?id=85ef4ee49c3edbb700d0ef903d01177bf9984018'/>
<id>urn:sha1:85ef4ee49c3edbb700d0ef903d01177bf9984018</id>
<content type='text'>
</content>
</entry>
<entry>
<title>revert rXXXXXX (see discusstion in pr), will commit again more pci-dss friendly way</title>
<updated>2023-07-27T09:28:50Z</updated>
<author>
<name>kulikov</name>
<email>kulikov@yandex-team.com</email>
</author>
<published>2023-07-27T09:28:50Z</published>
<link rel='alternate' type='text/html' href='https://code.mastervirt.ru/ydb/commit/?id=4a7691c519e6114e013dc1dd0c3b2528154507f9'/>
<id>urn:sha1:4a7691c519e6114e013dc1dd0c3b2528154507f9</id>
<content type='text'>
</content>
</entry>
<entry>
<title>try to get rid of locks and allocations for elastic queue thread pool</title>
<updated>2023-07-21T10:59:33Z</updated>
<author>
<name>kulikov</name>
<email>kulikov@yandex-team.com</email>
</author>
<published>2023-07-21T10:59:33Z</published>
<link rel='alternate' type='text/html' href='https://code.mastervirt.ru/ydb/commit/?id=5706cb392271ea40eab053314e7c0f4d9d4547ba'/>
<id>urn:sha1:5706cb392271ea40eab053314e7c0f4d9d4547ba</id>
<content type='text'>
In case of heavy load and high rps current thread pool implementation seems to have problems at least with contention on lock inside condvar (long futex wait calls from http server listener thread), so try to implement something more efficient:
 - replace condvar with TEventCounter implementation without internal lock (pthread condvar maintains waiters wakeup order, thread pool doesn't need it);
 - introduce well-known bounded mpmc queue over ring buffer;
 - get rid of TDecrementingWrapper;
 - add options to turn on new pool in library/cpp/http/server and search/daemons (will remove after adoption);
 - make elastic queue ut check both versions;
 - workaround problems with android/arm build targets.</content>
</entry>
</feed>
