worker

package
v0.0.0-...-dbe1bcb Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: May 4, 2020 License: MIT Imports: 20 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

View Source
var CandidateBadger = func(spec options.WorkerDatastore) CandidateDatastore {
	return CandidateDatastore{
		Create: func() (func(bool) (ds.Batching, io.Closer, error), error) {
			d, err := homedir.Expand(spec.Params["DataDir"].(string))
			if err != nil {
				return nil, err
			}

			err = os.MkdirAll(d, 0775)
			if err != nil {
				return nil, err
			}

			dir, err := ioutil.TempDir(d, "bench")
			if err != nil {
				return nil, err
			}

			err = os.MkdirAll(dir, 0775)
			if err != nil {
				return nil, err
			}

			return func(fast bool) (ds.Batching, io.Closer, error) {
				opts := badgerds.DefaultOptions
				opts.SyncWrites = !fast && spec.Params["Sync"].(bool)
				d, err := badgerds.NewDatastore(dir, &opts)

				return d, d, err
			}, nil
		},
		Destroy: func() {
			d, err := homedir.Expand(spec.Params["DataDir"].(string))
			if err != nil {
				return
			}

			os.RemoveAll(d)
		},
	}
}
View Source
var CandidateBolt = func(spec options.WorkerDatastore) CandidateDatastore {
	return CandidateDatastore{
		Create: func() (func(bool) (ds.Batching, io.Closer, error), error) {
			d, err := homedir.Expand(spec.Params["DataDir"].(string))
			if err != nil {
				return nil, err
			}

			err = os.MkdirAll(d, 0775)
			if err != nil {
				return nil, err
			}

			dir, err := ioutil.TempDir(d, "bench")
			if err != nil {
				return nil, err
			}

			err = os.MkdirAll(dir, 0775)
			if err != nil {
				return nil, err
			}

			return func(fast bool) (ds.Batching, io.Closer, error) {
				d, err := boltds.NewBoltDatastore(dir, "test", fast || !spec.Params["Sync"].(bool))
				return d, d, err
			}, nil
		},
		Destroy: func() {
			d, err := homedir.Expand(spec.Params["DataDir"].(string))
			if err != nil {
				return
			}

			os.RemoveAll(d)
		},
	}
}
View Source
var CandidateDs = func(spec options.WorkerDatastore) CandidateDatastore {
	return CandidateDatastore{
		Create: func() (func(bool) (ds.Batching, io.Closer, error), error) {
			d, ok := datastores[spec.Type]
			if !ok {
				return nil, fmt.Errorf("unknows ds: '%s'", spec.Type)
			}

			construct, err := d(spec).Create()
			if err != nil {
				return nil, err
			}

			return func(fast bool) (ds.Batching, io.Closer, error) {
				return construct(fast)
			}, nil
		},
		Destroy: func() {
			datastores[spec.Type](spec).Destroy()
		},
	}
}
View Source
var CandidateFlatfs = func(spec options.WorkerDatastore) CandidateDatastore {
	return CandidateDatastore{
		Create: func() (func(bool) (ds.Batching, io.Closer, error), error) {
			d, err := homedir.Expand(spec.Params["DataDir"].(string))
			if err != nil {
				return nil, err
			}

			err = os.MkdirAll(d, 0775)
			if err != nil {
				return nil, err
			}

			dir, err := ioutil.TempDir(d, "bench")
			if err != nil {
				return nil, err
			}

			err = os.MkdirAll(dir, 0775)
			if err != nil {
				return nil, err
			}

			return func(fast bool) (ds.Batching, io.Closer, error) {
				fs, err := flatfs.CreateOrOpen(dir, flatfs.NextToLast(2), !fast && spec.Params["Sync"].(bool))
				return fs, fs, err
			}, nil
		},
		Destroy: func() {
			d, err := homedir.Expand(spec.Params["DataDir"].(string))
			if err != nil {
				return
			}

			os.RemoveAll(d)
		},
	}
}
View Source
var CandidateLeveldb = func(spec options.WorkerDatastore) CandidateDatastore {
	return CandidateDatastore{
		Create: func() (func(bool) (ds.Batching, io.Closer, error), error) {
			d, err := homedir.Expand(spec.Params["DataDir"].(string))
			if err != nil {
				return nil, err
			}

			err = os.MkdirAll(d, 0775)
			if err != nil {
				return nil, err
			}

			dir, err := ioutil.TempDir(d, "bench")
			if err != nil {
				return nil, err
			}

			err = os.MkdirAll(dir, 0775)
			if err != nil {
				return nil, err
			}

			return func(fast bool) (ds.Batching, io.Closer, error) {
				opts := leveldb.Options{
					Compression: levelopt.DefaultCompression,
					NoSync:      !fast && !spec.Params["Sync"].(bool),
				}

				ldb, err := leveldb.NewDatastore(dir, &opts)
				return ldb, ldb, err
			}, nil
		},
		Destroy: func() {
			d, err := homedir.Expand(spec.Params["DataDir"].(string))
			if err != nil {
				return
			}

			os.RemoveAll(d)
		},
	}
}
View Source
var CandidateMemoryMap = func(options.WorkerDatastore) CandidateDatastore {
	return CandidateDatastore{
		Create: func() (func(bool) (ds.Batching, io.Closer, error), error) {
			mds := ds.NewMapDatastore()

			return func(fast bool) (ds.Batching, io.Closer, error) {
				return mds, mds, nil
			}, nil
		},
		Destroy: nopCloser,
	}
}

Functions

func PrimeDS

func PrimeDS(tb testing.TB, store ds.Batching, count, blockSize int)

func RunBench

func RunBench(b *testing.B, bf BenchFunc, store CandidateDatastore, opt options.BenchOptions)

Types

type BenchFunc

type BenchFunc func(b *testing.B, store ds.Batching, opt options.BenchOptions)

type CandidateDatastore

type CandidateDatastore struct {
	Create  func() (func(fast bool) (ds.Batching, io.Closer, error), error)
	Destroy func()
}

Directories

Path Synopsis
benches

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL