Add TODO and .gitignore.
1.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
1.2 +++ b/.gitignore Mon Sep 03 14:38:31 2007 -0400
1.3 @@ -0,0 +1,7 @@
1.4 +.gitignore
1.5 +*.o
1.6 +*~
1.7 +*.repo
1.8 +razor
1.9 +pkgs
1.10 +set
2.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
2.2 +++ b/TODO Mon Sep 03 14:38:31 2007 -0400
2.3 @@ -0,0 +1,37 @@
2.4 +- pkg manifest is list of files
2.5 +
2.6 + /usr/bin/bash 1321321372198798
2.7 +
2.8 + plus provides, requires and version?
2.9 +
2.10 +- keep history of installed packages/journal of package transaction,
2.11 + so we can roll back to yesterday, or see what got installed in the
2.12 + latest yum update.
2.13 +
2.14 +- we build a cache of the currently installed set to service
2.15 + dependency inquiries fast:
2.16 +
2.17 + map from property to pkg (as hash) providing it
2.18 + map from property to pkgs requiring it
2.19 + map from pkg name to manifest
2.20 + map from string to string pool index
2.21 +
2.22 + no implicit provides? not even pkgname?
2.23 +
2.24 +- properties are strings, stored in a string table
2.25 +
2.26 +- on disk maps are binary files of (string table index, hash) pairs
2.27 +
2.28 +- at run time, we mmap the map, and keep changes in memory in a splay
2.29 + tree or similar. if searching the splay tree fails we punt to the
2.30 + mmap. once the transaction is done, we merge the map and the splay
2.31 + tree and write it back out.
2.32 +
2.33 +- the on-disk string pool is sorted and we keep a list of indices into
2.34 + the string pool in sorted order so we can bsearch the list with a
2.35 + string to get its string pool index. maybe a hash table is better,
2.36 + less I/O as we will expect to find the string within the block we
2.37 + look up with the hash function.
2.38 +
2.39 +- signed pkgs
2.40 +- gzip pkg xml files somehow?