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
