From efeed5f811d04c3b106edddace918915d0b84b9f Mon Sep 17 00:00:00 2001 From: Kristian Høgsberg Date: Mon, 3 Sep 2007 14:38:31 -0400 Subject: Add TODO and .gitignore. --- TODO | 37 +++++++++++++++++++++++++++++++++++++ 1 file changed, 37 insertions(+) create mode 100644 TODO (limited to 'TODO') diff --git a/TODO b/TODO new file mode 100644 index 0000000..ea42561 --- /dev/null +++ b/TODO @@ -0,0 +1,37 @@ +- pkg manifest is list of files + + /usr/bin/bash 1321321372198798 + + plus provides, requires and version? + +- keep history of installed packages/journal of package transaction, + so we can roll back to yesterday, or see what got installed in the + latest yum update. + +- we build a cache of the currently installed set to service + dependency inquiries fast: + + map from property to pkg (as hash) providing it + map from property to pkgs requiring it + map from pkg name to manifest + map from string to string pool index + + no implicit provides? not even pkgname? + +- properties are strings, stored in a string table + +- on disk maps are binary files of (string table index, hash) pairs + +- at run time, we mmap the map, and keep changes in memory in a splay + tree or similar. if searching the splay tree fails we punt to the + mmap. once the transaction is done, we merge the map and the splay + tree and write it back out. + +- the on-disk string pool is sorted and we keep a list of indices into + the string pool in sorted order so we can bsearch the list with a + string to get its string pool index. maybe a hash table is better, + less I/O as we will expect to find the string within the block we + look up with the hash function. + +- signed pkgs +- gzip pkg xml files somehow? -- cgit v1.2.3