[ovirt-users] ovirt sdk and pipelining

Fabrice Bacchella fabrice.bacchella at orange.fr
Fri Jun 16 09:24:12 UTC 2017


> Le 16 juin 2017 à 10:13, Juan Hernández <jhernand at redhat.com> a écrit :
> 
> On 06/16/2017 09:52 AM, Fabrice Bacchella wrote:
>> I just read the blog entry about performance increate in for the python sdk (https://www.ovirt.org/blog/2017/05/higher-performance-for-python-sdk/).
>> 
>> I'm quite sceptical about pipelining.

> In our tests pipe-lining dramatically increases the performance in large
> scale environments with high latency. In our tests with 4000 virtual
> machines 10000 disks and 150ms of latency retrieving the complete
> inventory is reduced from approx 1 hour to approx 2 minutes.
> 

Bench are the ultimate judge. So if it works in many different use case for , that's nice and intersting.


> Note that the usage of the HTTP protocol in this scenario is very
> different from the typical usage when a browser retrieves a web page.

Indeed, all the literature is about interactive usage. A very different use case.

> 
>> It also talks about multiple connection, but don't use pycurl.CurlShare(). I thing this might be very helpfull, as it allows to share cookies, see https://curl.haxx.se/libcurl/c/CURLOPT_SHARE.html. 
>> 
> 
> The SDK uses the curl "multi" mechanism, which automatically shares the
> DNS cache.

This: https://curl.haxx.se/libcurl/c/CURLOPT_DNS_USE_GLOBAL_CACHE.html ?

WARNING: this option is considered obsolete. Stop using it. Switch over to using the share interface instead! See CURLOPT_SHARE and curl_share_init.


> In addition version 4 of the SDK does not use cookies. So
> this shouldn't be relevant.

From some of my own code:
        self._share.setopt(pycurl.SH_SHARE, pycurl.LOCK_DATA_COOKIE)
        self._share.setopt(pycurl.SH_SHARE, pycurl.LOCK_DATA_DNS)
        self._share.setopt(pycurl.SH_SHARE, pycurl.LOCK_DATA_SSL_SESSION)

And users apaches settings can use cookies for custom usages.



More information about the Users mailing list