backup

package
v1.32.21 Latest Latest
Warning

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

Go to latest
Published: Dec 3, 2025 License: BSD-3-Clause Imports: 2 Imported by: 0

Documentation

Index

Constants

View Source
const DeleteMarker = "__DELETE_ME_AFTER_BACKUP__"

DeleteMarkerAdd marks folders of indices that have been deleted during an ongoing backup and are already removed from store and schema. However, we want to keep them on disk to ensure that the backup can complete. The folders are removed after backup completion. In case of a crash they are deleted at the next startup.

Variables

This section is empty.

Functions

func DeleteMarkerAdd added in v1.32.17

func DeleteMarkerAdd(filename string) string

func IsCancelled added in v1.24.26

func IsCancelled(err error, meta *DistributedBackupDescriptor) bool

Types

type BackupDescriptor

type BackupDescriptor struct {
	StartedAt               time.Time         `json:"startedAt"`
	CompletedAt             time.Time         `json:"completedAt"`
	ID                      string            `json:"id"` // User created backup id
	Classes                 []ClassDescriptor `json:"classes"`
	RbacBackups             []byte            `json:"rbacBackups"`
	UserBackups             []byte            `json:"userBackups"`
	Status                  string            `json:"status"`  // "STARTED|TRANSFERRING|TRANSFERRED|SUCCESS|FAILED|CANCELED"
	Version                 string            `json:"version"` //
	ServerVersion           string            `json:"serverVersion"`
	Error                   string            `json:"error"`
	PreCompressionSizeBytes int64             `json:"preCompressionSizeBytes"` // Size of this node's backup in bytes before compression
	CompressionType         *CompressionType  `json:"compressionType,omitempty"`
}

BackupDescriptor contains everything needed to completely restore a list of classes

func (*BackupDescriptor) AllExist

func (d *BackupDescriptor) AllExist(classes []string) string

AllExist checks if all classes exist in d. It returns either "" or the first class which it could not find

func (*BackupDescriptor) Exclude

func (d *BackupDescriptor) Exclude(classes []string)

Exclude removes classes from d

func (*BackupDescriptor) Filter

func (d *BackupDescriptor) Filter(pred func(s string) bool)

Filter classes based on predicate

func (*BackupDescriptor) GetCompressionType added in v1.32.18

func (d *BackupDescriptor) GetCompressionType() CompressionType

List all existing classes in d

func (*BackupDescriptor) Include

func (d *BackupDescriptor) Include(classes []string)

Include only these classes and remove everything else

func (*BackupDescriptor) List

func (d *BackupDescriptor) List() []string

List all existing classes in d

func (*BackupDescriptor) ToDistributed

func (d *BackupDescriptor) ToDistributed() *DistributedBackupDescriptor

ToDistributed is used just for backward compatibility with the old version.

func (*BackupDescriptor) Validate

func (d *BackupDescriptor) Validate(newSchema bool) error

type ClassDescriptor

type ClassDescriptor struct {
	Name          string             `json:"name"` // DB class name, also selected by user
	Shards        []*ShardDescriptor `json:"shards"`
	ShardingState []byte             `json:"shardingState"`
	Schema        []byte             `json:"schema"`
	Aliases       []byte             `json:"aliases"`

	// AliasesIncluded makes the old backup backward compatible when
	// old backups are restored by newer ClassDescriptor that supports
	// aliases
	AliasesIncluded         bool               `json:"aliasesIncluded"`
	Chunks                  map[int32][]string `json:"chunks,omitempty"`
	Error                   error              `json:"-"`
	PreCompressionSizeBytes int64              `json:"preCompressionSizeBytes"` // Size of this class's backup in bytes before compression
}

ClassDescriptor contains everything needed to completely restore a class

type CompressionType added in v1.32.18

type CompressionType string
const (
	CompressionZSTD CompressionType = "zstd"
	CompressionGZIP CompressionType = "gzip"
	CompressionNone CompressionType = "none"
)

type CreateMeta

type CreateMeta struct {
	Path   string
	Status Status
}

type DistributedBackupDescriptor

type DistributedBackupDescriptor struct {
	StartedAt               time.Time                  `json:"startedAt"`
	CompletedAt             time.Time                  `json:"completedAt"`
	ID                      string                     `json:"id"` // User created backup id
	Nodes                   map[string]*NodeDescriptor `json:"nodes"`
	NodeMapping             map[string]string          `json:"node_mapping"`
	Status                  Status                     `json:"status"`  //
	Version                 string                     `json:"version"` //
	ServerVersion           string                     `json:"serverVersion"`
	Leader                  string                     `json:"leader"`
	Error                   string                     `json:"error"`
	PreCompressionSizeBytes int64                      `json:"preCompressionSizeBytes"` // Size of this node's backup in bytes before compression
	CompressionType         CompressionType            `json:"compressionType"`
}

DistributedBAckupDescriptor contains everything need to completely restore a distributed backup

func (*DistributedBackupDescriptor) AllExist

func (d *DistributedBackupDescriptor) AllExist(classes []string) string

AllExist checks if all classes exist in d. It returns either "" or the first class which it could not find

func (*DistributedBackupDescriptor) ApplyNodeMapping added in v1.22.0

func (d *DistributedBackupDescriptor) ApplyNodeMapping()

ApplyNodeMapping applies d.NodeMapping translation to d.Nodes. If a node in d.Nodes is not translated by d.NodeMapping, it will remain unchanged.

func (*DistributedBackupDescriptor) Classes

func (d *DistributedBackupDescriptor) Classes() []string

Classes returns all classes contained in d

func (*DistributedBackupDescriptor) Count

func (d *DistributedBackupDescriptor) Count() int

Count number of classes

func (*DistributedBackupDescriptor) Exclude

func (d *DistributedBackupDescriptor) Exclude(classes []string)

Exclude removes classes from d

func (*DistributedBackupDescriptor) Filter

func (d *DistributedBackupDescriptor) Filter(pred func(s string) bool)

Filter classes based on predicate

func (*DistributedBackupDescriptor) Include

func (d *DistributedBackupDescriptor) Include(classes []string)

Include only these classes and remove everything else

func (*DistributedBackupDescriptor) Len

Len returns how many nodes exist in d

func (*DistributedBackupDescriptor) RemoveEmpty

RemoveEmpty removes any nodes with an empty class list

func (*DistributedBackupDescriptor) ResetStatus

resetStatus sets status and sub-statuses to Started It also empties error and sub-errors

func (*DistributedBackupDescriptor) ToMappedNodeName added in v1.22.0

func (d *DistributedBackupDescriptor) ToMappedNodeName(nodeName string) string

ToMappedNodeName will return nodeName after applying d.NodeMapping translation on it. If nodeName is not contained in d.nodeMapping, returns nodeName unmodified

func (*DistributedBackupDescriptor) ToOriginalNodeName added in v1.22.0

func (d *DistributedBackupDescriptor) ToOriginalNodeName(nodeName string) string

ToOriginalNodeName will return nodeName after trying to find an original node name from d.NodeMapping values. If nodeName is not contained in d.nodeMapping values, returns nodeName unmodified

func (*DistributedBackupDescriptor) Validate

func (d *DistributedBackupDescriptor) Validate() error

type ErrContextExpired

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

func NewErrContextExpired

func NewErrContextExpired(err error) ErrContextExpired

func (ErrContextExpired) Error

func (e ErrContextExpired) Error() string

type ErrInternal

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

func NewErrInternal

func NewErrInternal(err error) ErrInternal

func (ErrInternal) Error

func (e ErrInternal) Error() string

type ErrNotFound

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

func NewErrNotFound

func NewErrNotFound(err error) ErrNotFound

func (ErrNotFound) Error

func (e ErrNotFound) Error() string

type ErrUnprocessable

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

func NewErrUnprocessable

func NewErrUnprocessable(err error) ErrUnprocessable

func (ErrUnprocessable) Error

func (e ErrUnprocessable) Error() string

type NodeDescriptor

type NodeDescriptor struct {
	Classes                 []string `json:"classes"`
	Status                  Status   `json:"status"`
	Error                   string   `json:"error"`
	PreCompressionSizeBytes int64    `json:"preCompressionSizeBytes"` // Size of this node's backup in bytes before compression
}

NodeDescriptor contains data related to one participant in DBRO

type RestoreMeta

type RestoreMeta struct {
	Path   string
	Status Status
}

type ShardDescriptor

type ShardDescriptor struct {
	Name  string   `json:"name"`
	Node  string   `json:"node"`
	Files []string `json:"files,omitempty"`

	DocIDCounterPath      string `json:"docIdCounterPath,omitempty"`
	DocIDCounter          []byte `json:"docIdCounter,omitempty"`
	PropLengthTrackerPath string `json:"propLengthTrackerPath,omitempty"`
	PropLengthTracker     []byte `json:"propLengthTracker,omitempty"`
	ShardVersionPath      string `json:"shardVersionPath,omitempty"`
	Version               []byte `json:"version,omitempty"`
	Chunk                 int32  `json:"chunk"`
}

ShardDescriptor contains everything needed to completely restore a partition of a specific class

func (*ShardDescriptor) ClearTemporary added in v1.21.0

func (s *ShardDescriptor) ClearTemporary()

ClearTemporary clears fields that are no longer needed once compression is done. These fields are not required in versions > 1 because they are stored in the tarball.

type Status

type Status string
const (
	Started      Status = "STARTED"
	Transferring Status = "TRANSFERRING"
	Transferred  Status = "TRANSFERRED"
	Success      Status = "SUCCESS"
	Cancelled    Status = "CANCELED"
	Failed       Status = "FAILED"
)

Jump to

Keyboard shortcuts

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