Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 30 Nov 2018 11:31:44 -0800
From:      Pete Wright <pete@nomadlogic.org>
To:        freebsd-ports@freebsd.org
Subject:   Re: Distributed poudriere
Message-ID:  <2af9f5f8-a109-afb7-68ee-349bd2676dd8@nomadlogic.org>
In-Reply-To: <e67f3445-c4bb-48f2-df4c-616d79231e07@gjunka.com>
References:  <38edd5f9-4a84-a8a6-2439-d54fb826982d@gjunka.com> <e67f3445-c4bb-48f2-df4c-616d79231e07@gjunka.com>

next in thread | previous in thread | raw e-mail | index | archive | help


On 11/30/18 9:08 AM, Grzegorz Junka wrote:
> On 29/11/2018 19:12, Grzegorz Junka wrote:
>> Hello,
>>
>> Is it possible to run poudriere in an agent/server setup? Where one 
>> central server maintains a distfiles folder for already compiled 
>> packages and agents compile packages fetching and installing from the 
>> central server dependencies?
>>
> Just to make it more clear, I am asking about the build process. 
> Poudriere starts the specified amount of jails to build packages in 
> parallel. In each jail it then install dependencies by fetching them 
> from the distfiles folder. After the build is done a new package is 
> created and uploaded to the distfiles folder to be used by builds that 
> require it.
>
> This process is CPU-core-bound, i.e. with 32/64 threads cores it can't 
> really build more than 64 packages in parallel. And systems with so 
> many cores are really expensive. But the whole process is inherently 
> distributed (as long as the amount of packages is big enough so that 
> they can be build in parallel).
>
> Being able to build on multiple cheaper systems with less CPU cores 
> per system over the network seems like a good idea, no?
>

haven't fully thought this idea through, but couldn't you achieve this 
by mounting the Poudriere 'data' directories as an NFS mountpoint?  This 
way each jail would view currently available package metadata and 
hopefully avoid doing duplicate work?

I'm sure there will be racing condition edge cases though which will 
bite you since I don't think there is a build job dispatcher/scheduler 
available in Poudriere.  So for example you may find yourself in a 
situation where multiple jails try building LLVM as it's first package 
which wouldn't really be helpful.

-pete

-- 
Pete Wright
pete@nomadlogic.org
@nomadlogicLA




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?2af9f5f8-a109-afb7-68ee-349bd2676dd8>