Help us shape the future of Go! Take the 2026 Go Developer Survey

snapshotter

package
v1.7.9 Latest Latest
Warning

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

Go to latest
Published: Oct 27, 2019 License: MIT Imports: 20 Imported by: 0

Documentation

Overview

Package snapshotter provides the meta snapshot service.

Index

Constants

View Source
const (
	// MuxHeader is the header byte used for the TCP muxer.
	MuxHeader = 3

	// BackupMagicHeader is the first 8 bytes used to identify and validate
	// a metastore backup file
	BackupMagicHeader = 0x59590101
)

Variables

This section is empty.

Functions

This section is empty.

Types

type Client added in v0.12.0

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

Client provides an API for the snapshotter service.

func NewClient added in v0.12.0

func NewClient(host string) *Client

NewClient returns a new *Client.

func (*Client) MetastoreBackup added in v0.12.0

func (c *Client) MetastoreBackup() (*meta.Data, error)

MetastoreBackup returns a snapshot of the meta store.

func (*Client) UpdateMeta added in v1.5.0

func (c *Client) UpdateMeta(req *Request, upStream io.Reader) (map[uint64]uint64, error)

takes a request object, writes a Base64 encoding to the tcp connection, and then sends the request to the snapshotter service. returns a mapping of the uploaded metadata shardID's to actual shardID's on the destination system.

func (*Client) UploadShard added in v1.5.0

func (c *Client) UploadShard(shardID, newShardID uint64, destinationDatabase, restoreRetention string, tr *tar.Reader) error

type Request added in v0.10.0

type Request struct {
	Type                   RequestType
	BackupDatabase         string
	RestoreDatabase        string
	BackupRetentionPolicy  string
	RestoreRetentionPolicy string
	ShardID                uint64
	Since                  time.Time
	ExportStart            time.Time
	ExportEnd              time.Time
	UploadSize             int64
}

Request represents a request for a specific backup or for information about the shards on this server for a database or retention policy.

type RequestType added in v0.10.0

type RequestType uint8

RequestType indicates the typeof snapshot request.

const (
	// RequestShardBackup represents a request for a shard backup.
	RequestShardBackup RequestType = iota

	// RequestMetastoreBackup represents a request to back up the metastore.
	RequestMetastoreBackup

	// RequestSeriesFileBackup represents a request to back up the database series file.
	RequestSeriesFileBackup

	// RequestDatabaseInfo represents a request for database info.
	RequestDatabaseInfo

	// RequestRetentionPolicyInfo represents a request for retention policy info.
	RequestRetentionPolicyInfo

	// RequestShardExport represents a request to export Shard data.  Similar to a backup, but shards
	// may be filtered based on the start/end times on each block.
	RequestShardExport

	// RequestMetaStoreUpdate represents a request to upload a metafile that will be used to do a live update
	// to the existing metastore.
	RequestMetaStoreUpdate

	// RequestShardUpdate will initiate the upload of a shard data tar file
	// and have the engine import the data.
	RequestShardUpdate
)

type Response added in v0.10.0

type Response struct {
	Paths []string
}

Response contains the relative paths for all the shards on this server that are in the requested database or retention policy.

type Service

type Service struct {
	Node *influxdb.Node

	MetaClient interface {
		encoding.BinaryMarshaler
		Database(name string) *meta.DatabaseInfo
	}

	TSDBStore interface {
		BackupShard(id uint64, since time.Time, w io.Writer) error
		ExportShard(id uint64, ExportStart time.Time, ExportEnd time.Time, w io.Writer) error
		Shard(id uint64) *tsdb.Shard
		ShardRelativePath(id uint64) (string, error)
		SetShardEnabled(shardID uint64, enabled bool) error
		RestoreShard(id uint64, r io.Reader) error
		CreateShard(database, retentionPolicy string, shardID uint64, enabled bool) error
	}

	Listener net.Listener
	Logger   *zap.Logger
	// contains filtered or unexported fields
}

Service manages the listener for the snapshot endpoint.

func NewService

func NewService() *Service

NewService returns a new instance of Service.

func (*Service) Close

func (s *Service) Close() error

Close implements the Service interface.

func (*Service) Open

func (s *Service) Open() error

Open starts the service.

func (*Service) WithLogger added in v1.2.0

func (s *Service) WithLogger(log *zap.Logger)

WithLogger sets the logger on the service.

Jump to

Keyboard shortcuts

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