stages

package
v0.0.0-...-86c6960 Latest Latest
Warning

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

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

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type Applier

type Applier interface {
	Apply(context.Context, chan *models.Oplog) (chan error, error)
}

Applier defines interface to apply given oplog records.

type BetweenFetcher

type BetweenFetcher interface {
	FetchBetween(context.Context, models.Timestamp, models.Timestamp) (chan *models.Oplog, chan error, error)
}

BetweenFetcher defines interface to fetch oplog records between given timestamps.

type Buffer

type Buffer interface {
	io.Writer
	io.Closer
	Reader() (io.Reader, error)
	Reset() error
	Len() int
}

Buffer defines interface to accumulate bytes.

type CloserBuffer

type CloserBuffer struct {
	*bytes.Buffer
}

CloserBuffer defines buffer which wraps bytes.Buffer and has dummy implementation of Closer interface.

func NewCloserBuffer

func NewCloserBuffer() *CloserBuffer

NewCloserBuffer builds CloserBuffer instance

func (*CloserBuffer) Close

func (cb *CloserBuffer) Close() error

Close is dummy function that implements Closer interface.

type CursorMajFetcher

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

CursorMajFetcher implements Fetcher interface for mongodb

func NewCursorMajFetcher

func NewCursorMajFetcher(m client.MongoDriver,
	cur client.OplogCursor,
	lwUpdateInterval time.Duration) *CursorMajFetcher

NewCursorMajFetcher builds CursorMajFetcher with given args.

func (*CursorMajFetcher) Fetch

func (dbf *CursorMajFetcher) Fetch(ctx context.Context) (oplogc chan *models.Oplog, errc chan error, err error)

Fetch returns channel of oplog records, channel is filled in background. TODO: use sessions TODO: use context.WithTimeout

type Fetcher

type Fetcher interface {
	Fetch(context.Context) (chan *models.Oplog, chan error, error)
}

Fetcher defines interface to fetch oplog records. TODO: FIX INTERFACE METHOD NAME AND SIGNATURE

type FileBuffer

type FileBuffer struct {
	*os.File
	// contains filtered or unexported fields
}

FileBuffer implements Buffer interface with filesystem backend.

func NewFileBuffer

func NewFileBuffer(path string) (*FileBuffer, error)

NewFileBuffer builds FileBuffer with given args.

func (*FileBuffer) Close

func (fb *FileBuffer) Close() error

Close closes FileBuffer and removes temporary file.

func (*FileBuffer) Len

func (fb *FileBuffer) Len() int

Len returns the number of bytes of the unread portion of the buffer we assume small files only, so cast to int to match bytes.Buffer interface

func (*FileBuffer) Read

func (fb *FileBuffer) Read(p []byte) (n int, err error)

Read reads the next len(p) bytes from the buffer or until the buffer is drained.

func (*FileBuffer) Reader

func (fb *FileBuffer) Reader() (io.Reader, error)

Reader provides io.Reader.

func (*FileBuffer) Reset

func (fb *FileBuffer) Reset() error

Reset truncates buffer.

func (*FileBuffer) Write

func (fb *FileBuffer) Write(p []byte) (n int, err error)

Write writes bytes to the buffer.

type GapHandler

type GapHandler interface {
	HandleGap(from, until models.Timestamp, err error) error
}

type GenericApplier

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

DBApplier implements Applier interface for mongodb.

func NewGenericApplier

func NewGenericApplier(applier oplog.Applier) *GenericApplier

NewDBApplier builds DBApplier with given args.

func (*GenericApplier) Apply

func (dba *GenericApplier) Apply(ctx context.Context, ch chan *models.Oplog) (chan error, error)

Apply runs working cycle that applies oplog records.

type MemoryBuffer

type MemoryBuffer struct {
	*bytes.Buffer
	// contains filtered or unexported fields
}

func NewMemoryBuffer

func NewMemoryBuffer() *MemoryBuffer

NewMemoryBuffer builds MemoryBuffer.

func (*MemoryBuffer) Close

func (mb *MemoryBuffer) Close() error

Close closes FileBuffer and removes temporary file.

func (*MemoryBuffer) Reader

func (mb *MemoryBuffer) Reader() (io.Reader, error)

Reader provides io.Reader.

func (*MemoryBuffer) Reset

func (mb *MemoryBuffer) Reset() error

Reset truncates buffer.

func (*MemoryBuffer) Write

func (mb *MemoryBuffer) Write(p []byte) (n int, err error)

Write writes bytes to the buffer.

type StorageApplier

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

StorageApplier implements Applier interface for storage.

func NewStorageApplier

func NewStorageApplier(uploader archive.Uploader,
	buf Buffer,
	archiveAfterSize int,
	archiveTimeout time.Duration,
	statsUpdater stats.OplogUploadStatsUpdater) *StorageApplier

NewStorageApplier builds StorageApplier. TODO: switch to functional options

func (*StorageApplier) Apply

func (sa *StorageApplier) Apply(ctx context.Context, oplogc chan *models.Oplog) (chan error, error)

Apply runs working cycle that sends oplog records to storage.

type StorageFetcher

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

StorageFetcher implements BetweenFetcher interface for storage.

func NewStorageFetcher

func NewStorageFetcher(downloader archive.Downloader, path archive.Sequence) *StorageFetcher

NewStorageFetcher builds StorageFetcher instance

func (*StorageFetcher) FetchBetween

func (sf *StorageFetcher) FetchBetween(ctx context.Context,
	from,
	until models.Timestamp) (oplogc chan *models.Oplog, errc chan error, err error)

FetchBetween returns channel of oplog records, channel is filled in background.

type StorageGapHandler

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

func NewStorageGapHandler

func NewStorageGapHandler(uploader archive.Uploader) *StorageGapHandler

func (*StorageGapHandler) HandleGap

func (sgh *StorageGapHandler) HandleGap(from, until models.Timestamp, gapErr error) error

Directories

Path Synopsis

Jump to

Keyboard shortcuts

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