change copaction interval
This commit is contained in:
parent
296d9a86d0
commit
5e2a6778f0
@ -4,6 +4,7 @@ import (
|
|||||||
"fmt"
|
"fmt"
|
||||||
"github.com/akrylysov/pogreb"
|
"github.com/akrylysov/pogreb"
|
||||||
"path"
|
"path"
|
||||||
|
"time"
|
||||||
)
|
)
|
||||||
|
|
||||||
type pogrebTree struct {
|
type pogrebTree struct {
|
||||||
@ -65,7 +66,8 @@ type pogrebSpaceCreator struct {
|
|||||||
func (p *pogrebSpaceCreator) CreateSpace(id string) (Space, error) {
|
func (p *pogrebSpaceCreator) CreateSpace(id string) (Space, error) {
|
||||||
dbPath := path.Join(p.rootPath, id)
|
dbPath := path.Join(p.rootPath, id)
|
||||||
db, err := pogreb.Open(dbPath, &pogreb.Options{
|
db, err := pogreb.Open(dbPath, &pogreb.Options{
|
||||||
BackgroundCompactionInterval: 200000,
|
BackgroundSyncInterval: time.Second * 30,
|
||||||
|
BackgroundCompactionInterval: time.Minute * 2,
|
||||||
})
|
})
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
|
|||||||
@ -3,6 +3,7 @@ package main
|
|||||||
import (
|
import (
|
||||||
"fmt"
|
"fmt"
|
||||||
"github.com/anytypeio/go-anytype-infrastructure-experiments/cmd/benchmarks/db"
|
"github.com/anytypeio/go-anytype-infrastructure-experiments/cmd/benchmarks/db"
|
||||||
|
"math/rand"
|
||||||
"net/http"
|
"net/http"
|
||||||
_ "net/http/pprof"
|
_ "net/http/pprof"
|
||||||
"os"
|
"os"
|
||||||
@ -15,15 +16,18 @@ func main() {
|
|||||||
go func() {
|
go func() {
|
||||||
fmt.Println(http.ListenAndServe("localhost:6060", nil))
|
fmt.Println(http.ListenAndServe("localhost:6060", nil))
|
||||||
}()
|
}()
|
||||||
//bench(db.NewBadgerSpaceCreator, options{
|
opts := options{
|
||||||
bench(db.NewPogrebSpaceCreator, options{
|
|
||||||
numSpaces: 1000,
|
numSpaces: 1000,
|
||||||
numEntriesInSpace: 100,
|
numEntriesInSpace: 100,
|
||||||
numChangesInTree: 10,
|
numChangesInTree: 10,
|
||||||
numHeadUpdates: 100,
|
numHeadUpdates: 100,
|
||||||
defValueSize: 1000,
|
defValueSize: 1000,
|
||||||
lenHeadUpdate: 10,
|
lenHeadUpdate: 1000,
|
||||||
})
|
}
|
||||||
|
fmt.Println("badger")
|
||||||
|
bench(db.NewBadgerSpaceCreator, opts)
|
||||||
|
fmt.Println("pogreb")
|
||||||
|
bench(db.NewPogrebSpaceCreator, opts)
|
||||||
}
|
}
|
||||||
|
|
||||||
type options struct {
|
type options struct {
|
||||||
@ -46,14 +50,16 @@ func bench(factory db.SpaceCreatorFactory, opts options) {
|
|||||||
return fmt.Sprintf("change%d", n)
|
return fmt.Sprintf("change%d", n)
|
||||||
}
|
}
|
||||||
|
|
||||||
var byteSlice []byte
|
var byteSlice = func() []byte {
|
||||||
for i := 0; i < opts.defValueSize; i++ {
|
var buf = make([]byte, opts.defValueSize)
|
||||||
byteSlice = append(byteSlice, byte('a'))
|
rand.Read(buf)
|
||||||
|
return buf
|
||||||
}
|
}
|
||||||
|
|
||||||
var headUpdate string
|
var headUpdate = func() []byte {
|
||||||
for i := 0; i < opts.lenHeadUpdate; i++ {
|
var buf = make([]byte, opts.lenHeadUpdate)
|
||||||
headUpdate += "a"
|
rand.Read(buf)
|
||||||
|
return buf
|
||||||
}
|
}
|
||||||
|
|
||||||
creator := factory()
|
creator := factory()
|
||||||
@ -94,13 +100,13 @@ func bench(factory db.SpaceCreatorFactory, opts options) {
|
|||||||
// filling entries and updating heads
|
// filling entries and updating heads
|
||||||
for _, t := range trees {
|
for _, t := range trees {
|
||||||
for i := 0; i < opts.numChangesInTree; i++ {
|
for i := 0; i < opts.numChangesInTree; i++ {
|
||||||
err := t.AddChange(changeIdKey(i), byteSlice)
|
err := t.AddChange(changeIdKey(i), byteSlice())
|
||||||
if err != nil {
|
if err != nil {
|
||||||
panic(err)
|
panic(err)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
for i := 0; i < opts.numHeadUpdates; i++ {
|
for i := 0; i < opts.numHeadUpdates; i++ {
|
||||||
err := t.UpdateHead(headUpdate)
|
err := t.UpdateHead(string(headUpdate()))
|
||||||
if err != nil {
|
if err != nil {
|
||||||
panic(err)
|
panic(err)
|
||||||
}
|
}
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user