Why librados::IoCtxImpl::notify waits for CEPH_OSD_OP_NOTIFY to complete?

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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



[Index of Archives]     [CEPH Users]     [Ceph Large]     [Information on CEPH]     [Linux BTRFS]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux