[zypp-devel] New feature (usability): Report progress in resolving dependency
Hi, I looked for this issue on the code and the wiki and didn't find anything, but if I missed something and this topic has already been discussed or implemented, please tell me =/ I haven't read all the documentation concerning zypp, right now I just wanted to know if what I'm thinking makes sense and would be useful. I think it would be interesting for ZYpp to report it's progress while resolving packages. On YaST, when it calls zypp to resolve, it is only able to pop up a window that says "Solving" and hide it after it's done. This can be an issue if the system freezes on that moment, if you are on text mode remotely you don't have a way to check if the machine is frozen or really solving. I do know this usually takes a small amount of time, but can we can document a maximum wait time or could it actually take very long? An idea to solve this would be to modify the function resolvePool() to accept a callback function pointer as a parameter. It would then call this function passed to it in a regular basis (probably inside resolveDependencies()). This way you could make your own progress bar, animation, etc, function on any graphical toolkit you want. Sorry for the long e-mail, any comments, suggestions and pointers would be nice. Meanwhile I'll keep reading on the ZYpp docs/code and see if I missed something else. Thank you, -- To unsubscribe, e-mail: zypp-devel+unsubscribe@opensuse.org For additional commands, e-mail: zypp-devel+help@opensuse.org
Arthur,
thanks for your suggestion.
* Arthur Rodrigo Sawazachi Valadares
I think it would be interesting for ZYpp to report it's progress while resolving packages.
This indeed makes a lot of sense for traditional dependency resolvers. However, since openSUSE 11.0 we have switched to a new type of resolver, based on boolean satisfiability. See e.g. http://www.satisfiability.org for more about this. As a result, package dependency solving is now blazingly fast and deadlock-free. Klaus --- SUSE LINUX Products GmbH, GF: Markus Rex, HRB 16746 (AG Nürnberg) -- To unsubscribe, e-mail: zypp-devel+unsubscribe@opensuse.org For additional commands, e-mail: zypp-devel+help@opensuse.org
Klaus, Thank you for the quick reply, I wasn't aware of this change in openSUSE 11. With this new type of resolver, we can now document to our clients that package resolving shouldn't take any time at all and if it does, we can guarantee that the machine is frozen and must be rebooted? I know this new resolver is deadlock free, but the machine might hang for any other reason, even malfunctioning hardware. Unless we can tell our clients for sure that it will NEVER take long (by long I'm thinking more then 10 seconds), I think we would still have a possible usability problem. And as a side note, I haven't been keeping up with the latest computer science theories, but as I remember, SAT is a classic NP-Complete problem which would be the opposite to the definition of fast =) Nice to know that someone came up with a good algorithm (approximation?) for it. Thank you, On Tue, 2008-09-23 at 13:06 +0200, Klaus Kaempf wrote:
Arthur,
thanks for your suggestion.
* Arthur Rodrigo Sawazachi Valadares
[Sep 22. 2008 21:55]: I think it would be interesting for ZYpp to report it's progress while resolving packages.
This indeed makes a lot of sense for traditional dependency resolvers.
However, since openSUSE 11.0 we have switched to a new type of resolver, based on boolean satisfiability. See e.g. http://www.satisfiability.org for more about this.
As a result, package dependency solving is now blazingly fast and deadlock-free.
Klaus --- SUSE LINUX Products GmbH, GF: Markus Rex, HRB 16746 (AG Nürnberg)
-- To unsubscribe, e-mail: zypp-devel+unsubscribe@opensuse.org For additional commands, e-mail: zypp-devel+help@opensuse.org
* Arthur Rodrigo Sawazachi Valadares
Klaus,
Thank you for the quick reply, I wasn't aware of this change in openSUSE 11.
With this new type of resolver, we can now document to our clients that package resolving shouldn't take any time at all and if it does, we can guarantee that the machine is frozen and must be rebooted?
From my current experience, I would agree.
I know this new resolver is deadlock free, but the machine might hang for any other reason, even malfunctioning hardware. Unless we can tell our clients for sure that it will NEVER take long (by long I'm thinking more then 10 seconds), I think we would still have a possible usability problem.
Well, if you have an awful lot of package repositories added and a low-memory machine, it might take more than 10 seconds due to swapping ;-)
And as a side note, I haven't been keeping up with the latest computer science theories, but as I remember, SAT is a classic NP-Complete problem which would be the opposite to the definition of fast =)
:-) It indeed is NP-complete. But the problem domain (packages) is sufficiently small to get a reasonable runtime performance.
Nice to know that someone came up with a good algorithm (approximation?) for it.
See http://del.icio.us/kkaempf/sat for a more complete list of references. Klaus -- To unsubscribe, e-mail: zypp-devel+unsubscribe@opensuse.org For additional commands, e-mail: zypp-devel+help@opensuse.org
Klaus, Thank you for your help, if this fast behavior can be documented as such, this is good enough for me. Also, nice set of references to SAT, bookmarked for future research =) Arthur V. On Tue, 2008-09-23 at 14:49 +0200, Klaus Kaempf wrote:
* Arthur Rodrigo Sawazachi Valadares
[Sep 23. 2008 14:44]: Klaus,
Thank you for the quick reply, I wasn't aware of this change in openSUSE 11.
With this new type of resolver, we can now document to our clients that package resolving shouldn't take any time at all and if it does, we can guarantee that the machine is frozen and must be rebooted?
From my current experience, I would agree.
I know this new resolver is deadlock free, but the machine might hang for any other reason, even malfunctioning hardware. Unless we can tell our clients for sure that it will NEVER take long (by long I'm thinking more then 10 seconds), I think we would still have a possible usability problem.
Well, if you have an awful lot of package repositories added and a low-memory machine, it might take more than 10 seconds due to swapping ;-)
And as a side note, I haven't been keeping up with the latest computer science theories, but as I remember, SAT is a classic NP-Complete problem which would be the opposite to the definition of fast =)
:-) It indeed is NP-complete. But the problem domain (packages) is sufficiently small to get a reasonable runtime performance.
Nice to know that someone came up with a good algorithm (approximation?) for it.
See http://del.icio.us/kkaempf/sat for a more complete list of references.
Klaus
-- To unsubscribe, e-mail: zypp-devel+unsubscribe@opensuse.org For additional commands, e-mail: zypp-devel+help@opensuse.org
participants (2)
-
Arthur Rodrigo Sawazachi Valadares
-
Klaus Kaempf