wal

package
v0.0.0-...-8c118da Latest Latest
Warning

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

Go to latest
Published: May 2, 2020 License: MIT Imports: 18 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

View Source
var ZeroOffset = Offset{Segment: 0, Position: 0}

Functions

This section is empty.

Types

type Meta

type Meta struct {
	sync.Mutex
	// contains filtered or unexported fields
}

func NewWalMeta

func NewWalMeta(file string) (*Meta, error)

func (*Meta) GetOffset

func (walMeta *Meta) GetOffset(readerID string) (Offset, error)

func (*Meta) Read

func (walMeta *Meta) Read() (*MetaContent, error)

func (*Meta) Write

func (walMeta *Meta) Write(content *MetaContent) error

type MetaContent

type MetaContent struct {
	Readers map[string]Offset `msg:"Readers"`
}

func (*MetaContent) DecodeMsg

func (z *MetaContent) DecodeMsg(dc *msgp.Reader) (err error)

DecodeMsg implements msgp.Decodable

func (*MetaContent) EncodeMsg

func (z *MetaContent) EncodeMsg(en *msgp.Writer) (err error)

EncodeMsg implements msgp.Encodable

func (*MetaContent) Msgsize

func (z *MetaContent) Msgsize() (s int)

Msgsize returns an upper bound estimate of the number of bytes occupied by the serialized message

type Offset

type Offset struct {
	Segment  SegmentID
	Position int64
}

Offset denotes a position in WAL.

func (*Offset) After

func (offset *Offset) After(other Offset) bool

noinspection GoReceiverNames

func (Offset) MarshalMsg

func (z Offset) MarshalMsg(b []byte) (o []byte, err error)

MarshalMsg implements msgp.Marshaler

func (Offset) Msgsize

func (z Offset) Msgsize() (s int)

Msgsize returns an upper bound estimate of the number of bytes occupied by the serialized message

func (Offset) String

func (offset Offset) String() string

noinspection GoReceiverNames

func (*Offset) UnmarshalMsg

func (z *Offset) UnmarshalMsg(bts []byte) (o []byte, err error)

UnmarshalMsg implements msgp.Unmarshaler

type Reader

type Reader struct {
	Tag string
	// contains filtered or unexported fields
}

func (*Reader) Close

func (r *Reader) Close() (err error)

func (*Reader) Offset

func (r *Reader) Offset() Offset

func (*Reader) Read

func (r *Reader) Read(ctx context.Context) (data []byte, err error)

type SegmentID

type SegmentID int64

SegmentID is a WAL segment sequence.

Denotes a single file-based segment of a write-ahead log. File name pattern:

wal-<version><ID>.bin

Here, <version> is a single digit WAL version ID stored for backwards compatibility <ID> is a 16-digit creation timestamp, up to microseconds

func NewSegmentID

func NewSegmentID() SegmentID

func NewSegmentIDFromFile

func NewSegmentIDFromFile(filename string) SegmentID

func (*SegmentID) DecodeMsg

func (z *SegmentID) DecodeMsg(dc *msgp.Reader) (err error)

DecodeMsg implements msgp.Decodable

func (SegmentID) EncodeMsg

func (z SegmentID) EncodeMsg(en *msgp.Writer) (err error)

EncodeMsg implements msgp.Encodable

func (SegmentID) FileName

func (segmentId SegmentID) FileName() string

FileName of WAL buffer which this segment references. noinspection GoReceiverNames

func (SegmentID) MarshalMsg

func (z SegmentID) MarshalMsg(b []byte) (o []byte, err error)

MarshalMsg implements msgp.Marshaler

func (SegmentID) Msgsize

func (z SegmentID) Msgsize() (s int)

Msgsize returns an upper bound estimate of the number of bytes occupied by the serialized message

func (*SegmentID) UnmarshalMsg

func (z *SegmentID) UnmarshalMsg(bts []byte) (o []byte, err error)

UnmarshalMsg implements msgp.Unmarshaler

type Wal

type Wal struct {
	sync.RWMutex
	// contains filtered or unexported fields
}

func NewWal

func NewWal(path string) (wal *Wal, err error)

func (*Wal) Close

func (wal *Wal) Close() error

func (*Wal) DropBefore

func (wal *Wal) DropBefore(o *Offset) error

func (*Wal) Handle

func (wal *Wal) Handle(record []byte) (err error)

func (*Wal) NewReader

func (wal *Wal) NewReader(tag string, offset Offset) (r *Reader, err error)

func (*Wal) WriteBytes

func (wal *Wal) WriteBytes(bytes []byte) (err error)

Jump to

Keyboard shortcuts

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