Add TODO and .gitignore.
authorKristian Høgsberg <krh@redhat.com>
Mon, 3 Sep 2007 18:38:31 +0000 (14:38 -0400)
committerKristian Høgsberg <krh@redhat.com>
Mon, 3 Sep 2007 18:38:31 +0000 (14:38 -0400)
.gitignore [new file with mode: 0644]
TODO [new file with mode: 0644]

diff --git a/.gitignore b/.gitignore
new file mode 100644 (file)
index 0000000..000843c
--- /dev/null
@@ -0,0 +1,7 @@
+.gitignore
+*.o
+*~
+*.repo
+razor
+pkgs
+set
diff --git a/TODO b/TODO
new file mode 100644 (file)
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?