
Le 16 juin 2017 à 10:13, Juan Hernández <jhernand@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.