1.1 --- a/TODO Mon Oct 22 22:53:55 2007 -0400
1.2 +++ b/TODO Wed Oct 24 00:02:44 2007 -0400
1.3 @@ -2,45 +2,6 @@
1.4 so we can roll back to yesterday, or see what got installed in the
1.5 latest yum update.
1.6
1.7 -- we build a cache of the currently installed set to service
1.8 - dependency inquiries fast:
1.9 -
1.10 - map from property to pkg (as hash) providing it
1.11 - map from property to pkgs requiring it
1.12 - map from pkg name to manifest
1.13 - map from string to string pool index
1.14 -
1.15 - no implicit provides? not even pkgname?
1.16 -
1.17 -- properties are strings, stored in a string table
1.18 -
1.19 -- on disk maps are binary files of (string table index, hash) pairs
1.20 -
1.21 -- at run time, we mmap the map, and keep changes in memory in a splay
1.22 - tree or similar. if searching the splay tree fails we punt to the
1.23 - mmap. once the transaction is done, we merge the map and the splay
1.24 - tree and write it back out.
1.25 -
1.26 -- the on-disk string pool is sorted and we keep a list of indices into
1.27 - the string pool in sorted order so we can bsearch the list with a
1.28 - string to get its string pool index. maybe a hash table is better,
1.29 - less I/O as we will expect to find the string within the block we
1.30 - look up with the hash function.
1.31 -
1.32 -- represent all files as a breadth first traversal of the tree of all
1.33 - files. each entry has its name (string pool index), the number of
1.34 - immediate children, total number of children, and owning package.
1.35 - for files both these numbers are zero. a file is identified by its
1.36 - index in this flattened tree.
1.37 -
1.38 - to get the file name from an index, we search through the list. by
1.39 - summing up the number of children, we know when to skip a directory
1.40 - and when to descend into one. as we go we accumulate the path
1.41 - elements.
1.42 -
1.43 - hmm, dropping number of immediate children and using a sentinel drops
1.44 - a word from every entry.
1.45 -
1.46 - signed pkgs
1.47
1.48 - gzip repository of look-aside pkg xml files somehow?
1.49 @@ -70,9 +31,6 @@
1.50 way we can assign them unique IDs immediately (like tokenizing
1.51 strings).
1.52
1.53 -- bash completion for 'razor install gtk2-<TAB>' og
1.54 - 'razor install /usr/bin/gtk-perf<TAB>'
1.55 -
1.56 - test suite should be easy, just keep .repo files around and test
1.57 different type of upgrades that way (obsoletes, conflicts, file
1.58 conflicts, file/dir problems etc). Or maybe just keep a simple file
1.59 @@ -86,3 +44,6 @@
1.60 - make packages pointers be either an index into the package pool or a
1.61 direct link to a package when there is only one package. set a high
1.62 bit to indicate which it is. similar for properties.
1.63 +
1.64 +- split out hash table code from importer, make the merger use just
1.65 + the hash table.