pebble

package
v1.1.1 Latest Latest
Warning

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

Go to latest
Published: Jun 23, 2024 License: Apache-2.0, MIT, Apache-2.0, + 1 more Imports: 15 Imported by: 1

Documentation

Overview

Package pebble provides a configurable Pebble database backend for use with IPFS Cluster.

Index

Constants

View Source
const (
	DefaultSubFolder = "pebble"
)

Default values for Pebble Config

Variables

View Source
var (
	// DefaultPebbleOptions for convenience.
	DefaultPebbleOptions pebble.Options
	// DefaultCacheSize sets the maximum size of the block cache.
	DefaultCacheSize int64 = 1 << 30 // Pebble's default: 8MiB
	// DefaultMemTableSize sets the size of the memtables and affecst total
	// size of the WAL. It must be under 4GB.
	DefaultMemTableSize uint64 = 64 << 20 // Pebble's default: 4MiB
	// DefaultMemTableStopWritesThreshold defines how many memtables can
	// be queued for writing before stopping writes (memtable memory
	// consumption should approach
	// MemTableStopWritesThreshold*MemTableSize in that case).
	DefaultMemTableStopWritesThreshold = 20 // Pebble's default: 12
	// DefaultBytesPerSync controls how often to call the Filesystem
	// Sync.
	DefaultBytesPerSync = 1 << 20 // Pebble's default: 512KiB
	// DefaultMaxConcurrentCompactions controls how many compactions
	// happen at a single time.
	DefaultMaxConcurrentCompactions = 5 // Pebble's default: 1
	// DefaultMaxOpenFiles controls how many files can be kept open by
	// Pebble.
	DefaultMaxOpenFiles = 1000 // Pebble's default: 500
	// DefaultL0CompactionThreshold defines the read amplification on L0
	// that triggers compaction
	DefaultL0CompactionThreshold = 4 // Pebble's default: 4
	// DefaultL0CompactionFileThreshold defines the number of files that
	// trigger compactions of L0
	DefaultL0CompactionFileThreshold = 750 // Pebble's default: 500
	// DefaultL0StopWritesThreshold defines the critical threshold for
	// read amplification on L0, which stops writes until compaction
	// reduces it.
	DefaultL0StopWritesThreshold = 12 // Pebble's default : 4
	// DefaultLBaseMaxBytes defines maximum size of LBase, where memtables
	// are temporally written to
	DefaultLBaseMaxBytes int64 = 128 << 20 // Pebble's default: 64MiB
	// DefaultL0TargetFileSize defines the target filesize for L0. It is
	// multiplied by 2 for every subsequent level.
	DefaultL0TargetFileSize int64 = 4 << 20 // Pebble's default: 4M
	// DefaultBlockSize defines the target size for table blocks (used in
	// all levels).
	DefaultBlockSize int = 4 << 10 // Pebble's default: 4KiB
	// DefaultFilterPolicy defines the number of bits used per key for
	// bloom filters. 10 yields a 1% false positive rate.
	DefaultFilterPolicy bloom.FilterPolicy = 10 // Pebble's default: 10
	// DefaultFormatMajorVersion sets the format of Pebble on-disk files.
	DefaultFormatMajorVersion = pebble.FormatNewest
)

Functions

func Cleanup

func Cleanup(cfg *Config) error

Cleanup deletes the badger datastore.

func New

func New(cfg *Config) (ds.Datastore, error)

New returns a BadgerDB datastore configured with the given configuration.

Types

type Config

type Config struct {
	config.Saver

	// The folder for this datastore. Non-absolute paths are relative to
	// the base configuration folder.
	Folder string

	PebbleOptions pebble.Options
}

Config is used to initialize a Pebble datastore. It implements the ComponentConfig interface.

func (*Config) ApplyEnvVars

func (cfg *Config) ApplyEnvVars() error

ApplyEnvVars fills in any Config fields found as environment variables.

func (*Config) ConfigKey

func (cfg *Config) ConfigKey() string

ConfigKey returns a human-friendly identifier for this type of Datastore.

func (*Config) Default

func (cfg *Config) Default() error

Default initializes this Config with sensible values.

func (*Config) GetFolder

func (cfg *Config) GetFolder() string

GetFolder returns the Pebble folder.

func (*Config) LoadJSON

func (cfg *Config) LoadJSON(raw []byte) error

LoadJSON reads the fields of this Config from a JSON byteslice as generated by ToJSON.

func (*Config) ToDisplayJSON

func (cfg *Config) ToDisplayJSON() ([]byte, error)

ToDisplayJSON returns JSON config as a string.

func (*Config) ToJSON

func (cfg *Config) ToJSON() (raw []byte, err error)

ToJSON generates a JSON-formatted human-friendly representation of this Config.

func (*Config) Validate

func (cfg *Config) Validate() error

Validate checks that the fields of this Config have working values, at least in appearance.

Jump to

Keyboard shortcuts

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