y

package
v1.2.0 Latest Latest
Warning

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

Go to latest
Published: Mar 15, 2022 License: Apache-2.0 Imports: 15 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

View Source
var (
	// LSMSize has size of the LSM in bytes
	LSMSize *expvar.Map
	// VlogSize has size of the value log in bytes
	VlogSize *expvar.Map
	// PendingWrites tracks the number of pending writes.
	PendingWrites *expvar.Map

	// NumReads has cumulative number of reads
	NumReads *expvar.Int
	// NumWrites has cumulative number of writes
	NumWrites *expvar.Int
	// NumBytesRead has cumulative number of bytes read
	NumBytesRead *expvar.Int
	// NumBytesWritten has cumulative number of bytes written
	NumBytesWritten *expvar.Int
	// NumLSMGets is number of LMS gets
	NumLSMGets *expvar.Map
	// NumLSMBloomHits is number of LMS bloom hits
	NumLSMBloomHits *expvar.Map
	// NumGets is number of gets
	NumGets *expvar.Int
	// NumPuts is number of puts
	NumPuts *expvar.Int
	// NumBlockedPuts is number of blocked puts
	NumBlockedPuts *expvar.Int
	// NumMemtableGets is number of memtable gets
	NumMemtableGets *expvar.Int
)
View Source
var (

	// CastagnoliCrcTable is a CRC32 polynomial table
	CastagnoliCrcTable = crc32.MakeTable(crc32.Castagnoli)
)
View Source
var ErrEOF = errors.New("End of mapped region")

Functions

func AssertTrue

func AssertTrue(b bool)

AssertTrue asserts that b is true. Otherwise, it would log fatal.

func AssertTruef

func AssertTruef(b bool, format string, args ...interface{})

AssertTruef is AssertTrue with extra info.

func Check

func Check(err error)

func Check2

func Check2(_ interface{}, err error)

Check2 acts as convenience wrapper around Check, using the 2nd argument as error.

func CompareKeys

func CompareKeys(key1 []byte, key2 []byte) int

compare key first then compare ts

func Copy

func Copy(a []byte) []byte

Copy copies a byte slice and returns the copied slice.

func CreateSyncedFile

func CreateSyncedFile(filename string, sync bool) (*os.File, error)

func KeyWithTs

func KeyWithTs(key []byte, ts uint64) []byte

KeyWithTs key+ts ts: tanscation 事务ID

func Madvise

func Madvise(b []byte, readhead bool) error

func Mmap

func Mmap(fd *os.File, wirtable bool, size int64) ([]byte, error)

func Munmap

func Munmap(b []byte) error

func OpenExistingSyncedFile

func OpenExistingSyncedFile(filename string, sync bool) (*os.File, error)

func OpenSyncedFile

func OpenSyncedFile(filename string, sync bool) (*os.File, error)

func OpenTruncFile

func OpenTruncFile(filename string, sync bool) (*os.File, error)

func ParseKey

func ParseKey(key []byte) []byte

ParseKey parses the actual key from the key bytes.

func ParseTs

func ParseTs(key []byte) uint64

ParseTs parses the timestamp from the key bytes.

func Safecopy

func Safecopy(a []byte, src []byte) []byte

Safecopy does append(a[:0], src...).

func SameKey

func SameKey(src, dst []byte) bool

func Wrap

func Wrap(err error) error

func Wrapf

func Wrapf(err error, format string, args ...interface{}) error

Types

type Closer

type Closer struct {
	// contains filtered or unexported fields
}

另一种并发控制的写法

func NewCloser

func NewCloser(initial int) *Closer

NewCloser constructs a new Closer, with an initial count on the WaitGroup.

func (*Closer) AddRunning

func (lc *Closer) AddRunning(delta int)

AddRunning Add()'s delta to the WaitGroup.

func (*Closer) Done

func (lc *Closer) Done()

Done calls Done() on the WaitGroup.

func (*Closer) HasBeenClosed

func (lc *Closer) HasBeenClosed() <-chan struct{}

HasBeenClosed gets signaled when Signal() is called.

func (*Closer) Signal

func (lc *Closer) Signal()

Signal signals the HasBeenClosed signal.

func (*Closer) SignalAndWait

func (lc *Closer) SignalAndWait()

SignalAndWait calls Signal(), then Wait().

func (*Closer) Wait

func (lc *Closer) Wait()

Wait waits on the WaitGroup. (It waits for NewCloser's initial value, AddRunning, and Done calls to balance out.)

type Iterator

type Iterator interface {
	Next()
	Rewind()
	Seek(key []byte)
	Key() []byte
	Value() ValueStruct
	Valid() bool
	Close() error // All iterators should be closed so that file garbage collection works
}

type MergeIterator

type MergeIterator struct {
	// contains filtered or unexported fields
}

MergeIterator merges multiple iterators.

func NewMergeIterator

func NewMergeIterator(iters []Iterator, reversed bool) *MergeIterator

func (*MergeIterator) Close

func (s *MergeIterator) Close() error

func (*MergeIterator) Key

func (s *MergeIterator) Key() []byte

func (*MergeIterator) Next

func (s *MergeIterator) Next()

Next returns the next element. If it is the same as the current key, ignore it.

func (*MergeIterator) Rewind

func (s *MergeIterator) Rewind()

Rewind 寻找第一个元素(或反向迭代器的最后一个元素)

func (*MergeIterator) Seek

func (s *MergeIterator) Seek(key []byte)

Seek 将我们带到带有键 >= 给定键的元素

func (*MergeIterator) Valid

func (s *MergeIterator) Valid() bool

func (*MergeIterator) Value

func (s *MergeIterator) Value() ValueStruct

type Slice

type Slice struct {
	// contains filtered or unexported fields
}

Slice holds a reusable buf, will reallocate if you request a larger size than ever before. One problem is with n distinct sizes in random order it'll reallocate log(n) times.

func (*Slice) Resize

func (s *Slice) Resize(sz int) []byte

Resize reuses the Slice's buffer (or makes a new one) and returns a slice in that buffer of length sz.

type ValueStruct

type ValueStruct struct {
	Meta      byte
	UserMeta  byte
	ExpiresAt uint64
	Value     []byte

	Version uint64 // This field is not serialized. Only for internal usage.
}

func (*ValueStruct) Decode

func (v *ValueStruct) Decode(b []byte)

func (*ValueStruct) Encode

func (v *ValueStruct) Encode(b []byte)

func (*ValueStruct) EncodeTo

func (v *ValueStruct) EncodeTo(buf *bytes.Buffer)

func (*ValueStruct) EncodedSize

func (v *ValueStruct) EncodedSize() uint16

Jump to

Keyboard shortcuts

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