Re: Another Rust MirrorManager experiment

2020-11-03 Thread Kevin Fenzi
On Mon, Nov 02, 2020 at 07:34:12AM +0100, Adrian Reber wrote:
> On Tue, Oct 06, 2020 at 10:38:40AM -0400, Stephen John Smoogen wrote:
> > On Tue, 6 Oct 2020 at 03:46, Adrian Reber  wrote:
> > 
> > > On Mon, Oct 05, 2020 at 08:30:12AM -0400, Stephen John Smoogen wrote:
> > > > On Mon, 5 Oct 2020 at 02:24, Adrian Reber  wrote:
> > > >
> > >
> > > > We are not wanting to deploy new EL7 systems but would probably install
> > > an
> > > > EL8 box for this. Does this change the need for moving to Fedora on it?
> > >
> > > I just asked on #fedora-rust, but it seems it is not easily possible to
> > > build the Fedora Rust packages for EL8. If I am understanding it
> > > correctly it seems we need to run the Rust based mirrorlist cache
> > > generation on a Fedora host. If we have a second mm-backend system
> > > (mm-backend02) that is Fedora based to generate the mirrorlist cache we
> > > could decrease the amount of RAM (32GB) on mm-backend01 to something
> > > like 8GB.
> > >
> > >
> > OK that makes sense. This will be something that needs upgrading every 6
> > months like our proxies, but it is what it is.
> 
> I have also seen that countme is deployed from ansible directly from
> git. I could do that also for mirrorlist cache generation code on RHEL 7
> which would mean we do not need any other hosts. We could just run it
> directly on mm-backend01 as it is right now and switch between the
> existing Python based code and the new Rust based code just as we need
> it.

Sure, thats ok with me, as long as in ansible we pin to a specific ref
on the git repo (ie, don't just say HEAD and get changes on ansible
runs). 

kevin


signature.asc
Description: PGP signature
___
infrastructure mailing list -- infrastructure@lists.fedoraproject.org
To unsubscribe send an email to infrastructure-le...@lists.fedoraproject.org
Fedora Code of Conduct: 
https://docs.fedoraproject.org/en-US/project/code-of-conduct/
List Guidelines: https://fedoraproject.org/wiki/Mailing_list_guidelines
List Archives: 
https://lists.fedoraproject.org/archives/list/infrastructure@lists.fedoraproject.org


Re: Another Rust MirrorManager experiment

2020-11-01 Thread Adrian Reber
On Tue, Oct 06, 2020 at 10:38:40AM -0400, Stephen John Smoogen wrote:
> On Tue, 6 Oct 2020 at 03:46, Adrian Reber  wrote:
> 
> > On Mon, Oct 05, 2020 at 08:30:12AM -0400, Stephen John Smoogen wrote:
> > > On Mon, 5 Oct 2020 at 02:24, Adrian Reber  wrote:
> > >
> >
> > > We are not wanting to deploy new EL7 systems but would probably install
> > an
> > > EL8 box for this. Does this change the need for moving to Fedora on it?
> >
> > I just asked on #fedora-rust, but it seems it is not easily possible to
> > build the Fedora Rust packages for EL8. If I am understanding it
> > correctly it seems we need to run the Rust based mirrorlist cache
> > generation on a Fedora host. If we have a second mm-backend system
> > (mm-backend02) that is Fedora based to generate the mirrorlist cache we
> > could decrease the amount of RAM (32GB) on mm-backend01 to something
> > like 8GB.
> >
> >
> OK that makes sense. This will be something that needs upgrading every 6
> months like our proxies, but it is what it is.

I have also seen that countme is deployed from ansible directly from
git. I could do that also for mirrorlist cache generation code on RHEL 7
which would mean we do not need any other hosts. We could just run it
directly on mm-backend01 as it is right now and switch between the
existing Python based code and the new Rust based code just as we need
it.

Adrian


signature.asc
Description: PGP signature
___
infrastructure mailing list -- infrastructure@lists.fedoraproject.org
To unsubscribe send an email to infrastructure-le...@lists.fedoraproject.org
Fedora Code of Conduct: 
https://docs.fedoraproject.org/en-US/project/code-of-conduct/
List Guidelines: https://fedoraproject.org/wiki/Mailing_list_guidelines
List Archives: 
https://lists.fedoraproject.org/archives/list/infrastructure@lists.fedoraproject.org


Re: Another Rust MirrorManager experiment

2020-10-06 Thread Stephen John Smoogen
On Tue, 6 Oct 2020 at 03:46, Adrian Reber  wrote:

> On Mon, Oct 05, 2020 at 08:30:12AM -0400, Stephen John Smoogen wrote:
> > On Mon, 5 Oct 2020 at 02:24, Adrian Reber  wrote:
> >
>
> > We are not wanting to deploy new EL7 systems but would probably install
> an
> > EL8 box for this. Does this change the need for moving to Fedora on it?
>
> I just asked on #fedora-rust, but it seems it is not easily possible to
> build the Fedora Rust packages for EL8. If I am understanding it
> correctly it seems we need to run the Rust based mirrorlist cache
> generation on a Fedora host. If we have a second mm-backend system
> (mm-backend02) that is Fedora based to generate the mirrorlist cache we
> could decrease the amount of RAM (32GB) on mm-backend01 to something
> like 8GB.
>
>
OK that makes sense. This will be something that needs upgrading every 6
months like our proxies, but it is what it is.



> Adrian
> ___
> infrastructure mailing list -- infrastructure@lists.fedoraproject.org
> To unsubscribe send an email to
> infrastructure-le...@lists.fedoraproject.org
> Fedora Code of Conduct:
> https://docs.fedoraproject.org/en-US/project/code-of-conduct/
> List Guidelines: https://fedoraproject.org/wiki/Mailing_list_guidelines
> List Archives:
> https://lists.fedoraproject.org/archives/list/infrastructure@lists.fedoraproject.org
>


-- 
Stephen J Smoogen.
___
infrastructure mailing list -- infrastructure@lists.fedoraproject.org
To unsubscribe send an email to infrastructure-le...@lists.fedoraproject.org
Fedora Code of Conduct: 
https://docs.fedoraproject.org/en-US/project/code-of-conduct/
List Guidelines: https://fedoraproject.org/wiki/Mailing_list_guidelines
List Archives: 
https://lists.fedoraproject.org/archives/list/infrastructure@lists.fedoraproject.org


Re: Another Rust MirrorManager experiment

2020-10-06 Thread Adrian Reber
On Mon, Oct 05, 2020 at 08:30:12AM -0400, Stephen John Smoogen wrote:
> On Mon, 5 Oct 2020 at 02:24, Adrian Reber  wrote:
> 
> > On Wed, Jul 01, 2020 at 09:16:05AM -0700, Kevin Fenzi wrote:
> > > On Tue, Jun 30, 2020 at 02:17:30PM +0200, Adrian Reber wrote:
> > > > On Mon, Jun 15, 2020 at 03:36:23PM -0700, Kevin Fenzi wrote:
> > > > > On Wed, Jun 10, 2020 at 11:09:49AM +0200, Adrian Reber wrote:
> > > > > >
> > > > > > Then I just have to wait a bit. No problem.
> > > > > >
> > > > > > > > Having the possibility to generate the mirrorlist input data
> > in about a
> > > > > > > > minute would significantly reduce the load on the database
> > server and
> > > > > > > > enable us to react much faster if broken protobuf data has
> > been synced
> > > > > > > > to the mirrorlist servers on the proxies.
> > > > > > >
> > > > > > > Yeah, and I wonder if it would let us revisit the entire
> > sequence from
> > > > > > > 'update push finished' to updated mirrorlist server.
> > > > >
> > > > > This would help us with the case of:
> > > > > - updates push/rawhide finishes, master mirror is updated.
> > > > > - openqa/other internal thing tries to get images or updates in that
> > > > >   change and gets a metalink with the old checksum so it can't get
> > the
> > > > >   new stuff.
> > > > > - mm-backend01 generates and pushes out a new protobuf.
> > > > > >
> > > > > > Probably. As the new code will not run on the current RHEL 7 based
> > > > > > mm-backend01 would it make sense to run a short running service
> > like
> > > > > > this on Fedora's OpenShift? We could also create a new read-only
> > (SELECT
> > > > > > only) database account for this.
> > > > >
> > > > > We could, or as smooge suggests make a mm-backend02?
> > > > >
> > > > > But I guess now mm-backend02 just generates new proobuf files and
> > copies
> > > > > them to mirrorlists? If thats all it's doing, perhaps we could indeed
> > > > > replace it with an openshift project.
> > > >
> > > > We need a system to run the tool and copy the data to all proxies.
> > > >
> > > > I would like to see a new MirrorManager database user who can only do
> > > > selects as that is all we need.
> > > >
> > > > Currently we copy the files via SSH to the proxies, if we continue
> > doing
> > > > it that way, then we would also need the existing SSH key to copy the
> > > > data to the proxies.
> > > >
> > > > Easiest would probably be a small Fedora 32 based VM with 2GB of
> > memory.
> > >
> > > I'm not sure f32 will work with 2gb memory anymore. I dont think it
> > > installs at any rate.
> > >
> > > I do like the idea of just making it an openshift pod. Perhaps this
> > > could even fit with pingous 'toddlers' setup. ie:
> >
> > I tried to create a toddler, but that setup is too complicated for me.
> > Especially if something is not working it will be almost impossible for
> > me to debug it if it is running somewhere I cannot reach via SSH.
> >
> > I just tried to build the generate-mirrorlist-cache on RHEL 7 (using
> > Rust from EPEL) and it works fine. Instead of 20 minutes it needs 30
> > seconds to generate the mirrorlist cache file on mm-backend01.
> >
> > Although a RPM is available in Fedora I am not sure the RPM can be made
> > available in EPEL 7.
> >
> > RPM Fusion is using the Rust based generate-mirrorlist-cache for some
> > months already and I do not see any problems with it.
> >
> >
> We are not wanting to deploy new EL7 systems but would probably install an
> EL8 box for this. Does this change the need for moving to Fedora on it?

I just asked on #fedora-rust, but it seems it is not easily possible to
build the Fedora Rust packages for EL8. If I am understanding it
correctly it seems we need to run the Rust based mirrorlist cache
generation on a Fedora host. If we have a second mm-backend system
(mm-backend02) that is Fedora based to generate the mirrorlist cache we
could decrease the amount of RAM (32GB) on mm-backend01 to something
like 8GB.

Adrian


signature.asc
Description: PGP signature
___
infrastructure mailing list -- infrastructure@lists.fedoraproject.org
To unsubscribe send an email to infrastructure-le...@lists.fedoraproject.org
Fedora Code of Conduct: 
https://docs.fedoraproject.org/en-US/project/code-of-conduct/
List Guidelines: https://fedoraproject.org/wiki/Mailing_list_guidelines
List Archives: 
https://lists.fedoraproject.org/archives/list/infrastructure@lists.fedoraproject.org


Re: Another Rust MirrorManager experiment

2020-10-05 Thread Stephen John Smoogen
On Mon, 5 Oct 2020 at 02:24, Adrian Reber  wrote:

> On Wed, Jul 01, 2020 at 09:16:05AM -0700, Kevin Fenzi wrote:
> > On Tue, Jun 30, 2020 at 02:17:30PM +0200, Adrian Reber wrote:
> > > On Mon, Jun 15, 2020 at 03:36:23PM -0700, Kevin Fenzi wrote:
> > > > On Wed, Jun 10, 2020 at 11:09:49AM +0200, Adrian Reber wrote:
> > > > >
> > > > > Then I just have to wait a bit. No problem.
> > > > >
> > > > > > > Having the possibility to generate the mirrorlist input data
> in about a
> > > > > > > minute would significantly reduce the load on the database
> server and
> > > > > > > enable us to react much faster if broken protobuf data has
> been synced
> > > > > > > to the mirrorlist servers on the proxies.
> > > > > >
> > > > > > Yeah, and I wonder if it would let us revisit the entire
> sequence from
> > > > > > 'update push finished' to updated mirrorlist server.
> > > >
> > > > This would help us with the case of:
> > > > - updates push/rawhide finishes, master mirror is updated.
> > > > - openqa/other internal thing tries to get images or updates in that
> > > >   change and gets a metalink with the old checksum so it can't get
> the
> > > >   new stuff.
> > > > - mm-backend01 generates and pushes out a new protobuf.
> > > > >
> > > > > Probably. As the new code will not run on the current RHEL 7 based
> > > > > mm-backend01 would it make sense to run a short running service
> like
> > > > > this on Fedora's OpenShift? We could also create a new read-only
> (SELECT
> > > > > only) database account for this.
> > > >
> > > > We could, or as smooge suggests make a mm-backend02?
> > > >
> > > > But I guess now mm-backend02 just generates new proobuf files and
> copies
> > > > them to mirrorlists? If thats all it's doing, perhaps we could indeed
> > > > replace it with an openshift project.
> > >
> > > We need a system to run the tool and copy the data to all proxies.
> > >
> > > I would like to see a new MirrorManager database user who can only do
> > > selects as that is all we need.
> > >
> > > Currently we copy the files via SSH to the proxies, if we continue
> doing
> > > it that way, then we would also need the existing SSH key to copy the
> > > data to the proxies.
> > >
> > > Easiest would probably be a small Fedora 32 based VM with 2GB of
> memory.
> >
> > I'm not sure f32 will work with 2gb memory anymore. I dont think it
> > installs at any rate.
> >
> > I do like the idea of just making it an openshift pod. Perhaps this
> > could even fit with pingous 'toddlers' setup. ie:
>
> I tried to create a toddler, but that setup is too complicated for me.
> Especially if something is not working it will be almost impossible for
> me to debug it if it is running somewhere I cannot reach via SSH.
>
> I just tried to build the generate-mirrorlist-cache on RHEL 7 (using
> Rust from EPEL) and it works fine. Instead of 20 minutes it needs 30
> seconds to generate the mirrorlist cache file on mm-backend01.
>
> Although a RPM is available in Fedora I am not sure the RPM can be made
> available in EPEL 7.
>
> RPM Fusion is using the Rust based generate-mirrorlist-cache for some
> months already and I do not see any problems with it.
>
>
We are not wanting to deploy new EL7 systems but would probably install an
EL8 box for this. Does this change the need for moving to Fedora on it?



> I would like to use this also for Fedora and a dedicated Fedora based VM
> or building from source on RHEL 7 is both possible. Building from source
> does not sound like something used in Fedora Infrastructure so setting
> up a Fedora based VM would be necessary. Would that be possible?
>
> Adrian
> ___
> infrastructure mailing list -- infrastructure@lists.fedoraproject.org
> To unsubscribe send an email to
> infrastructure-le...@lists.fedoraproject.org
> Fedora Code of Conduct:
> https://docs.fedoraproject.org/en-US/project/code-of-conduct/
> List Guidelines: https://fedoraproject.org/wiki/Mailing_list_guidelines
> List Archives:
> https://lists.fedoraproject.org/archives/list/infrastructure@lists.fedoraproject.org
>


-- 
Stephen J Smoogen.
___
infrastructure mailing list -- infrastructure@lists.fedoraproject.org
To unsubscribe send an email to infrastructure-le...@lists.fedoraproject.org
Fedora Code of Conduct: 
https://docs.fedoraproject.org/en-US/project/code-of-conduct/
List Guidelines: https://fedoraproject.org/wiki/Mailing_list_guidelines
List Archives: 
https://lists.fedoraproject.org/archives/list/infrastructure@lists.fedoraproject.org


Re: Another Rust MirrorManager experiment

2020-10-05 Thread Adrian Reber
On Wed, Jul 01, 2020 at 09:16:05AM -0700, Kevin Fenzi wrote:
> On Tue, Jun 30, 2020 at 02:17:30PM +0200, Adrian Reber wrote:
> > On Mon, Jun 15, 2020 at 03:36:23PM -0700, Kevin Fenzi wrote:
> > > On Wed, Jun 10, 2020 at 11:09:49AM +0200, Adrian Reber wrote:
> > > > 
> > > > Then I just have to wait a bit. No problem.
> > > > 
> > > > > > Having the possibility to generate the mirrorlist input data in 
> > > > > > about a
> > > > > > minute would significantly reduce the load on the database server 
> > > > > > and
> > > > > > enable us to react much faster if broken protobuf data has been 
> > > > > > synced
> > > > > > to the mirrorlist servers on the proxies.
> > > > > 
> > > > > Yeah, and I wonder if it would let us revisit the entire sequence from
> > > > > 'update push finished' to updated mirrorlist server. 
> > > 
> > > This would help us with the case of: 
> > > - updates push/rawhide finishes, master mirror is updated. 
> > > - openqa/other internal thing tries to get images or updates in that
> > >   change and gets a metalink with the old checksum so it can't get the
> > >   new stuff.
> > > - mm-backend01 generates and pushes out a new protobuf.
> > > > 
> > > > Probably. As the new code will not run on the current RHEL 7 based
> > > > mm-backend01 would it make sense to run a short running service like
> > > > this on Fedora's OpenShift? We could also create a new read-only (SELECT
> > > > only) database account for this.
> > > 
> > > We could, or as smooge suggests make a mm-backend02? 
> > > 
> > > But I guess now mm-backend02 just generates new proobuf files and copies
> > > them to mirrorlists? If thats all it's doing, perhaps we could indeed
> > > replace it with an openshift project. 
> > 
> > We need a system to run the tool and copy the data to all proxies.
> > 
> > I would like to see a new MirrorManager database user who can only do
> > selects as that is all we need.
> > 
> > Currently we copy the files via SSH to the proxies, if we continue doing
> > it that way, then we would also need the existing SSH key to copy the
> > data to the proxies.
> > 
> > Easiest would probably be a small Fedora 32 based VM with 2GB of memory.
> 
> I'm not sure f32 will work with 2gb memory anymore. I dont think it
> installs at any rate. 
> 
> I do like the idea of just making it an openshift pod. Perhaps this
> could even fit with pingous 'toddlers' setup. ie: 

I tried to create a toddler, but that setup is too complicated for me.
Especially if something is not working it will be almost impossible for
me to debug it if it is running somewhere I cannot reach via SSH.

I just tried to build the generate-mirrorlist-cache on RHEL 7 (using
Rust from EPEL) and it works fine. Instead of 20 minutes it needs 30
seconds to generate the mirrorlist cache file on mm-backend01.

Although a RPM is available in Fedora I am not sure the RPM can be made
available in EPEL 7. 

RPM Fusion is using the Rust based generate-mirrorlist-cache for some
months already and I do not see any problems with it.

I would like to use this also for Fedora and a dedicated Fedora based VM
or building from source on RHEL 7 is both possible. Building from source
does not sound like something used in Fedora Infrastructure so setting
up a Fedora based VM would be necessary. Would that be possible?

Adrian


signature.asc
Description: PGP signature
___
infrastructure mailing list -- infrastructure@lists.fedoraproject.org
To unsubscribe send an email to infrastructure-le...@lists.fedoraproject.org
Fedora Code of Conduct: 
https://docs.fedoraproject.org/en-US/project/code-of-conduct/
List Guidelines: https://fedoraproject.org/wiki/Mailing_list_guidelines
List Archives: 
https://lists.fedoraproject.org/archives/list/infrastructure@lists.fedoraproject.org


Re: Another Rust MirrorManager experiment

2020-07-04 Thread Kevin Fenzi
On Wed, Jul 01, 2020 at 06:25:47PM +0200, Adrian Reber wrote:
> 
> No, this part only needs to talk read-only to the database. This is not
> touching anything on the disk besides writing the output. I guess you
> were thinking about the umdl (update-master-directory-listing) part.
> That would need ro access to the file-system.

Right. I was actually thinking of both. 

ie, at some point down the road it might be a nice thing to get all of
mirrormanager in openshift. Each part could be a seperate project or
under one or all as various toddlers, but I think in the end it would
make it more maintainable and also open up some improvements on workflow... 
not to say we couldn't also do this without moving everything to
openshift, but I openshift has some nice advantages from the operations
side anyhow. 

kevin


signature.asc
Description: PGP signature
___
infrastructure mailing list -- infrastructure@lists.fedoraproject.org
To unsubscribe send an email to infrastructure-le...@lists.fedoraproject.org
Fedora Code of Conduct: 
https://docs.fedoraproject.org/en-US/project/code-of-conduct/
List Guidelines: https://fedoraproject.org/wiki/Mailing_list_guidelines
List Archives: 
https://lists.fedoraproject.org/archives/list/infrastructure@lists.fedoraproject.org


Re: Another Rust MirrorManager experiment

2020-07-03 Thread Pierre-Yves Chibon
On Fri, Jul 03, 2020 at 08:03:16AM +0200, Adrian Reber wrote:
> On Thu, Jul 02, 2020 at 09:44:10AM +0200, Pierre-Yves Chibon wrote:
> > On Wed, Jul 01, 2020 at 06:25:47PM +0200, Adrian Reber wrote:
> > > On Wed, Jul 01, 2020 at 09:16:05AM -0700, Kevin Fenzi wrote:
> > > > On Tue, Jun 30, 2020 at 02:17:30PM +0200, Adrian Reber wrote:
> > > > > On Mon, Jun 15, 2020 at 03:36:23PM -0700, Kevin Fenzi wrote:
> > > > > > On Wed, Jun 10, 2020 at 11:09:49AM +0200, Adrian Reber wrote:
> > > > > > > 
> > > > > > > Then I just have to wait a bit. No problem.
> > > > > > > 
> > > > > > > > > Having the possibility to generate the mirrorlist input data 
> > > > > > > > > in about a
> > > > > > > > > minute would significantly reduce the load on the database 
> > > > > > > > > server and
> > > > > > > > > enable us to react much faster if broken protobuf data has 
> > > > > > > > > been synced
> > > > > > > > > to the mirrorlist servers on the proxies.
> > > > > > > > 
> > > > > > > > Yeah, and I wonder if it would let us revisit the entire 
> > > > > > > > sequence from
> > > > > > > > 'update push finished' to updated mirrorlist server. 
> > > > > > 
> > > > > > This would help us with the case of: 
> > > > > > - updates push/rawhide finishes, master mirror is updated. 
> > > > > > - openqa/other internal thing tries to get images or updates in that
> > > > > >   change and gets a metalink with the old checksum so it can't get 
> > > > > > the
> > > > > >   new stuff.
> > > > > > - mm-backend01 generates and pushes out a new protobuf.
> > > > > > > 
> > > > > > > Probably. As the new code will not run on the current RHEL 7 based
> > > > > > > mm-backend01 would it make sense to run a short running service 
> > > > > > > like
> > > > > > > this on Fedora's OpenShift? We could also create a new read-only 
> > > > > > > (SELECT
> > > > > > > only) database account for this.
> > > > > > 
> > > > > > We could, or as smooge suggests make a mm-backend02? 
> > > > > > 
> > > > > > But I guess now mm-backend02 just generates new proobuf files and 
> > > > > > copies
> > > > > > them to mirrorlists? If thats all it's doing, perhaps we could 
> > > > > > indeed
> > > > > > replace it with an openshift project. 
> > > > > 
> > > > > We need a system to run the tool and copy the data to all proxies.
> > > > > 
> > > > > I would like to see a new MirrorManager database user who can only do
> > > > > selects as that is all we need.
> > > > > 
> > > > > Currently we copy the files via SSH to the proxies, if we continue 
> > > > > doing
> > > > > it that way, then we would also need the existing SSH key to copy the
> > > > > data to the proxies.
> > > > > 
> > > > > Easiest would probably be a small Fedora 32 based VM with 2GB of 
> > > > > memory.
> > > > 
> > > > I'm not sure f32 will work with 2gb memory anymore. I dont think it
> > > > installs at any rate. 
> > > > 
> > > > I do like the idea of just making it an openshift pod. Perhaps this
> > > > could even fit with pingous 'toddlers' setup. ie: 
> > > > 
> > > > * listen for message saying a repo has updated
> > > > * update the db
> > > > * create the protobuf
> > > > * push out to proxies
> > > > 
> > > > The only weird part of putting it in openshift is that we would need to
> > > > have fedora_ftp (ro) there available as a volume, but that is doable... 
> > > 
> > > No, this part only needs to talk read-only to the database. This is not
> > > touching anything on the disk besides writing the output. I guess you
> > > were thinking about the umdl (update-master-directory-listing) part.
> > > That would need ro access to the file-system.
> > > 
> > > The part I am talking about just reads the database and creates a
> > > protobuf snapshot of the database which is then used by the mirrorlist
> > > servers on the proxies.
> > > 
> > > Currently it runs once every hour. Which works pretty good so far.
> > > Triggering it on a message makes only limited sense as it depends on the
> > > results of the crawler. We could run it twice an hour to have newer
> > > database snapshots on the proxies.
> > > 
> > > How can I prepare it for running in openshift. Can I use the
> > > configuration for toddlers? Where can I find that?
> > 
> > Toddlers has recently gained the possibility to trigger at certain time. 
> > Well
> > we're actually sort of abusing it, we've added a script (playtime) that will
> > send a fedora-messaging message and that should be called from a cron job. 
> > That
> > message should then trigger the corresponding toddler.
> > 
> > This (playtime) is not yet deployed in production so I can't point you to an
> > example, but the project itself is at:
> > https://pagure.io/fedora-infra/toddlers
> > and the openshift config is at:
> > https://pagure.io/fedora-infra/ansible/blob/master/f/playbooks/openshift-apps/toddlers.yml
> 
> Thanks for the pointer. I had a look at it, but I do not think I
> understand it. So many sections where I have no idea what they do
> 
> I 

Re: Another Rust MirrorManager experiment

2020-07-03 Thread Adrian Reber
On Thu, Jul 02, 2020 at 09:44:10AM +0200, Pierre-Yves Chibon wrote:
> On Wed, Jul 01, 2020 at 06:25:47PM +0200, Adrian Reber wrote:
> > On Wed, Jul 01, 2020 at 09:16:05AM -0700, Kevin Fenzi wrote:
> > > On Tue, Jun 30, 2020 at 02:17:30PM +0200, Adrian Reber wrote:
> > > > On Mon, Jun 15, 2020 at 03:36:23PM -0700, Kevin Fenzi wrote:
> > > > > On Wed, Jun 10, 2020 at 11:09:49AM +0200, Adrian Reber wrote:
> > > > > > 
> > > > > > Then I just have to wait a bit. No problem.
> > > > > > 
> > > > > > > > Having the possibility to generate the mirrorlist input data in 
> > > > > > > > about a
> > > > > > > > minute would significantly reduce the load on the database 
> > > > > > > > server and
> > > > > > > > enable us to react much faster if broken protobuf data has been 
> > > > > > > > synced
> > > > > > > > to the mirrorlist servers on the proxies.
> > > > > > > 
> > > > > > > Yeah, and I wonder if it would let us revisit the entire sequence 
> > > > > > > from
> > > > > > > 'update push finished' to updated mirrorlist server. 
> > > > > 
> > > > > This would help us with the case of: 
> > > > > - updates push/rawhide finishes, master mirror is updated. 
> > > > > - openqa/other internal thing tries to get images or updates in that
> > > > >   change and gets a metalink with the old checksum so it can't get the
> > > > >   new stuff.
> > > > > - mm-backend01 generates and pushes out a new protobuf.
> > > > > > 
> > > > > > Probably. As the new code will not run on the current RHEL 7 based
> > > > > > mm-backend01 would it make sense to run a short running service like
> > > > > > this on Fedora's OpenShift? We could also create a new read-only 
> > > > > > (SELECT
> > > > > > only) database account for this.
> > > > > 
> > > > > We could, or as smooge suggests make a mm-backend02? 
> > > > > 
> > > > > But I guess now mm-backend02 just generates new proobuf files and 
> > > > > copies
> > > > > them to mirrorlists? If thats all it's doing, perhaps we could indeed
> > > > > replace it with an openshift project. 
> > > > 
> > > > We need a system to run the tool and copy the data to all proxies.
> > > > 
> > > > I would like to see a new MirrorManager database user who can only do
> > > > selects as that is all we need.
> > > > 
> > > > Currently we copy the files via SSH to the proxies, if we continue doing
> > > > it that way, then we would also need the existing SSH key to copy the
> > > > data to the proxies.
> > > > 
> > > > Easiest would probably be a small Fedora 32 based VM with 2GB of memory.
> > > 
> > > I'm not sure f32 will work with 2gb memory anymore. I dont think it
> > > installs at any rate. 
> > > 
> > > I do like the idea of just making it an openshift pod. Perhaps this
> > > could even fit with pingous 'toddlers' setup. ie: 
> > > 
> > > * listen for message saying a repo has updated
> > > * update the db
> > > * create the protobuf
> > > * push out to proxies
> > > 
> > > The only weird part of putting it in openshift is that we would need to
> > > have fedora_ftp (ro) there available as a volume, but that is doable... 
> > 
> > No, this part only needs to talk read-only to the database. This is not
> > touching anything on the disk besides writing the output. I guess you
> > were thinking about the umdl (update-master-directory-listing) part.
> > That would need ro access to the file-system.
> > 
> > The part I am talking about just reads the database and creates a
> > protobuf snapshot of the database which is then used by the mirrorlist
> > servers on the proxies.
> > 
> > Currently it runs once every hour. Which works pretty good so far.
> > Triggering it on a message makes only limited sense as it depends on the
> > results of the crawler. We could run it twice an hour to have newer
> > database snapshots on the proxies.
> > 
> > How can I prepare it for running in openshift. Can I use the
> > configuration for toddlers? Where can I find that?
> 
> Toddlers has recently gained the possibility to trigger at certain time. Well
> we're actually sort of abusing it, we've added a script (playtime) that will
> send a fedora-messaging message and that should be called from a cron job. 
> That
> message should then trigger the corresponding toddler.
> 
> This (playtime) is not yet deployed in production so I can't point you to an
> example, but the project itself is at:
> https://pagure.io/fedora-infra/toddlers
> and the openshift config is at:
> https://pagure.io/fedora-infra/ansible/blob/master/f/playbooks/openshift-apps/toddlers.yml

Thanks for the pointer. I had a look at it, but I do not think I
understand it. So many sections where I have no idea what they do

I would need some help setting this up.

Adrian
___
infrastructure mailing list -- infrastructure@lists.fedoraproject.org
To unsubscribe send an email to infrastructure-le...@lists.fedoraproject.org
Fedora Code of Conduct: 

Re: Another Rust MirrorManager experiment

2020-07-02 Thread Pierre-Yves Chibon
On Wed, Jul 01, 2020 at 06:25:47PM +0200, Adrian Reber wrote:
> On Wed, Jul 01, 2020 at 09:16:05AM -0700, Kevin Fenzi wrote:
> > On Tue, Jun 30, 2020 at 02:17:30PM +0200, Adrian Reber wrote:
> > > On Mon, Jun 15, 2020 at 03:36:23PM -0700, Kevin Fenzi wrote:
> > > > On Wed, Jun 10, 2020 at 11:09:49AM +0200, Adrian Reber wrote:
> > > > > 
> > > > > Then I just have to wait a bit. No problem.
> > > > > 
> > > > > > > Having the possibility to generate the mirrorlist input data in 
> > > > > > > about a
> > > > > > > minute would significantly reduce the load on the database server 
> > > > > > > and
> > > > > > > enable us to react much faster if broken protobuf data has been 
> > > > > > > synced
> > > > > > > to the mirrorlist servers on the proxies.
> > > > > > 
> > > > > > Yeah, and I wonder if it would let us revisit the entire sequence 
> > > > > > from
> > > > > > 'update push finished' to updated mirrorlist server. 
> > > > 
> > > > This would help us with the case of: 
> > > > - updates push/rawhide finishes, master mirror is updated. 
> > > > - openqa/other internal thing tries to get images or updates in that
> > > >   change and gets a metalink with the old checksum so it can't get the
> > > >   new stuff.
> > > > - mm-backend01 generates and pushes out a new protobuf.
> > > > > 
> > > > > Probably. As the new code will not run on the current RHEL 7 based
> > > > > mm-backend01 would it make sense to run a short running service like
> > > > > this on Fedora's OpenShift? We could also create a new read-only 
> > > > > (SELECT
> > > > > only) database account for this.
> > > > 
> > > > We could, or as smooge suggests make a mm-backend02? 
> > > > 
> > > > But I guess now mm-backend02 just generates new proobuf files and copies
> > > > them to mirrorlists? If thats all it's doing, perhaps we could indeed
> > > > replace it with an openshift project. 
> > > 
> > > We need a system to run the tool and copy the data to all proxies.
> > > 
> > > I would like to see a new MirrorManager database user who can only do
> > > selects as that is all we need.
> > > 
> > > Currently we copy the files via SSH to the proxies, if we continue doing
> > > it that way, then we would also need the existing SSH key to copy the
> > > data to the proxies.
> > > 
> > > Easiest would probably be a small Fedora 32 based VM with 2GB of memory.
> > 
> > I'm not sure f32 will work with 2gb memory anymore. I dont think it
> > installs at any rate. 
> > 
> > I do like the idea of just making it an openshift pod. Perhaps this
> > could even fit with pingous 'toddlers' setup. ie: 
> > 
> > * listen for message saying a repo has updated
> > * update the db
> > * create the protobuf
> > * push out to proxies
> > 
> > The only weird part of putting it in openshift is that we would need to
> > have fedora_ftp (ro) there available as a volume, but that is doable... 
> 
> No, this part only needs to talk read-only to the database. This is not
> touching anything on the disk besides writing the output. I guess you
> were thinking about the umdl (update-master-directory-listing) part.
> That would need ro access to the file-system.
> 
> The part I am talking about just reads the database and creates a
> protobuf snapshot of the database which is then used by the mirrorlist
> servers on the proxies.
> 
> Currently it runs once every hour. Which works pretty good so far.
> Triggering it on a message makes only limited sense as it depends on the
> results of the crawler. We could run it twice an hour to have newer
> database snapshots on the proxies.
> 
> How can I prepare it for running in openshift. Can I use the
> configuration for toddlers? Where can I find that?

Toddlers has recently gained the possibility to trigger at certain time. Well
we're actually sort of abusing it, we've added a script (playtime) that will
send a fedora-messaging message and that should be called from a cron job. That
message should then trigger the corresponding toddler.

This (playtime) is not yet deployed in production so I can't point you to an
example, but the project itself is at:
https://pagure.io/fedora-infra/toddlers
and the openshift config is at:
https://pagure.io/fedora-infra/ansible/blob/master/f/playbooks/openshift-apps/toddlers.yml


Pierre
___
infrastructure mailing list -- infrastructure@lists.fedoraproject.org
To unsubscribe send an email to infrastructure-le...@lists.fedoraproject.org
Fedora Code of Conduct: 
https://docs.fedoraproject.org/en-US/project/code-of-conduct/
List Guidelines: https://fedoraproject.org/wiki/Mailing_list_guidelines
List Archives: 
https://lists.fedoraproject.org/archives/list/infrastructure@lists.fedoraproject.org


Re: Another Rust MirrorManager experiment

2020-07-01 Thread Adrian Reber
On Wed, Jul 01, 2020 at 09:16:05AM -0700, Kevin Fenzi wrote:
> On Tue, Jun 30, 2020 at 02:17:30PM +0200, Adrian Reber wrote:
> > On Mon, Jun 15, 2020 at 03:36:23PM -0700, Kevin Fenzi wrote:
> > > On Wed, Jun 10, 2020 at 11:09:49AM +0200, Adrian Reber wrote:
> > > > 
> > > > Then I just have to wait a bit. No problem.
> > > > 
> > > > > > Having the possibility to generate the mirrorlist input data in 
> > > > > > about a
> > > > > > minute would significantly reduce the load on the database server 
> > > > > > and
> > > > > > enable us to react much faster if broken protobuf data has been 
> > > > > > synced
> > > > > > to the mirrorlist servers on the proxies.
> > > > > 
> > > > > Yeah, and I wonder if it would let us revisit the entire sequence from
> > > > > 'update push finished' to updated mirrorlist server. 
> > > 
> > > This would help us with the case of: 
> > > - updates push/rawhide finishes, master mirror is updated. 
> > > - openqa/other internal thing tries to get images or updates in that
> > >   change and gets a metalink with the old checksum so it can't get the
> > >   new stuff.
> > > - mm-backend01 generates and pushes out a new protobuf.
> > > > 
> > > > Probably. As the new code will not run on the current RHEL 7 based
> > > > mm-backend01 would it make sense to run a short running service like
> > > > this on Fedora's OpenShift? We could also create a new read-only (SELECT
> > > > only) database account for this.
> > > 
> > > We could, or as smooge suggests make a mm-backend02? 
> > > 
> > > But I guess now mm-backend02 just generates new proobuf files and copies
> > > them to mirrorlists? If thats all it's doing, perhaps we could indeed
> > > replace it with an openshift project. 
> > 
> > We need a system to run the tool and copy the data to all proxies.
> > 
> > I would like to see a new MirrorManager database user who can only do
> > selects as that is all we need.
> > 
> > Currently we copy the files via SSH to the proxies, if we continue doing
> > it that way, then we would also need the existing SSH key to copy the
> > data to the proxies.
> > 
> > Easiest would probably be a small Fedora 32 based VM with 2GB of memory.
> 
> I'm not sure f32 will work with 2gb memory anymore. I dont think it
> installs at any rate. 
> 
> I do like the idea of just making it an openshift pod. Perhaps this
> could even fit with pingous 'toddlers' setup. ie: 
> 
> * listen for message saying a repo has updated
> * update the db
> * create the protobuf
> * push out to proxies
> 
> The only weird part of putting it in openshift is that we would need to
> have fedora_ftp (ro) there available as a volume, but that is doable... 

No, this part only needs to talk read-only to the database. This is not
touching anything on the disk besides writing the output. I guess you
were thinking about the umdl (update-master-directory-listing) part.
That would need ro access to the file-system.

The part I am talking about just reads the database and creates a
protobuf snapshot of the database which is then used by the mirrorlist
servers on the proxies.

Currently it runs once every hour. Which works pretty good so far.
Triggering it on a message makes only limited sense as it depends on the
results of the crawler. We could run it twice an hour to have newer
database snapshots on the proxies.

How can I prepare it for running in openshift. Can I use the
configuration for toddlers? Where can I find that?

Adrian
___
infrastructure mailing list -- infrastructure@lists.fedoraproject.org
To unsubscribe send an email to infrastructure-le...@lists.fedoraproject.org
Fedora Code of Conduct: 
https://docs.fedoraproject.org/en-US/project/code-of-conduct/
List Guidelines: https://fedoraproject.org/wiki/Mailing_list_guidelines
List Archives: 
https://lists.fedoraproject.org/archives/list/infrastructure@lists.fedoraproject.org


Re: Another Rust MirrorManager experiment

2020-07-01 Thread Kevin Fenzi
On Tue, Jun 30, 2020 at 02:17:30PM +0200, Adrian Reber wrote:
> On Mon, Jun 15, 2020 at 03:36:23PM -0700, Kevin Fenzi wrote:
> > On Wed, Jun 10, 2020 at 11:09:49AM +0200, Adrian Reber wrote:
> > > 
> > > Then I just have to wait a bit. No problem.
> > > 
> > > > > Having the possibility to generate the mirrorlist input data in about 
> > > > > a
> > > > > minute would significantly reduce the load on the database server and
> > > > > enable us to react much faster if broken protobuf data has been synced
> > > > > to the mirrorlist servers on the proxies.
> > > > 
> > > > Yeah, and I wonder if it would let us revisit the entire sequence from
> > > > 'update push finished' to updated mirrorlist server. 
> > 
> > This would help us with the case of: 
> > - updates push/rawhide finishes, master mirror is updated. 
> > - openqa/other internal thing tries to get images or updates in that
> >   change and gets a metalink with the old checksum so it can't get the
> >   new stuff.
> > - mm-backend01 generates and pushes out a new protobuf.
> > > 
> > > Probably. As the new code will not run on the current RHEL 7 based
> > > mm-backend01 would it make sense to run a short running service like
> > > this on Fedora's OpenShift? We could also create a new read-only (SELECT
> > > only) database account for this.
> > 
> > We could, or as smooge suggests make a mm-backend02? 
> > 
> > But I guess now mm-backend02 just generates new proobuf files and copies
> > them to mirrorlists? If thats all it's doing, perhaps we could indeed
> > replace it with an openshift project. 
> 
> We need a system to run the tool and copy the data to all proxies.
> 
> I would like to see a new MirrorManager database user who can only do
> selects as that is all we need.
> 
> Currently we copy the files via SSH to the proxies, if we continue doing
> it that way, then we would also need the existing SSH key to copy the
> data to the proxies.
> 
> Easiest would probably be a small Fedora 32 based VM with 2GB of memory.

I'm not sure f32 will work with 2gb memory anymore. I dont think it
installs at any rate. 

I do like the idea of just making it an openshift pod. Perhaps this
could even fit with pingous 'toddlers' setup. ie: 

* listen for message saying a repo has updated
* update the db
* create the protobuf
* push out to proxies

The only weird part of putting it in openshift is that we would need to
have fedora_ftp (ro) there available as a volume, but that is doable... 

kevin


signature.asc
Description: PGP signature
___
infrastructure mailing list -- infrastructure@lists.fedoraproject.org
To unsubscribe send an email to infrastructure-le...@lists.fedoraproject.org
Fedora Code of Conduct: 
https://docs.fedoraproject.org/en-US/project/code-of-conduct/
List Guidelines: https://fedoraproject.org/wiki/Mailing_list_guidelines
List Archives: 
https://lists.fedoraproject.org/archives/list/infrastructure@lists.fedoraproject.org


Re: Another Rust MirrorManager experiment

2020-06-30 Thread Adrian Reber
On Mon, Jun 15, 2020 at 03:36:23PM -0700, Kevin Fenzi wrote:
> On Wed, Jun 10, 2020 at 11:09:49AM +0200, Adrian Reber wrote:
> > 
> > Then I just have to wait a bit. No problem.
> > 
> > > > Having the possibility to generate the mirrorlist input data in about a
> > > > minute would significantly reduce the load on the database server and
> > > > enable us to react much faster if broken protobuf data has been synced
> > > > to the mirrorlist servers on the proxies.
> > > 
> > > Yeah, and I wonder if it would let us revisit the entire sequence from
> > > 'update push finished' to updated mirrorlist server. 
> 
> This would help us with the case of: 
> - updates push/rawhide finishes, master mirror is updated. 
> - openqa/other internal thing tries to get images or updates in that
>   change and gets a metalink with the old checksum so it can't get the
>   new stuff.
> - mm-backend01 generates and pushes out a new protobuf.
> > 
> > Probably. As the new code will not run on the current RHEL 7 based
> > mm-backend01 would it make sense to run a short running service like
> > this on Fedora's OpenShift? We could also create a new read-only (SELECT
> > only) database account for this.
> 
> We could, or as smooge suggests make a mm-backend02? 
> 
> But I guess now mm-backend02 just generates new proobuf files and copies
> them to mirrorlists? If thats all it's doing, perhaps we could indeed
> replace it with an openshift project. 

We need a system to run the tool and copy the data to all proxies.

I would like to see a new MirrorManager database user who can only do
selects as that is all we need.

Currently we copy the files via SSH to the proxies, if we continue doing
it that way, then we would also need the existing SSH key to copy the
data to the proxies.

Easiest would probably be a small Fedora 32 based VM with 2GB of memory.

Adrian
___
infrastructure mailing list -- infrastructure@lists.fedoraproject.org
To unsubscribe send an email to infrastructure-le...@lists.fedoraproject.org
Fedora Code of Conduct: 
https://docs.fedoraproject.org/en-US/project/code-of-conduct/
List Guidelines: https://fedoraproject.org/wiki/Mailing_list_guidelines
List Archives: 
https://lists.fedoraproject.org/archives/list/infrastructure@lists.fedoraproject.org


Re: Another Rust MirrorManager experiment

2020-06-15 Thread Kevin Fenzi
On Wed, Jun 10, 2020 at 11:09:49AM +0200, Adrian Reber wrote:
> 
> Then I just have to wait a bit. No problem.
> 
> > > Having the possibility to generate the mirrorlist input data in about a
> > > minute would significantly reduce the load on the database server and
> > > enable us to react much faster if broken protobuf data has been synced
> > > to the mirrorlist servers on the proxies.
> > 
> > Yeah, and I wonder if it would let us revisit the entire sequence from
> > 'update push finished' to updated mirrorlist server. 

This would help us with the case of: 
- updates push/rawhide finishes, master mirror is updated. 
- openqa/other internal thing tries to get images or updates in that
  change and gets a metalink with the old checksum so it can't get the
  new stuff.
- mm-backend01 generates and pushes out a new protobuf.
> 
> Probably. As the new code will not run on the current RHEL 7 based
> mm-backend01 would it make sense to run a short running service like
> this on Fedora's OpenShift? We could also create a new read-only (SELECT
> only) database account for this.

We could, or as smooge suggests make a mm-backend02? 

But I guess now mm-backend02 just generates new proobuf files and copies
them to mirrorlists? If thats all it's doing, perhaps we could indeed
replace it with an openshift project. 

kevin


signature.asc
Description: PGP signature
___
infrastructure mailing list -- infrastructure@lists.fedoraproject.org
To unsubscribe send an email to infrastructure-le...@lists.fedoraproject.org
Fedora Code of Conduct: 
https://docs.fedoraproject.org/en-US/project/code-of-conduct/
List Guidelines: https://fedoraproject.org/wiki/Mailing_list_guidelines
List Archives: 
https://lists.fedoraproject.org/archives/list/infrastructure@lists.fedoraproject.org


Re: Another Rust MirrorManager experiment

2020-06-10 Thread Stephen John Smoogen
On Wed, 10 Jun 2020 at 05:10, Adrian Reber  wrote:

> On Thu, Jun 04, 2020 at 07:02:41PM -0700, Kevin Fenzi wrote:
> > On Mon, Jun 01, 2020 at 04:18:35PM +0200, Adrian Reber wrote:
> > > Our MirrorManager setup exports the current state of all mirrors every
> > > hour at :30 to a protobuf based file which is then used by the
> > > mirrorlist servers to answer the requests from yum and dnf.
> > >
> > > The Python script requires up to 10GB of memory and takes between 35
> and
> > > 50 minutes. The script does a lot of SQL queries and also some really
> > > big SQL queries joining up to 6 large MirrorManager tables.
> > >
> > > I have rewritten this Python script in Rust and now it only needs
> around
> > > 1 minute instead of 35 to 50 minutes and only 600MB instead of 10GB.
> >
> > Wow. nice!
> >
> > > I think the biggest difference is that I am almost not doing any joins
> > > in my SQL request. I download all the tables once and then I do a lot
> of
> > > loops over the downloaded tables and this seems to be massively faster.
> > >
> > > As the mirrorlist-server in Rust has proven to be extremely stable over
> > > the last months we have been using it I would also like to replace the
> > > mirrorlist protbuf input generation with my new Rust based code.
> > >
> > > I am planing to try out the new protobuf file in staging in the next
> > > days and would then try to get my new protobuf generation program into
> > > Fedora. Once it is packaged I would discuss here how and if we want to
> > > deploy in Fedora's infrastructure.
> >
> > Cool. You will need to hurry as staging goes off on monday, and back in
> > a few weeks. :)
>
> Then I just have to wait a bit. No problem.
>
> > > Having the possibility to generate the mirrorlist input data in about a
> > > minute would significantly reduce the load on the database server and
> > > enable us to react much faster if broken protobuf data has been synced
> > > to the mirrorlist servers on the proxies.
> >
> > Yeah, and I wonder if it would let us revisit the entire sequence from
> > 'update push finished' to updated mirrorlist server.
>
> Probably. As the new code will not run on the current RHEL 7 based
> mm-backend01 would it make sense to run a short running service like
> this on Fedora's OpenShift? We could also create a new read-only (SELECT
> only) database account for this.
>
>
We can do that or we can make a mm-backend02 which is el8 for this


-- 
Stephen J Smoogen.
___
infrastructure mailing list -- infrastructure@lists.fedoraproject.org
To unsubscribe send an email to infrastructure-le...@lists.fedoraproject.org
Fedora Code of Conduct: 
https://docs.fedoraproject.org/en-US/project/code-of-conduct/
List Guidelines: https://fedoraproject.org/wiki/Mailing_list_guidelines
List Archives: 
https://lists.fedoraproject.org/archives/list/infrastructure@lists.fedoraproject.org


Re: Another Rust MirrorManager experiment

2020-06-10 Thread Adrian Reber
On Thu, Jun 04, 2020 at 07:02:41PM -0700, Kevin Fenzi wrote:
> On Mon, Jun 01, 2020 at 04:18:35PM +0200, Adrian Reber wrote:
> > Our MirrorManager setup exports the current state of all mirrors every
> > hour at :30 to a protobuf based file which is then used by the
> > mirrorlist servers to answer the requests from yum and dnf.
> > 
> > The Python script requires up to 10GB of memory and takes between 35 and
> > 50 minutes. The script does a lot of SQL queries and also some really
> > big SQL queries joining up to 6 large MirrorManager tables.
> > 
> > I have rewritten this Python script in Rust and now it only needs around
> > 1 minute instead of 35 to 50 minutes and only 600MB instead of 10GB.
> 
> Wow. nice!
> 
> > I think the biggest difference is that I am almost not doing any joins
> > in my SQL request. I download all the tables once and then I do a lot of
> > loops over the downloaded tables and this seems to be massively faster.
> > 
> > As the mirrorlist-server in Rust has proven to be extremely stable over
> > the last months we have been using it I would also like to replace the
> > mirrorlist protbuf input generation with my new Rust based code.
> > 
> > I am planing to try out the new protobuf file in staging in the next
> > days and would then try to get my new protobuf generation program into
> > Fedora. Once it is packaged I would discuss here how and if we want to
> > deploy in Fedora's infrastructure.
> 
> Cool. You will need to hurry as staging goes off on monday, and back in
> a few weeks. :) 

Then I just have to wait a bit. No problem.

> > Having the possibility to generate the mirrorlist input data in about a
> > minute would significantly reduce the load on the database server and
> > enable us to react much faster if broken protobuf data has been synced
> > to the mirrorlist servers on the proxies.
> 
> Yeah, and I wonder if it would let us revisit the entire sequence from
> 'update push finished' to updated mirrorlist server. 

Probably. As the new code will not run on the current RHEL 7 based
mm-backend01 would it make sense to run a short running service like
this on Fedora's OpenShift? We could also create a new read-only (SELECT
only) database account for this.

Adrian


signature.asc
Description: PGP signature
___
infrastructure mailing list -- infrastructure@lists.fedoraproject.org
To unsubscribe send an email to infrastructure-le...@lists.fedoraproject.org
Fedora Code of Conduct: 
https://docs.fedoraproject.org/en-US/project/code-of-conduct/
List Guidelines: https://fedoraproject.org/wiki/Mailing_list_guidelines
List Archives: 
https://lists.fedoraproject.org/archives/list/infrastructure@lists.fedoraproject.org


Re: Another Rust MirrorManager experiment

2020-06-04 Thread Kevin Fenzi
On Mon, Jun 01, 2020 at 04:18:35PM +0200, Adrian Reber wrote:
> Our MirrorManager setup exports the current state of all mirrors every
> hour at :30 to a protobuf based file which is then used by the
> mirrorlist servers to answer the requests from yum and dnf.
> 
> The Python script requires up to 10GB of memory and takes between 35 and
> 50 minutes. The script does a lot of SQL queries and also some really
> big SQL queries joining up to 6 large MirrorManager tables.
> 
> I have rewritten this Python script in Rust and now it only needs around
> 1 minute instead of 35 to 50 minutes and only 600MB instead of 10GB.

Wow. nice!

> I think the biggest difference is that I am almost not doing any joins
> in my SQL request. I download all the tables once and then I do a lot of
> loops over the downloaded tables and this seems to be massively faster.
> 
> As the mirrorlist-server in Rust has proven to be extremely stable over
> the last months we have been using it I would also like to replace the
> mirrorlist protbuf input generation with my new Rust based code.
> 
> I am planing to try out the new protobuf file in staging in the next
> days and would then try to get my new protobuf generation program into
> Fedora. Once it is packaged I would discuss here how and if we want to
> deploy in Fedora's infrastructure.

Cool. You will need to hurry as staging goes off on monday, and back in
a few weeks. :) 

> Having the possibility to generate the mirrorlist input data in about a
> minute would significantly reduce the load on the database server and
> enable us to react much faster if broken protobuf data has been synced
> to the mirrorlist servers on the proxies.

Yeah, and I wonder if it would let us revisit the entire sequence from
'update push finished' to updated mirrorlist server. 

Great stuff! Thanks for working on it!

kevin


signature.asc
Description: PGP signature
___
infrastructure mailing list -- infrastructure@lists.fedoraproject.org
To unsubscribe send an email to infrastructure-le...@lists.fedoraproject.org
Fedora Code of Conduct: 
https://docs.fedoraproject.org/en-US/project/code-of-conduct/
List Guidelines: https://fedoraproject.org/wiki/Mailing_list_guidelines
List Archives: 
https://lists.fedoraproject.org/archives/list/infrastructure@lists.fedoraproject.org