v1.7.9 Latest Latest

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



Package snapshotter provides the meta snapshot service.



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


This section is empty.


This section is empty.


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.

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

	// RequestDatabaseInfo represents a request for database info.

	// RequestRetentionPolicyInfo represents a request for retention policy info.

	// 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.

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

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

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 {
		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