On 2020-01-13 22:11, Radoslaw Zarzynski wrote:
On Mon, Jan 13, 2020 at 7:38 PM Radoslaw Zarzynski <rzarzyns@redhat.com> wrote:
* crimson-osd is single-threaded at the moment. It won't eat more than 1 CPU core. That's by design.
Quick supplement on that: actually there is a way to let single crimson-osd instance to span multiple CPU cores while preserving the shared-nothing design. Definitely the doors for it should be kept open but – as it requires an extension to the RADOS protocol – it would be preferred to not hurry up.
Am I right that you are talking about several connections between a primary osd and a single client instance? At least I'm picturing that each connection represents a software cpu (or how this thread, which does scheduling, is called?) on osd side. Then I can imagine that a request to a PG goes to one of the connections by simple modulo operation (something like PG_id % Number_of_conns). So all requests to a PG from all clients will be eventually handled by one of the cpu threads. Something like that?
IMHO we should consider it after the seastore (BTW: persistent object store is worth ~200 kcycles / op accordingly to Mark's testing).
May I take a look on the link with numbers and what exactly persistent object store you've mentioning? -- Roman