[Pulp-dev] pulp3: Publishing Proposal

Jeff Ortel jortel at redhat.com
Thu Jun 29 14:15:37 UTC 2017

On 06/28/2017 10:37 PM, Michael Hrivnak wrote:
> On Wed, Jun 28, 2017 at 4:52 PM, Jeff Ortel <jortel at redhat.com <mailto:jortel at redhat.com>> wrote:
>     I considered storing the base path in the Publication. But I don't see how the query using the /path/
>     component of the URL could be indexed if the path is split between the Publication and the LinkedArtifact.
> Ah yes! When I was hurriedly writing earlier, I knew there was some algorithmic problem related to paths but
> couldn't remember what it was. This is it. It's solvable, but at some point you need all the base paths in a
> tree structure that the serving app can use to find the correct match to a full path, similar to traversing
> directories in a filesystem. Or you need some other equivalent algorithm.
> Quickly brainstorming on that though...
> Assume we have a restriction that for any given base path, it must not reside within any other base path. We
> have that restriction today with yum repos.
> Given a path with n segments, for example /a/b/c/foo.rpm would have 3 segments, the serving app could break it
> up into n possible base paths: /a/, /a/b/, /a/b/c/. It can do one database search on publication base paths
> for all n possible paths, and should only get one or zero results. If that field is indexed, this could be a
> quick way to find the right publication. Something like:
> Publication.objects.get(base_path__in=['/a/', '/a/b/', '/a/b/c/'])
> Granted, then you must do a second DB query for the published artifact within that publication. But this
> should all be a very small portion of the total time it takes to actually transmit the file itself, and I
> could easily believe this is as fast as reading a symlink off of an NFS mount.

This seems very promising.  I really do like normalizing the base path by storing in the publication.  I am
also not concerned by 2 queries vs 1.

> -- 
> Michael Hrivnak
> Principal Software Engineer, RHCE 
> Red Hat

-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 847 bytes
Desc: OpenPGP digital signature
URL: <http://listman.redhat.com/archives/pulp-dev/attachments/20170629/92a25650/attachment.sig>

More information about the Pulp-dev mailing list