[Freeipa-devel] [PATCH 0112-3] Speeding up cli help

David Kupka dkupka at redhat.com
Fri Jul 15 10:53:52 UTC 2016


Hello!

After Honza introduced thin client that builds plugins and commands 
dynamically from schema client became much slower. This is only logical, 
instead of importing a module client now must fetch the schema from 
server, parse it and instantiate the commands using the data.

First step to speed it up was addition of schema cache to client. That 
removed the RTT and download time of fetching schema every time.

Now the most time consuming task became displaying help for lists of 
topics and command and displaying individual topics. This is simply 
because of the need to instantiate all the commands to find the 
relations between topics and commands.

All the necessary bits for server commands and topics are already in the 
schema cache so we can skip this part and generate help from it, right? 
Not so fast!

There are client plugins with commands and topics. So we can generate 
basic bits (list of all topics, list of all commands, list of commands 
for each topic) from schema and store it in cache. Then we need to go 
through all client plugins and get similar bits for client plugins. Then 
we can merge and print.

Still the client response is not as fast as before and I this it even 
can't be. Also first time you display particular topic or list takes 
longer because it must be freshly generated and stored in cache for next 
use. And this is what the attached patches do.

https://fedorahosted.org/freeipa/ticket/6048
-- 
David Kupka
-------------- next part --------------
A non-text attachment was scrubbed...
Name: freeipa-dkupka-0112.0-schema-Generate-help-for-server-plugins-from-schema-.patch
Type: text/x-patch
Size: 7902 bytes
Desc: not available
URL: <http://listman.redhat.com/archives/freeipa-devel/attachments/20160715/67f4f0da/attachment.bin>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: freeipa-dkupka-0113.0-cli-help-Use-cached-help-from-schema.patch
Type: text/x-patch
Size: 12548 bytes
Desc: not available
URL: <http://listman.redhat.com/archives/freeipa-devel/attachments/20160715/67f4f0da/attachment-0001.bin>


More information about the Freeipa-devel mailing list