nodestorage

package
v0.7.9 Latest Latest
Warning

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

Go to latest
Published: Jul 30, 2025 License: MIT Imports: 38 Imported by: 6

Documentation

Index

Constants

View Source
const (
	IndexStorageName = ".index"
)

Variables

View Source
var (
	ErrUnknownSpaceId = errors.New("unknown space id")
	ErrNoLastRecordId = errors.New("no last record id")
)
View Source
var (
	ErrClosed  = errors.New("space storage closed")
	ErrDeleted = errors.New("space storage deleted")
)
View Source
var (
	ErrLocked                  = errors.New("space storage locked")
	ErrSpaceIdIsEmpty          = errors.New("space id is empty")
	ErrDoesntSupportSpaceStats = errors.New("doesn't support nodestorage.ObjectSpaceStats")
)

Functions

func CreateTreeStorage added in v0.5.0

func CreateTreeStorage(t *testing.T, storage spacestorage.SpaceStorage, treeLen, changeLen int)

func GenStorage added in v0.5.0

func GenStorage(t *testing.T, ss NodeStorage, treeLen, changeLen int) spacestorage.SpaceStorage

func NewStorageCreatePayload added in v0.5.0

func NewStorageCreatePayload(t *testing.T) spacestorage.SpaceStorageCreatePayload

Types

type ChangeSizeStats added in v0.4.2

type ChangeSizeStats struct {
	MaxLen int     `json:"maxLen"`
	P95    float64 `json:"p95"`
	Avg    float64 `json:"avg"`
	Median float64 `json:"median"`
	Total  int     `json:"total"`
}

type Config

type Config struct {
	Path         string `yaml:"path"`
	AnyStorePath string `yaml:"anyStorePath"`
}

type IndexStorage added in v0.5.0

type IndexStorage interface {
	UpdateHash(ctx context.Context, update SpaceUpdate) (err error)
	RemoveHash(ctx context.Context, spaceId string) (err error)
	ReadHashes(ctx context.Context, iterFunc func(update SpaceUpdate) (bool, error)) (err error)
	SetSpaceStatus(ctx context.Context, spaceId string, status SpaceStatus, recId string) (err error)
	SpaceStatus(ctx context.Context, spaceId string) (status SpaceStatus, err error)
	LastRecordId(ctx context.Context) (id string, err error)
	Close() (err error)
}

func OpenIndexStorage added in v0.5.0

func OpenIndexStorage(ctx context.Context, rootPath string) (ds IndexStorage, err error)

type NodeStorage

type NodeStorage interface {
	spacestorage.SpaceStorageProvider
	IndexStorage() IndexStorage
	IndexSpace(ctx context.Context, spaceId string, setHead bool) (spacestorage.SpaceStorage, error)
	SpaceStorage(ctx context.Context, spaceId string) (spacestorage.SpaceStorage, error)
	TryLockAndDo(ctx context.Context, spaceId string, do func() error) (err error)
	DumpStorage(ctx context.Context, id string, do func(path string) error) (err error)
	AllSpaceIds() (ids []string, err error)
	OnDeleteStorage(onDelete func(ctx context.Context, spaceId string))
	OnWriteHash(onWrite func(ctx context.Context, spaceId, oldHash, newHash string))
	StoreDir(spaceId string) (path string)
	DeleteSpaceStorage(ctx context.Context, spaceId string) error
	GetStats(ctx context.Context, id string, treeTop int) (spaceStats SpaceStats, err error)
}

func New

func New() NodeStorage

type NodeStorageStats added in v0.4.2

type NodeStorageStats interface {
	GetSpaceStats(ctx context.Context, treeTop int) (ObjectSpaceStats, error)
}

type ObjectSpaceStats added in v0.5.0

type ObjectSpaceStats struct {
	ObjectsCount        int                `json:"objectsCount,omitempty"`
	DeletedObjectsCount int                `json:"deletedObjectsCount"`
	ChangesCount        int                `json:"changesCount"`
	ChangeSize          ChangeSizeStats    `json:"changeSizeStats,omitempty"`
	PerObjectSize       PerObjectSizeStats `json:"perObjectSizeStats,omitempty"`
	TreeStats           []TreeStat         `json:"treeStats,omitempty"`
	// contains filtered or unexported fields
}

type PerObjectSizeStats added in v0.5.0

type PerObjectSizeStats struct {
	LenTotalMax     int     `json:"len"`
	LenTotalP95     float64 `json:"lenTotalP95"`
	LenTotalMedian  float64 `json:"lenTotalMedian"`
	SizeTotalMax    int     `json:"sizeTotal"`
	SizeTotalP95    float64 `json:"SizeTotalP95"`
	SizeTotalMedian float64 `json:"SizeTotalMedian"`
	SizeMax         int     `json:"sizeMax"`
	SizeP95         float64 `json:"sizeP95"`
	SizeMedian      float64 `json:"sizeMedian"`
}

type SpaceStats added in v0.4.2

type SpaceStats struct {
	Storage ObjectSpaceStats `json:"storage"`
	Acl     struct {
		Readers int `json:"readers"`
		Writers int `json:"writers"`
	} `json:"acl"`
}

type SpaceStatus added in v0.3.1

type SpaceStatus int
const (
	SpaceStatusOk SpaceStatus = iota
	SpaceStatusRemove
	SpaceStatusRemovePrepare
)

type SpaceStorageStat added in v0.5.3

type SpaceStorageStat struct {
	Id            string `json:"id"`
	Refs          int    `json:"refs"`
	Info          string `json:"info"`
	InStorageSecs int    `json:"inStorageSecs"`
}

type SpaceUpdate added in v0.6.4

type SpaceUpdate struct {
	SpaceId string
	OldHash string
	NewHash string
	Updated time.Time
}

type StorageStat added in v0.5.0

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

type StorageStats added in v0.5.3

type StorageStats struct {
	Total  int                `json:"total"`
	Spaces []SpaceStorageStat `json:"spaces"`
}

type TreeStat added in v0.4.8

type TreeStat struct {
	Id                 string `json:"id"`
	ChangesCount       int    `json:"changesCount"`
	SnapshotsCount     int    `json:"snapshotsCount"`
	MaxSnapshotCounter int    `json:"maxSnapshotCounter"`
	ChangesSumSize     int    `json:"payloadSize"`
	ChangeMaxSize      int    `json:"changeMaxSize"`
}

Directories

Path Synopsis
Code generated by MockGen.
Code generated by MockGen.

Jump to

Keyboard shortcuts

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