rgw: remove metadata backend from topic#55152
Conversation
|
Looks great. |
| } | ||
|
|
||
|
|
||
| class MetadataObject : public RGWMetadataObject { |
There was a problem hiding this comment.
nit:
all these class names should be prefixed with Topic
MetadataObject
MetadataHandler
MetadataLister
kchheda3
left a comment
There was a problem hiding this comment.
the persistent queue was not added/deleted on secondary zone, so added the logic inside the metadata handler, as without queue the notifications will not work for persistent topics.
Ideally would have wanted to call addition/deletion function inside the topic:write n topic:remove and remove the call from all other places... this ensures its called from single place as is topic creation and deletion now called at single place for all zones, however add_persistent_topic n remove_persistent_topic need the notification manager to be initialized which is true for all s3 calls, however for radosgw-admin command to remove topics the notification-manager is not turned on and returns error. so added the call inside metadata-handler and not removed the code from other places to add/delete queue
it looks easy enough to remove that dependency on the Manager singleton. |
yeah it does have a overload without the Manager, but that overload needs |
ba248ea to
84f6227
Compare
|
This pull request can no longer be automatically merged: a rebase is needed and changes have to be manually resolved |
…n multisite config Signed-off-by: kchheda3 <kchheda3@bloomberg.net>
…ions in multisite config. Signed-off-by: kchheda3 <kchheda3@bloomberg.net>
…een bucket and topics. Signed-off-by: kchheda3 <kchheda3@bloomberg.net>
…ions in multisite config. Signed-off-by: kchheda3 <kchheda3@bloomberg.net>
both locally and in teuthology Signed-off-by: Yuval Lifshitz <ylifshit@redhat.com>
v1 could be enabled only in local tests. teuthology tests would run with v2 Signed-off-by: Yuval Lifshitz <ylifshit@redhat.com>
Signed-off-by: Casey Bodley <cbodley@redhat.com>
73e1929 to
3a092cc
Compare
make the SiteConfig available to all of RGWRados via svc.site instead of storing it in sal::RadosStore Signed-off-by: Casey Bodley <cbodley@redhat.com>
Signed-off-by: Casey Bodley <cbodley@redhat.com>
RGWPubSub constructor takes SiteConfig instead of zonegroup map replace do_all_zonegroups_support_notification_v2() with a generic function rgw::all_zonegroups_support() that handles non-realm configurations too remove unused sal::ZoneGroup::supports_feature() Signed-off-by: Casey Bodley <cbodley@redhat.com>
Signed-off-by: Casey Bodley <cbodley@redhat.com>
metadata sync ignores entries other than MDLOG_STATUS_COMPLETE, so we don't need to write separate prepare/complete entries. metadata mutations can just call complete_entry() on success Signed-off-by: Casey Bodley <cbodley@redhat.com>
3a092cc to
f8f6b11
Compare
src/rgw/rgw_admin.cc
Outdated
| formatter->open_object_section("topic"); | ||
| topic.dump(formatter); | ||
| encode_json("subscribed_buckets", subscribed_buckets, formatter); | ||
| if (!subscribed_buckets.empty()) { |
There was a problem hiding this comment.
probably we should show empty subscribed_buckets [] ?
There was a problem hiding this comment.
ok, i made this conditional so we could use the same helper function for v1 and v2 topics. should v1 output show the []?
There was a problem hiding this comment.
ok, i made this conditional so we could use the same helper function for v1 and v2 topics. should v1 output show the []?
v1 does not even have concept of subscribed_buckets, so only for v2
There was a problem hiding this comment.
reverted this back to show_topics_info_v2() instead of sharing with the v1 case
|
looks good after SiteConfig changes |
rename read_topics()/write_topics() to 'v1' and only call them from internal v1 call paths public get_topics() now calls read_topics_v1() for the v1 case, and does the paginated listing with driver->meta_list_keys_next() for v2 RGWPSListTopicsOp now uses the NextToken request/response params with the paginated get_topics(), limiting responses to 100 entries like AWS 'radosgw-admin topic list' also paginates the listing according to --max-entries to avoid reading everything into memory at once Signed-off-by: Casey Bodley <cbodley@redhat.com>
the format of topic metadata keys is agnostic to the backend, so the parsing/formatting functions should be in rgw_pubsub.h Signed-off-by: Casey Bodley <cbodley@redhat.com>
add a new interface for topic metadata that doesn't depend on metadata backends. this low-level interface is used by both RadosStore and the topic metadata handler remove Driver::delete_bucket_topic_mapping() from sal because the omap object is deleted internally by rgwrados::topic::remove() remove the RGWRados::topics_pool_ctx member Signed-off-by: Casey Bodley <cbodley@redhat.com>
Signed-off-by: Casey Bodley <cbodley@redhat.com>
Signed-off-by: Casey Bodley <cbodley@redhat.com>
f8f6b11 to
1cf5de1
Compare
|
merged with #55657 |
based on #54868 - will rebase once that merges. also relates to #54777 which removes metadata backends, but this PR only contains the topic bits
Show available Jenkins commands
jenkins retest this pleasejenkins test classic perfjenkins test crimson perfjenkins test signedjenkins test make checkjenkins test make check arm64jenkins test submodulesjenkins test dashboardjenkins test dashboard cephadmjenkins test apijenkins test docsjenkins render docsjenkins test ceph-volume alljenkins test ceph-volume toxjenkins test windowsjenkins test rook e2e