osdc/objecter: Allow objecter to support multiple librados client setting object_requets#67471
osdc/objecter: Allow objecter to support multiple librados client setting object_requets#67471
Conversation
Signed-off-by: Krunal Chheda <kchheda3@bloomberg.net>
…store and Neorados Signed-off-by: Krunal Chheda <kchheda3@bloomberg.net>
| // Use a distinct admin socket command name for the neorados client. | ||
| objecter->init("NeoRados"); |
There was a problem hiding this comment.
consider extending neorados::RADOS::Builder with a set_objecter_admin_socket_name() so an application could have multiple neorados clients as well
There was a problem hiding this comment.
consider extending
neorados::RADOS::Builderwith aset_objecter_admin_socket_name()so an application could have multiple neorados clients as well
thanks @cbodley, this makes sense. I see api interface for neorados::RADOS::Builder class and i can add set_objecter_admin_socket_name as another api exposed by that class.
however not sure how the usage is, i do not see any neorados client currently using the neorados::RADOS::Builder interface.
the current rados store is calling make_neorados()
which directly calls make_with_cct() and skips the Builder interface.
i do see a tool built in neorados.cc that uses builder interface, so the idea is, in future code will not directly call make_with_cct and rather use Buider interface to build nerados client ?
or if we are adding an api to Builder interface, we also add another overload function for make_with_cct() to accept the socket name, so anyone creating neorados either via BUILDER::build() or via make_with_cct() have an option to set the socket name ?
There was a problem hiding this comment.
^ what do you think @adamemerson?
ping @adamemerson
currently rgw creates multiple librados client ( one of config-store, one for rados backend driver, and one more for neorados), so objecter registers admin socket hook of
objecter_requestsonly for the first client.so extend objecter to support multiple librados client by allowing to set custom admin socket name.
Fixes: https://tracker.ceph.com/issues/74983
Contribution Guidelines
To sign and title your commits, please refer to Submitting Patches to Ceph.
If you are submitting a fix for a stable branch (e.g. "quincy"), please refer to Submitting Patches to Ceph - Backports for the proper workflow.
When filling out the below checklist, you may click boxes directly in the GitHub web UI. When entering or editing the entire PR message in the GitHub web UI editor, you may also select a checklist item by adding an
xbetween the brackets:[x]. Spaces and capitalization matter when checking off items this way.Checklist
Show available Jenkins commands
jenkins test classic perfJenkins Job | Jenkins Job Definitionjenkins test crimson perfJenkins Job | Jenkins Job Definitionjenkins test signedJenkins Job | Jenkins Job Definitionjenkins test make checkJenkins Job | Jenkins Job Definitionjenkins test make check arm64Jenkins Job | Jenkins Job Definitionjenkins test submodulesJenkins Job | Jenkins Job Definitionjenkins test dashboardJenkins Job | Jenkins Job Definitionjenkins test dashboard cephadmJenkins Job | Jenkins Job Definitionjenkins test apiJenkins Job | Jenkins Job Definitionjenkins test docsReadTheDocs | Github Workflow Definitionjenkins test ceph-volume allJenkins Jobs | Jenkins Jobs Definitionjenkins test windowsJenkins Job | Jenkins Job Definitionjenkins test rook e2eJenkins Job | Jenkins Job DefinitionYou must only issue one Jenkins command per-comment. Jenkins does not understand
comments with more than one command.