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.

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.

-- 
Regards
Tirtha Chatterjee
http://wyuka.co.cc/
_______________________________________________
Yum-devel mailing list
Yum-devel@lists.baseurl.org
http://lists.baseurl.org/mailman/listinfo/yum-devel

Reply via email to