On 03/13/12 09:48, Bart Smaalders wrote:
On 03/08/12 14:10, Brock Pytlik wrote:
On 03/08/12 09:25, Shawn Walker wrote:
On 03/05/12 12:00, Brock Pytlik wrote:
[snip]

Right now we rely on being able to publish multiple packages
at once in ON to get satisfactory performance.  Can we do
the checking single threaded, but actually publish in parallel?

Here's the real constraint, once a package 'pkg:/foo' has been compared to the package 'pkg:/foo' to be published, no other process should start comparing or processing a package with that name (in this case, foo) until the new version has been published.

So, in the RE/ON case, it should be fine as long as two different people don't attempt to publish to a repo at the same time. Looking back at the steps,
1) pkgdep generate can be done in parallel
2) pkgdep resolve -P has to be done single threaded
3) pkgsend fill can be done in parallel
5) comparing the manifests can be done in parallel (whether it's done in parallel or not, the repo's catalog must be unchanging at this point) 6) if the output of comparing the manifests is stored appropriately, then replacing @current with the appropriate versions could be done in parallel once everything in step 5 had finished. I'm not sure parallel would be a huge win here because there would be a substantial bit of duplicated work, but it's worth looking into at least.
7) collapsing and coalescing the dependencies can be done in parallel
8) the second round of comparisons can also be done in parallel (Again though, the repo's catalog must still be unchanging) 9) actually publishing the manifests can be done in parallel though (though only for this set of packages, not for some other set of packages someone else was working on, and the catalog at this point needs to be the same as what it was at step 5)

For simplicity and my own sanity, I've assumed a single, repo level, "lock." In actuality, as long as the set of packages that person A and person B want to publish are completely disjoint, they could both go through the above steps at the same time. Personally, I'd see that as more trouble than it's worth, but implementing that could be done.

Hth,
Brock


- Bart






_______________________________________________
pkg-discuss mailing list
[email protected]
http://mail.opensolaris.org/mailman/listinfo/pkg-discuss

Reply via email to