On Thu, 2011-10-06 at 23:53 +0530, Tirtha Chatterjee wrote:
> After discussions with a few developers on IRC, we came to draw out a
> few points --
> 
> 1. We need to pass only the metadata that has changed, preferably in
> the form of an xml document (along with the checksum of this delta).
> The changed or new packages will have all the information just like
> normal metadata, and deleted ones will only have the nevra.
> 
> 2. We have to modify yum-metadata-parser to understand the meaning of
> these delta metadatas, and execute sql instructions accordingly. This
> can be done either on the client (where user is supplied with xml
> deltas), or on the server (where user is served with SQL queries by
> the server). I personally am in favour of the former approach, because
> of point 3.

 No, we disabled updates of .sqlite when we are downloading .xml data
because of weird errors we couldn't track down. No _need_ to turn that
back on.

 Just take:

1. Old foo-1.xml data.

2. New foo-1_2.delta.xml data.

...and produce foo-2.xml. We can then checksum this directly against
what we would have downloaded if we'd just downloaded foo-2.xml.
 Then we can use the normal y-m-p code to "move" from foo-1.xml.sqlite
to foo-2.xml.sqlite ... which is very likely just creating it from
scratch (unless someone can work out where the old bugs were, and
"guarantee" it doesn't happen again).

> 3. If we need to checksum the input on which we are applying the delta
> (just to be sure), we would need to apply this diff cleverly on the
> xml present in the user's md cache already, everytime we change the
> sql repo. This way, we can be sure that we have the exact same copy of
> xml as the server at all points of time.
> 
> 4. In case the checksum fails, we revert to downloading the md in
> xml.gz (or better, xml.xz) format.
> 
> 
> Please let know if there are any suggestions / comments / clarifications 
> needed.
> 


_______________________________________________
Yum-devel mailing list
[email protected]
http://lists.baseurl.org/mailman/listinfo/yum-devel

Reply via email to