On Wed, Mar 31, 2010 at 10:30:58AM -0700, jeremy avnet
wrote:> Are there any recommendations as to how often a new connection should be
> made versus reused? Right now we create a new connection *every time* we
hit
> libvirt for something. We can easily change this so that a single
connection
> is made for a series of libvirt calls, or even so that a single connection
> is used for the lifetime of the running application.
>
> What are the issues to consider when making these choices?
As of libvirt 0.7.0 or later, libvirt is fully threadsafe allowing many
threads to use the same virConnectPtr concurrently. It will do all
neccessary locking internally to ensure safety. When no API calls are being
issued, there is no harm in keeping the libvirt connection open.
Using a single connection, open at all times you avoid the potentially
high overhead of authentication & encryption setup at time of connect.
I'd always recommend using a single, permanently open connection these days.
Oh, and if you keep the connection open you can register for async events
to be notified when interesting things happen in QEMU
Regards,
Daniel
--
|: Red Hat, Engineering, London -o- http://people.redhat.com/berrange/ :|
|: http://libvirt.org -o- http://virt-manager.org -o- http://deltacloud.org :|
|: http://autobuild.org -o- http://search.cpan.org/~danberr/ :|
|: GnuPG: 7D3B9505 -o- F3C9 553F A1DA 4AC2 5648 23C1 B3DF F742 7D3B 9505 :|