]> git.apps.os.sepia.ceph.com Git - ceph.git/commit
OSD: Sharded Op worker queue implementation for handling OSD ops
authorSomnath Roy <somnath.roy@sandisk.com>
Wed, 14 May 2014 23:13:05 +0000 (16:13 -0700)
committerSomnath Roy <somnath.roy@sandisk.com>
Sat, 31 May 2014 01:44:51 +0000 (18:44 -0700)
commit06845d0bf6d6fbbb9916df818be0aca10b7f8ae0
tree3d96609541ff0d875d263d71250ae1a18923cd95
parent8369c08e4c00a3777402e93f810d09f279aae376
OSD: Sharded Op worker queue implementation for handling OSD ops
This is the implementation for the client of the
sharded thread pool/sharded workQ. Removed the op_wq class and now OSD
ops are going through sharded workqueue model which is used by the
sharded threadpool. Derived ShardedOpWQ implementation has a data structure
called ShardData which has it's own lock/cond and storage. ShardedOpWQ
holds a vector of that and the size of the vector is a config option.
During enqueue operation on the queue, the ops are sharded across these
ShardData based on pg hash % number of shards.
Similarly, in the _process function the sharded thread pool threads are
divided across ShardData based on thread index % number of shards

Signed-off-by: Somnath Roy <somnath.roy@sandisk.com>
src/common/config_opts.h
src/osd/OSD.cc
src/osd/OSD.h