[Uludag-commits] r15285 - branches/pisi-db/pisi/db
uludag-commits at pardus.org.tr
uludag-commits at pardus.org.tr
4 Eyl 2007 Sal 22:20:19 EEST
Author: faik
Date: Tue Sep 4 22:20:19 2007
New Revision: 15285
Modified:
branches/pisi-db/pisi/db/filesdb.py
Log:
Keep path names' md5 for saving space in filesdb
The old berkeley db code was keeping (path, (pkg, fileinfo object))
as (key, value) and its size currenly is:
-rw-r--r-- 1 root root 65314816 Eyl 4 21:48 /var/db/pisi/files.bdb
The new filesystem db code was keeping (path, pkg) as (key, value)
and its size currently is:
-rw-r--r-- 1 root root 20869120 Eyl 4 21:57 /var/lib/pisi/info/files.db
Now with changing this to (md5.new.digest(path), pkg) as (key, value)
-rw-r--r-- 1 root root 10436608 Eyl 4 21:44 /var/lib/pisi/info/files.db
So a total decrease of 6x in disk size regarding to old code.
Special thanks goes to mdakin. :)
Modified: branches/pisi-db/pisi/db/filesdb.py
=================================================================
--- branches/pisi-db/pisi/db/filesdb.py (original)
+++ branches/pisi-db/pisi/db/filesdb.py Tue Sep 4 22:20:19 2007
@@ -15,6 +15,7 @@
import os
import shelve
+import md5
import pisi
import pisi.context as ctx
@@ -32,22 +33,22 @@
self.__check_filesdb()
def has_file(self, path):
- return self.filesdb.has_key(path)
+ return self.filesdb.has_key(md5.new(path).digest())
def get_file(self, path):
- return self.filesdb[path], path
+ return self.filesdb[md5.new(path).digest()], path
def add_files(self, pkg, files):
self.__check_filesdb()
for f in files.list:
- self.filesdb[f.path] = pkg
+ self.filesdb[md5.new(f.path).digest()] = pkg
def remove_files(self, pkg, files):
for f in files:
- if self.filesdb.has_key(f):
- del self.filesdb[f]
+ if self.filesdb.has_key(md5.new(f.path).digest()):
+ del self.filesdb[md5.new(f.path).digest()]
def destroy(self):
files_db = os.path.join(ctx.config.lib_dir(), ctx.const.info_dir, ctx.const.files_db)
Uludag-commits mesaj listesiyle ilgili
daha fazla bilgi