From Fedora Project Wiki
(Parallel Execution of Yum Process. and locking need to shifted at installation)
 
(thank you for submitting this feature page--to send it on to FESCo there must be someone committed to implementing the feature)
 
(One intermediate revision by one other user not shown)
Line 3: Line 3:


== Summary ==
== Summary ==
<!-- A sentence or two summarizing what this feature is and what it will do.  This information is used for the overall feature summary page for each release. -->
Any person can execute multiple instances of yum. Right now this is happening but locking need to taken place only when installation taken place. and it need to have way to download the files.
Any person can execute multiple instances of yum. Right now this is happening but locking need to taken place only when installation taken place. and it need to have way to download the files.
 
 
== Owner ==
== Owner ==
<!--This should link to your home wiki page so we know who you are-->
* Name: Manish Runwal
* Name: Manish Runwal
<!-- Include you email address that you can be reached should people want to contact you about helping with your feature, status is requested, or  technical issues need to be resolved-->
* email: m_runwal@yahoo.com
* email: m_runwal@yahoo.com


== Current status ==
== Current status ==
* Targeted release: [[Releases/{{FedoraVersion||next}} | {{FedoraVersion|long|next}} ]]  
* Targeted release: [[Releases/13 | Fedora 13]]  
* Last updated: 3-Dec-2009
* Last updated: 2009-12-03
* Percentage of completion: 0%
* Percentage of completion: 0%
<!-- CHANGE THE "FedoraVersion" TEMPLATES ABOVE TO PLAIN NUMBERS WHEN YOU COMPLETE YOUR PAGE. -->


== Detailed Description ==
== Detailed Description ==
Line 31: Line 24:


Doing this we can fully optimize yum features. and we can download and install many files. and locking will be taken place only at the time of installation.  
Doing this we can fully optimize yum features. and we can download and install many files. and locking will be taken place only at the time of installation.  


== Benefit to Fedora ==
== Benefit to Fedora ==
Right now existing yum. let say it will take 50% amount of time to download particular package. and 10% time to check dependencies and 10% time for installation and 10% time for cleaning the older files. (Please note that percentages are assumptions). so actual so when one instances is installing the files. other yum instance will download the files. This will speed up installation process.
Right now existing yum. let say it will take 50% amount of time to download particular package. and 10% time to check dependencies and 10% time for installation and 10% time for cleaning the older files. (Please note that percentages are assumptions). so actual so when one instances is installing the files. other yum instance will download the files. This will speed up installation process.


== Scope ==
== Scope ==
I am not sure. But it will be affected with yum, kpackegekit. and add-remove programs.
I am not sure. But it will be affected with yum, kpackegekit. and add-remove programs.


== How To Test ==
== How To Test ==
Line 46: Line 36:
* Normal Executation
* Normal Executation
0. Start yum to install gedit
0. Start yum to install gedit
1. At the same time yum to install juk/amarok.  
1. At the same time yum to install juk/amarok.  
2. It will check for dependencies. now here we don't find any collision rpm.  
2. It will check for dependencies. now here we don't find any collision rpm.  
2. So yum will  download gedit files. at the '''same''' time it will download juk/amarok files.
2. So yum will  download gedit files. at the '''same''' time it will download juk/amarok files.
3. Now it will installed gedit. for juk installation it will get lock as yum is doing installation.
3. Now it will installed gedit. for juk installation it will get lock as yum is doing installation.
4. Installation lock will be free. and now juk will be installed.
4. Installation lock will be free. and now juk will be installed.
5. Now cleaning process of gedit taken place. and the same time cleaning process of juk will take place.
5. Now cleaning process of gedit taken place. and the same time cleaning process of juk will take place.


Line 58: Line 54:
Let say any person is installing gedit and another instance any gnome-package
Let say any person is installing gedit and another instance any gnome-package
0. yum will parallel download both files.
0. yum will parallel download both files.
1. let say one file which yum is downloading other instance of yum is also downloading the same file.
1. let say one file which yum is downloading other instance of yum is also downloading the same file.
2. So for first instance it will download the collision file. but for other instance he will given message on that terminal(I am expecting that we are doing this on terminal, once everything is properly same features will be used for gui), that "do you want to overwrite package ?" as existing package is downloading by other instance. if he said yes then first instance will not move for installation. while other will go for installation. if their is any deadlock situation then user will abort any instance by either breaking the process.(if its gui then hit cancel)
2. So for first instance it will download the collision file. but for other instance he will given message on that terminal(I am expecting that we are doing this on terminal, once everything is properly same features will be used for gui), that "do you want to overwrite package ?" as existing package is downloading by other instance. if he said yes then first instance will not move for installation. while other will go for installation. if their is any deadlock situation then user will abort any instance by either breaking the process.(if its gui then hit cancel)
3. Lets say for another instance user said cancel then still it will download other files. so first instance will have all the files downloaded. and second instance will not download collision file and other files will be downloaded.
3. Lets say for another instance user said cancel then still it will download other files. so first instance will have all the files downloaded. and second instance will not download collision file and other files will be downloaded.
4. now first installation process will take place. and other instance will see the lock.
4. now first installation process will take place. and other instance will see the lock.
5. Now first process is complete lock will be released and other instances of yum will install the package.
5. Now first process is complete lock will be released and other instances of yum will install the package.
6. Now cleaning of first package taken place without cleaning collision files.
6. Now cleaning of first package taken place without cleaning collision files.
7. Now other process's cleaning take place and removing that collision files as well.
7. Now other process's cleaning take place and removing that collision files as well.
8. And now yum's work is finished.
8. And now yum's work is finished.


Line 71: Line 75:
== User Experience ==
== User Experience ==
They can download files of both packages on different terminal (might be different user who is accessing same machine).
They can download files of both packages on different terminal (might be different user who is accessing same machine).


== Dependencies ==
== Dependencies ==
Line 89: Line 92:




[[Category:FeatureReadyForWrangler]]
[[Category:FeaturePageIncomplete]]
<!-- When your feature page is completed and ready for review -->
<!-- When your feature page is completed and ready for review -->
<!-- remove Category:FeaturePageIncomplete and change it to Category:FeatureReadyForWrangler -->
<!-- remove Category:FeaturePageIncomplete and change it to Category:FeatureReadyForWrangler -->
<!-- After review, the feature wrangler will move your page to Category:FeatureReadyForFesco... if it still needs more work it will move back to Category:FeaturePageIncomplete-->
<!-- After review, the feature wrangler will move your page to Category:FeatureReadyForFesco... if it still needs more work it will move back to Category:FeaturePageIncomplete-->
<!-- A pretty picture of the page category usage is at: https://fedoraproject.org/wiki/Features/Policy/Process -->
<!-- A pretty picture of the page category usage is at: https://fedoraproject.org/wiki/Features/Policy/Process -->

Latest revision as of 19:07, 8 December 2009

Feature Name

Execution of Parallel yum. and locking should be shifted at the time of installing.

Summary

Any person can execute multiple instances of yum. Right now this is happening but locking need to taken place only when installation taken place. and it need to have way to download the files.

Owner

  • Name: Manish Runwal
  • email: m_runwal@yahoo.com

Current status

  • Targeted release: Fedora 13
  • Last updated: 2009-12-03
  • Percentage of completion: 0%

Detailed Description

Right now when any application is using yum then locking is taken place for using yum. But some time its non-sense(sorry using hard words) to have it locking. e.g. If I am downloading one application and parallelly I want to install another application where their is no common files. but still yum is locked so I can't even download the files. So I want to have locking need to shifted only at the time of installing any package.

So you might have question. lets say if "A" is instance which is downloading one application with having common rpm with "B" instance have it. while downloading it will ask either A or B whom ever taken first downloading, "Do you want to overwrite the downloading?" then it will be user's concern of managing the things. if certain amount of time person have not responded then installation will not be taken place. and whole package installation will be skipped.

Deadlock situation : If on A instance given permission to download then it will have to either locking of that perticular package for downloading for B instance. So on "B" they will given locking and same can't able to proceed installation of B package.

Doing this we can fully optimize yum features. and we can download and install many files. and locking will be taken place only at the time of installation.

Benefit to Fedora

Right now existing yum. let say it will take 50% amount of time to download particular package. and 10% time to check dependencies and 10% time for installation and 10% time for cleaning the older files. (Please note that percentages are assumptions). so actual so when one instances is installing the files. other yum instance will download the files. This will speed up installation process.

Scope

I am not sure. But it will be affected with yum, kpackegekit. and add-remove programs.

How To Test

Here we have different sets of test cases.

  • Normal Executation

0. Start yum to install gedit

1. At the same time yum to install juk/amarok.

2. It will check for dependencies. now here we don't find any collision rpm.

2. So yum will download gedit files. at the same time it will download juk/amarok files.

3. Now it will installed gedit. for juk installation it will get lock as yum is doing installation.

4. Installation lock will be free. and now juk will be installed.

5. Now cleaning process of gedit taken place. and the same time cleaning process of juk will take place.

I hope this will be easier to understand.

  • Complex Execution

Let say any person is installing gedit and another instance any gnome-package 0. yum will parallel download both files.

1. let say one file which yum is downloading other instance of yum is also downloading the same file.

2. So for first instance it will download the collision file. but for other instance he will given message on that terminal(I am expecting that we are doing this on terminal, once everything is properly same features will be used for gui), that "do you want to overwrite package ?" as existing package is downloading by other instance. if he said yes then first instance will not move for installation. while other will go for installation. if their is any deadlock situation then user will abort any instance by either breaking the process.(if its gui then hit cancel)

3. Lets say for another instance user said cancel then still it will download other files. so first instance will have all the files downloaded. and second instance will not download collision file and other files will be downloaded.

4. now first installation process will take place. and other instance will see the lock.

5. Now first process is complete lock will be released and other instances of yum will install the package.

6. Now cleaning of first package taken place without cleaning collision files.

7. Now other process's cleaning take place and removing that collision files as well.

8. And now yum's work is finished.

Little bit complicated to understand but this will be really beneficial for all people.

User Experience

They can download files of both packages on different terminal (might be different user who is accessing same machine).

Dependencies

I am not the fedora developer but sure fedora programmer surely write something about this.

Contingency Plan

Backup plan is that let yum to work as what its working now.

Documentation

This will be same as what I have described in How to test.

Release Notes

Not sure. But I am expecting on Fedora 13

Comments and Discussion