mirror of
https://github.com/aptly-dev/aptly.git
synced 2026-05-06 22:18:28 +00:00
Throttle compaction on temporary DB
This commit is contained in:
+14
-4
@@ -51,18 +51,24 @@ var (
|
|||||||
_ Storage = &levelDB{}
|
_ Storage = &levelDB{}
|
||||||
)
|
)
|
||||||
|
|
||||||
func internalOpen(path string) (*leveldb.DB, error) {
|
func internalOpen(path string, throttleCompaction bool) (*leveldb.DB, error) {
|
||||||
o := &opt.Options{
|
o := &opt.Options{
|
||||||
Filter: filter.NewBloomFilter(10),
|
Filter: filter.NewBloomFilter(10),
|
||||||
OpenFilesCacheCapacity: 256,
|
OpenFilesCacheCapacity: 256,
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if throttleCompaction {
|
||||||
|
o.CompactionL0Trigger = 32
|
||||||
|
o.WriteL0PauseTrigger = 96
|
||||||
|
o.WriteL0SlowdownTrigger = 64
|
||||||
|
}
|
||||||
|
|
||||||
return leveldb.OpenFile(path, o)
|
return leveldb.OpenFile(path, o)
|
||||||
}
|
}
|
||||||
|
|
||||||
// OpenDB opens (creates) LevelDB database
|
// OpenDB opens (creates) LevelDB database
|
||||||
func OpenDB(path string) (Storage, error) {
|
func OpenDB(path string) (Storage, error) {
|
||||||
db, err := internalOpen(path)
|
db, err := internalOpen(path, false)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
@@ -94,7 +100,11 @@ func (l *levelDB) CreateTemporary() (Storage, error) {
|
|||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
|
|
||||||
return OpenDB(tempdir)
|
db, err := internalOpen(tempdir, true)
|
||||||
|
if err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
return &levelDB{db: db, path: tempdir}, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
// Get key value from database
|
// Get key value from database
|
||||||
@@ -212,7 +222,7 @@ func (l *levelDB) ReOpen() error {
|
|||||||
}
|
}
|
||||||
|
|
||||||
var err error
|
var err error
|
||||||
l.db, err = internalOpen(l.path)
|
l.db, err = internalOpen(l.path, false)
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
+1
-1
@@ -50,7 +50,7 @@ func (index *ContentsIndex) Empty() bool {
|
|||||||
// WriteTo dumps sorted mapping of files to qualified package names
|
// WriteTo dumps sorted mapping of files to qualified package names
|
||||||
func (index *ContentsIndex) WriteTo(w io.Writer) (int64, error) {
|
func (index *ContentsIndex) WriteTo(w io.Writer) (int64, error) {
|
||||||
// For performance reasons push method wrote on key per path and package
|
// For performance reasons push method wrote on key per path and package
|
||||||
// in this method we now need to merge all pkg with have the same path
|
// in this method we now need to merge all packages which have the same path
|
||||||
// and write it to contents index file
|
// and write it to contents index file
|
||||||
|
|
||||||
var n int64
|
var n int64
|
||||||
|
|||||||
Reference in New Issue
Block a user