I think it is known that freight's performance is not perfect. For example in my repo it takes about 20 minutes to add a package to the repo. I must say that my server is quite weak, but still, it is uncomparable with binary tools, like repo-add for pacman, which happens instantly on same hardware.
I'm wondering, is it known what parts of freight are bottlenecks? Was there any such investigation?
Could the problem be solved by writing some parts of freight in C++? What are those parts?
I read the code a bit, not very deep. But, as far as I could understand, for adding a package it is needed to regenerate the whole repo. I.e. it is needed to unpack each package from lib, read control file and then create a new Packages and Release files.
To me it looks like so many unncessary actions for the sake of adding just one or several new packages. Would it make more sense to parse existing Packages, compare with list of files from lib and append only new packages?
Maybe I misunderstand how freight and apt repo works at the moment. Just trying to understand if there is a room for improvement.
Thanks!
I think it is known that
freight's performance is not perfect. For example in my repo it takes about 20 minutes to add a package to the repo. I must say that my server is quite weak, but still, it is uncomparable with binary tools, likerepo-addforpacman, which happens instantly on same hardware.I'm wondering, is it known what parts of freight are bottlenecks? Was there any such investigation?
Could the problem be solved by writing some parts of
freightin C++? What are those parts?I read the code a bit, not very deep. But, as far as I could understand, for adding a package it is needed to regenerate the whole repo. I.e. it is needed to unpack each package from
lib, readcontrolfile and then create a newPackagesandReleasefiles.To me it looks like so many unncessary actions for the sake of adding just one or several new packages. Would it make more sense to parse existing Packages, compare with list of files from
liband append only new packages?Maybe I misunderstand how
freightandaptrepo works at the moment. Just trying to understand if there is a room for improvement.Thanks!