Re: Blocking rados_* calls

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

 



On 10/10/2013 03:45 PM, Sage Weil wrote:
On Thu, 10 Oct 2013, Wido den Hollander wrote:
Hi,

Currently librados blocks all calls when something is not working inside the
Ceph cluster.

This is common practice for fopen(), fread() and fwrite(), but I'm running
into a use-case where I think the rados_connect() should not block
indefinitely.

The use-case here is the RBD storage pool in libvirt. When for whatever reason
libvirt is not able to connect to the Ceph cluster libvirt will simply block
and wait on rados_connect() to complete.

This causes libvirt not being able to report new statistics about the RBD
storage pool, which causes issues again for the applications using it.

Would it be an idea that you can configure librados not to block indefinitely
and return for example ETIMEDOUT?

By default librados could stay blocking like it's now so nothing changes for
existing users.

Yeah I think this is definitely doable.  The simplest would be to have a
configurable (or configurables) that are set via rados_conf_set() (or put
in the config).  There are several timeouts there already, but I think
they don't capture the entire connect sequence.

Want to open a feature ticket?

Done!

http://tracker.ceph.com/issues/6507

Wido


sage



--
Wido den Hollander
42on B.V.

Phone: +31 (0)20 700 9902
Skype: contact42on
--
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