Hi all.
Almost all changes to RGWCache<T> calls distribute_cache() which
finally calls librados::IoCtxImpl::notify().
notify() waits responses from all rgws watching specific notify.<id>
(from *.rgw.control pool).
If rgw craches then watcher is alive for osd_client_watch_timeout seconds.
And if crached rgw do not respond than notify() waits
client_notify_timeout seconds.
By default client_notify_timeout=10s, and during create bucket it called
twice so create bucket takes 20s if some rgw crached during last
osd_client_watch_timeout period of time.
647ce3387312fc683660c1f3c7571c577379be1c
This commit improved this particular behavior (in master) by disabling
distribute_cache() during bucket creation.
But why librados::IoCtxImpl::notify() waits at all?
CEPH_OSD_OP_NOTIFY is already a linger op and as I understand it means
that it can take long time by design.
And in the same time notification basically is asynchronous.
So why caller of distribute_cache() should wait for updating caches in
all rgws?
Thanks
--
Best regards,
Aleksei Gutikov
--
To unsubscribe from this list: send the line "unsubscribe ceph-devel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html