xend: Reduce xenstore transactions when listing domains
authorKeir Fraser <keir@xensource.com>
Tue, 30 Oct 2007 09:19:43 +0000 (09:19 +0000)
committerKeir Fraser <keir@xensource.com>
Tue, 30 Oct 2007 09:19:43 +0000 (09:19 +0000)
commit27d2e52b7cfd4a159a4142d45dde1a93f5a148e3
treeeed3a2102b152681dc17687bc4ec6a1d37f55ce1
parente33d4a73162dac1fe6861f3a5e96de89e30b6a91
xend: Reduce xenstore transactions when listing domains

In summary, this allows a xenstore transaction object to be passed
around the various device controllers, so that they don't have to do
lots of singleton transactions. Transactions have very heavy I/O
impact from xenstored so reducing their number is important.

When running 3 guests, this patch reduces the impact of 'xm list
--long' from 176 transactions, scaling O(n) with guests, to 26
transactions with O(1) scaling.

I have previously attempted to also address the same issue with 'xm
create' but that's much harder since the device front/back handshake
requires that XenD use a number of small transactions. So i've not
changed anything here.

Signed-off-by: Daniel P. Berrange <berrange@redhat.com>
tools/python/xen/xend/XendConfig.py
tools/python/xen/xend/XendDomain.py
tools/python/xen/xend/XendDomainInfo.py
tools/python/xen/xend/server/ConsoleController.py
tools/python/xen/xend/server/DevController.py
tools/python/xen/xend/server/blkif.py
tools/python/xen/xend/server/netif.py
tools/python/xen/xend/server/pciif.py
tools/python/xen/xend/server/tpmif.py
tools/python/xen/xend/server/vfbif.py