badger4

package module
v1.0.0 Latest Latest
Warning

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

Go to latest
Published: May 31, 2024 License: Apache-2.0, MIT Imports: 14 Imported by: 0

README

go-ds-badger4

Go Reference

Datastore implementation using badger v4 as backend.

Table of Contents

Documentation

https://pkg.go.dev/github.com/dgraph-io/badger/v4

Contribute

Feel free to join in. All welcome. Open an issue!

This repository falls under the IPFS Code of Conduct.

Want to hack on IPFS?

License

MIT + Apache-2.0

Documentation

Index

Constants

This section is empty.

Variables

View Source
var ErrClosed = errors.New("datastore closed")

Functions

This section is empty.

Types

type Datastore

type Datastore struct {
	DB    *badger.DB
	Store *badgerHold.Store
	// contains filtered or unexported fields
}

func NewDatastore

func NewDatastore(path string, options *Options) (*Datastore, error)

NewDatastore creates a new badger datastore.

DO NOT set the Dir and/or ValuePath fields of opt, they will be set for you.

func (*Datastore) Batch

func (d *Datastore) Batch(ctx context.Context) (ds.Batch, error)

Batch creates a new Batch object. This provides a way to do many writes, when there may be too many to fit into a single transaction.

func (*Datastore) Close

func (d *Datastore) Close() error

func (*Datastore) CollectGarbage

func (d *Datastore) CollectGarbage(ctx context.Context) (err error)

func (*Datastore) Delete

func (d *Datastore) Delete(ctx context.Context, key ds.Key) error

func (*Datastore) DiskUsage

func (d *Datastore) DiskUsage(ctx context.Context) (uint64, error)

DiskUsage implements the PersistentDatastore interface. It returns the sum of lsm and value log files sizes in bytes.

func (*Datastore) Get

func (d *Datastore) Get(ctx context.Context, key ds.Key) (value []byte, err error)

func (*Datastore) GetExpiration

func (d *Datastore) GetExpiration(ctx context.Context, key ds.Key) (time.Time, error)

func (*Datastore) GetSize

func (d *Datastore) GetSize(ctx context.Context, key ds.Key) (size int, err error)

func (*Datastore) Has

func (d *Datastore) Has(ctx context.Context, key ds.Key) (bool, error)

func (*Datastore) NewTransaction

func (d *Datastore) NewTransaction(ctx context.Context, readOnly bool) (ds.Txn, error)

NewTransaction starts a new transaction. The resulting transaction object can be mutated without incurring changes to the underlying Datastore until the transaction is Committed.

func (*Datastore) Put

func (d *Datastore) Put(ctx context.Context, key ds.Key, value []byte) error

func (*Datastore) PutWithTTL

func (d *Datastore) PutWithTTL(ctx context.Context, key ds.Key, value []byte, ttl time.Duration) error

func (*Datastore) Query

func (d *Datastore) Query(ctx context.Context, q dsq.Query) (dsq.Results, error)

func (*Datastore) SetTTL

func (d *Datastore) SetTTL(ctx context.Context, key ds.Key, ttl time.Duration) error

func (*Datastore) Sync

func (d *Datastore) Sync(ctx context.Context, prefix ds.Key) error

type Options

type Options struct {
	// Please refer to the Badger docs to see what this is for
	GcDiscardRatio float64

	// Interval between GC cycles
	//
	// If zero, the datastore will perform no automatic garbage collection.
	GcInterval time.Duration

	// Sleep time between rounds of a single GC cycle.
	//
	// If zero, the datastore will only perform one round of GC per
	// GcInterval.
	GcSleep time.Duration

	// TTL sets the expiration time for all newly added keys. After expiration,
	// the keys will no longer be retrievable and will be removed by garbage
	// collection.
	//
	// The default value is 0, which means no TTL.
	TTL time.Duration

	badgerHold.Options
}

Options are the badger datastore options, reexported here for convenience.

var DefaultOptions Options

DefaultOptions are the default options for the badger datastore.

func (Options) WithGcDiscardRatio

func (opt Options) WithGcDiscardRatio(ratio float64) Options

WithGcDiscardRatio returns a new Options value with GcDiscardRatio set to the given value.

Please refer to the Badger docs to see what this is for

Default value is 0.2

func (Options) WithGcInterval

func (opt Options) WithGcInterval(interval time.Duration) Options

WithGcInterval returns a new Options value with GcInterval set to the given value.

GcInterval specifies the interval between garbage collection cycles. If zero, the datastore will perform no automatic garbage collection.

Default value is 15 minutes.

func (Options) WithGcSleep

func (opt Options) WithGcSleep(sleep time.Duration) Options

WithGcSleep returns a new Options value with GcSleep set to the given value.

GcSleep specifies the sleep time between rounds of a single garbage collection cycle. If zero, the datastore will only perform one round of GC per GcInterval.

Default value is 10 seconds.

func (Options) WithTTL

func (opt Options) WithTTL(ttl time.Duration) Options

WithTTL returns a new Options value with TTL set to the given value.

TTL sets the expiration time for all newly added keys. After expiration, the keys will no longer be retrievable and will be removed by garbage collection.

Default value is 0, which means no TTL.

Jump to

Keyboard shortcuts

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