cmd/pk: use sqlite for havecache?
Author: bradfitzCreated Dec 26, 2025Updated Dec 26, 2025
The client uses leveldb for the HaveCache. Maybe it's time to use modernc sqlite instead?
func NewKvHaveCache(gen string) *KvHaveCache {
cleanCacheDir()
fullPath := filepath.Join(osutil.CacheDir(), "pk-put.havecache."+escapeGen(gen)+".leveldb")
db, err := leveldb.OpenFile(fullPath, nil)
if err != nil {
log.Fatalf("Could not create/open new have cache at %v, %v", fullPath, err)
}
if err := maybeRunCompaction("HaveCache", db); err != nil {
log.Fatal(err)
}
return &KvHaveCache{
filename: fullPath,
db: db,
}
}Source: perkeep/perkeep