Documentation ¶
Index ¶
- func NewLimitedSpaceDB(log *zap.Logger, db storagenode.DB, freeSpace int64) storagenode.DB
- type BadBlobs
- func (bad *BadBlobs) CheckWritability(ctx context.Context) error
- func (bad *BadBlobs) Close() error
- func (bad *BadBlobs) Create(ctx context.Context, ref blobstore.BlobRef) (blobstore.BlobWriter, error)
- func (bad *BadBlobs) CreateVerificationFile(ctx context.Context, id storj.NodeID) error
- func (bad *BadBlobs) Delete(ctx context.Context, ref blobstore.BlobRef) error
- func (bad *BadBlobs) DeleteNamespace(ctx context.Context, ref []byte) (err error)
- func (bad *BadBlobs) DeleteTrashNamespace(ctx context.Context, namespace []byte) error
- func (bad *BadBlobs) DeleteWithStorageFormat(ctx context.Context, ref blobstore.BlobRef, formatVer blobstore.FormatVersion) error
- func (bad *BadBlobs) DiskInfo(ctx context.Context) (blobstore.DiskInfo, error)
- func (bad *BadBlobs) EmptyTrash(ctx context.Context, namespace []byte, trashedBefore time.Time) (int64, [][]byte, error)
- func (bad *BadBlobs) ListNamespaces(ctx context.Context) ([][]byte, error)
- func (bad *BadBlobs) Open(ctx context.Context, ref blobstore.BlobRef) (blobstore.BlobReader, error)
- func (bad *BadBlobs) OpenWithStorageFormat(ctx context.Context, ref blobstore.BlobRef, formatVer blobstore.FormatVersion) (blobstore.BlobReader, error)
- func (bad *BadBlobs) RestoreTrash(ctx context.Context, namespace []byte) ([][]byte, error)
- func (bad *BadBlobs) SetCheckError(err error)
- func (bad *BadBlobs) SetError(err error)
- func (bad *BadBlobs) SpaceUsedForBlobs(ctx context.Context) (int64, error)
- func (bad *BadBlobs) SpaceUsedForBlobsInNamespace(ctx context.Context, namespace []byte) (int64, error)
- func (bad *BadBlobs) SpaceUsedForTrash(ctx context.Context) (int64, error)
- func (bad *BadBlobs) Stat(ctx context.Context, ref blobstore.BlobRef) (blobstore.BlobInfo, error)
- func (bad *BadBlobs) StatWithStorageFormat(ctx context.Context, ref blobstore.BlobRef, formatVer blobstore.FormatVersion) (blobstore.BlobInfo, error)
- func (bad *BadBlobs) Trash(ctx context.Context, ref blobstore.BlobRef, timestamp time.Time) error
- func (bad *BadBlobs) TrashWithStorageFormat(ctx context.Context, ref blobstore.BlobRef, formatVer blobstore.FormatVersion, ...) error
- func (bad *BadBlobs) TryRestoreTrashBlob(ctx context.Context, ref blobstore.BlobRef) error
- func (bad *BadBlobs) VerifyStorageDir(ctx context.Context, id storj.NodeID) error
- func (bad *BadBlobs) WalkNamespace(ctx context.Context, namespace []byte, startFromPrefix string, ...) error
- type BadDB
- type ErrorBlobs
- type LimitedSpaceBlobs
- type SlowBlobs
- func (slow *SlowBlobs) CheckWritability(ctx context.Context) error
- func (slow *SlowBlobs) Close() error
- func (slow *SlowBlobs) Create(ctx context.Context, ref blobstore.BlobRef) (blobstore.BlobWriter, error)
- func (slow *SlowBlobs) CreateVerificationFile(ctx context.Context, id storj.NodeID) error
- func (slow *SlowBlobs) Delete(ctx context.Context, ref blobstore.BlobRef) error
- func (slow *SlowBlobs) DeleteNamespace(ctx context.Context, ref []byte) (err error)
- func (slow *SlowBlobs) DeleteTrashNamespace(ctx context.Context, namespace []byte) error
- func (slow *SlowBlobs) DeleteWithStorageFormat(ctx context.Context, ref blobstore.BlobRef, formatVer blobstore.FormatVersion) error
- func (slow *SlowBlobs) DiskInfo(ctx context.Context) (blobstore.DiskInfo, error)
- func (slow *SlowBlobs) EmptyTrash(ctx context.Context, namespace []byte, trashedBefore time.Time) (int64, [][]byte, error)
- func (slow *SlowBlobs) ListNamespaces(ctx context.Context) ([][]byte, error)
- func (slow *SlowBlobs) Open(ctx context.Context, ref blobstore.BlobRef) (blobstore.BlobReader, error)
- func (slow *SlowBlobs) OpenWithStorageFormat(ctx context.Context, ref blobstore.BlobRef, formatVer blobstore.FormatVersion) (blobstore.BlobReader, error)
- func (slow *SlowBlobs) RestoreTrash(ctx context.Context, namespace []byte) ([][]byte, error)
- func (slow *SlowBlobs) SetLatency(delay time.Duration)
- func (slow *SlowBlobs) SpaceUsedForBlobs(ctx context.Context) (int64, error)
- func (slow *SlowBlobs) SpaceUsedForBlobsInNamespace(ctx context.Context, namespace []byte) (int64, error)
- func (slow *SlowBlobs) SpaceUsedForTrash(ctx context.Context) (int64, error)
- func (slow *SlowBlobs) Stat(ctx context.Context, ref blobstore.BlobRef) (blobstore.BlobInfo, error)
- func (slow *SlowBlobs) StatWithStorageFormat(ctx context.Context, ref blobstore.BlobRef, formatVer blobstore.FormatVersion) (blobstore.BlobInfo, error)
- func (slow *SlowBlobs) Trash(ctx context.Context, ref blobstore.BlobRef, timestamp time.Time) error
- func (slow *SlowBlobs) TrashWithStorageFormat(ctx context.Context, ref blobstore.BlobRef, formatVer blobstore.FormatVersion, ...) error
- func (slow *SlowBlobs) TryRestoreTrashBlob(ctx context.Context, ref blobstore.BlobRef) error
- func (slow *SlowBlobs) VerifyStorageDir(ctx context.Context, id storj.NodeID) error
- func (slow *SlowBlobs) WalkNamespace(ctx context.Context, namespace []byte, startFromPrefix string, ...) error
- type SlowDB
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func NewLimitedSpaceDB ¶
func NewLimitedSpaceDB(log *zap.Logger, db storagenode.DB, freeSpace int64) storagenode.DB
NewLimitedSpaceDB creates a new storage node DB with limited free space.
Types ¶
type BadBlobs ¶
type BadBlobs struct {
// contains filtered or unexported fields
}
BadBlobs implements a bad blob store.
func (*BadBlobs) CheckWritability ¶
CheckWritability tests writability of the storage directory by creating and deleting a file.
func (*BadBlobs) Create ¶
func (bad *BadBlobs) Create(ctx context.Context, ref blobstore.BlobRef) (blobstore.BlobWriter, error)
Create creates a new blob that can be written optionally takes a size argument for performance improvements, -1 is unknown size.
func (*BadBlobs) CreateVerificationFile ¶
CreateVerificationFile creates a file to be used for storage directory verification.
func (*BadBlobs) DeleteNamespace ¶
DeleteNamespace deletes blobs of specific satellite, used after successful GE only.
func (*BadBlobs) DeleteTrashNamespace ¶ added in v1.88.2
DeleteTrashNamespace deletes the trash folder for the namespace.
func (*BadBlobs) DeleteWithStorageFormat ¶
func (bad *BadBlobs) DeleteWithStorageFormat(ctx context.Context, ref blobstore.BlobRef, formatVer blobstore.FormatVersion) error
DeleteWithStorageFormat deletes the blob with the namespace, key, and format version.
func (*BadBlobs) EmptyTrash ¶
func (bad *BadBlobs) EmptyTrash(ctx context.Context, namespace []byte, trashedBefore time.Time) (int64, [][]byte, error)
EmptyTrash empties the trash.
func (*BadBlobs) ListNamespaces ¶
ListNamespaces returns all namespaces that might be storing data.
func (*BadBlobs) OpenWithStorageFormat ¶
func (bad *BadBlobs) OpenWithStorageFormat(ctx context.Context, ref blobstore.BlobRef, formatVer blobstore.FormatVersion) (blobstore.BlobReader, error)
OpenWithStorageFormat opens a reader for the already-located blob, avoiding the potential need to check multiple storage formats to find the blob.
func (*BadBlobs) RestoreTrash ¶
RestoreTrash restores all files in the trash.
func (*BadBlobs) SetCheckError ¶
SetCheckError configures the blob store to return a specific error for verification operations.
func (*BadBlobs) SetError ¶
SetError configures the blob store to return a specific error for all operations, except verification.
func (*BadBlobs) SpaceUsedForBlobs ¶
SpaceUsedForBlobs adds up how much is used in all namespaces.
func (*BadBlobs) SpaceUsedForBlobsInNamespace ¶
func (bad *BadBlobs) SpaceUsedForBlobsInNamespace(ctx context.Context, namespace []byte) (int64, error)
SpaceUsedForBlobsInNamespace adds up how much is used in the given namespace.
func (*BadBlobs) SpaceUsedForTrash ¶
SpaceUsedForTrash adds up how much is used in all namespaces.
func (*BadBlobs) StatWithStorageFormat ¶
func (bad *BadBlobs) StatWithStorageFormat(ctx context.Context, ref blobstore.BlobRef, formatVer blobstore.FormatVersion) (blobstore.BlobInfo, error)
StatWithStorageFormat looks up disk metadata for the blob file with the given storage format version. This avoids the potential need to check multiple storage formats for the blob when the format is already known.
func (*BadBlobs) TrashWithStorageFormat ¶ added in v1.109.1
func (bad *BadBlobs) TrashWithStorageFormat(ctx context.Context, ref blobstore.BlobRef, formatVer blobstore.FormatVersion, timestamp time.Time) error
TrashWithStorageFormat moves into trash the blob with the namespace, key and specific storage format.
func (*BadBlobs) TryRestoreTrashBlob ¶ added in v1.99.1
TryRestoreTrashBlob attempts to restore a blob from the trash.
func (*BadBlobs) VerifyStorageDir ¶
VerifyStorageDir verifies that the storage directory is correct by checking for the existence and validity of the verification file.
func (*BadBlobs) WalkNamespace ¶
func (bad *BadBlobs) WalkNamespace(ctx context.Context, namespace []byte, startFromPrefix string, walkFunc func(blobstore.BlobInfo) error) error
WalkNamespace executes walkFunc for each locally stored blob in the given namespace. If walkFunc returns a non-nil error, WalkNamespace will stop iterating and return the error immediately.
type BadDB ¶
type BadDB struct { storagenode.DB Blobs ErrorBlobs // contains filtered or unexported fields }
BadDB implements bad storage node DB.
func NewBadDB ¶
func NewBadDB(log *zap.Logger, db storagenode.DB) *BadDB
NewBadDB creates a new bad storage node DB. Use SetError to manually configure the error returned by all blob operations.
func (*BadDB) SetCheckError ¶
SetCheckError sets an error to be returned for check and verification operations.
type ErrorBlobs ¶
ErrorBlobs is the interface of blobstore.Blobs with the SetError method added. This allows the BadDB{}.Blobs member to be replaced with something that has specific behavior changes.
type LimitedSpaceBlobs ¶
LimitedSpaceBlobs implements a limited space blob store.
type SlowBlobs ¶
type SlowBlobs struct {
// contains filtered or unexported fields
}
SlowBlobs implements a slow blob store.
func (*SlowBlobs) CheckWritability ¶
CheckWritability tests writability of the storage directory by creating and deleting a file.
func (*SlowBlobs) Create ¶
func (slow *SlowBlobs) Create(ctx context.Context, ref blobstore.BlobRef) (blobstore.BlobWriter, error)
Create creates a new blob that can be written.
func (*SlowBlobs) CreateVerificationFile ¶
CreateVerificationFile creates a file to be used for storage directory verification.
func (*SlowBlobs) DeleteNamespace ¶
DeleteNamespace deletes blobs of specific satellite, used after successful GE only.
func (*SlowBlobs) DeleteTrashNamespace ¶ added in v1.88.2
DeleteTrashNamespace deletes the trash folder for the specified namespace.
func (*SlowBlobs) DeleteWithStorageFormat ¶
func (slow *SlowBlobs) DeleteWithStorageFormat(ctx context.Context, ref blobstore.BlobRef, formatVer blobstore.FormatVersion) error
DeleteWithStorageFormat deletes the blob with the namespace, key, and format version.
func (*SlowBlobs) EmptyTrash ¶
func (slow *SlowBlobs) EmptyTrash(ctx context.Context, namespace []byte, trashedBefore time.Time) (int64, [][]byte, error)
EmptyTrash empties the trash.
func (*SlowBlobs) ListNamespaces ¶
ListNamespaces returns all namespaces that might be storing data.
func (*SlowBlobs) Open ¶
func (slow *SlowBlobs) Open(ctx context.Context, ref blobstore.BlobRef) (blobstore.BlobReader, error)
Open opens a reader with the specified namespace and key.
func (*SlowBlobs) OpenWithStorageFormat ¶
func (slow *SlowBlobs) OpenWithStorageFormat(ctx context.Context, ref blobstore.BlobRef, formatVer blobstore.FormatVersion) (blobstore.BlobReader, error)
OpenWithStorageFormat opens a reader for the already-located blob, avoiding the potential need to check multiple storage formats to find the blob.
func (*SlowBlobs) RestoreTrash ¶
RestoreTrash restores all files in the trash.
func (*SlowBlobs) SetLatency ¶
SetLatency configures the blob store to sleep for delay duration for all operations. A zero or negative delay means no sleep.
func (*SlowBlobs) SpaceUsedForBlobs ¶
SpaceUsedForBlobs adds up how much is used in all namespaces.
func (*SlowBlobs) SpaceUsedForBlobsInNamespace ¶
func (slow *SlowBlobs) SpaceUsedForBlobsInNamespace(ctx context.Context, namespace []byte) (int64, error)
SpaceUsedForBlobsInNamespace adds up how much is used in the given namespace.
func (*SlowBlobs) SpaceUsedForTrash ¶
SpaceUsedForTrash adds up how much is used in all namespaces.
func (*SlowBlobs) StatWithStorageFormat ¶
func (slow *SlowBlobs) StatWithStorageFormat(ctx context.Context, ref blobstore.BlobRef, formatVer blobstore.FormatVersion) (blobstore.BlobInfo, error)
StatWithStorageFormat looks up disk metadata for the blob file with the given storage format version. This avoids the potential need to check multiple storage formats for the blob when the format is already known.
func (*SlowBlobs) TrashWithStorageFormat ¶ added in v1.109.1
func (slow *SlowBlobs) TrashWithStorageFormat(ctx context.Context, ref blobstore.BlobRef, formatVer blobstore.FormatVersion, timestamp time.Time) error
TrashWithStorageFormat moves into trash the blob with the namespace, key and specific storage format.
func (*SlowBlobs) TryRestoreTrashBlob ¶ added in v1.99.1
TryRestoreTrashBlob attempts to restore a blob from trash.
func (*SlowBlobs) VerifyStorageDir ¶
VerifyStorageDir verifies that the storage directory is correct by checking for the existence and validity of the verification file.
func (*SlowBlobs) WalkNamespace ¶
func (slow *SlowBlobs) WalkNamespace(ctx context.Context, namespace []byte, startFromPrefix string, walkFunc func(blobstore.BlobInfo) error) error
WalkNamespace executes walkFunc for each locally stored blob in the given namespace. If walkFunc returns a non-nil error, WalkNamespace will stop iterating and return the error immediately.
type SlowDB ¶
type SlowDB struct { storagenode.DB // contains filtered or unexported fields }
SlowDB implements slow storage node DB.
func NewSlowDB ¶
func NewSlowDB(log *zap.Logger, db storagenode.DB) *SlowDB
NewSlowDB creates a new slow storage node DB wrapping the provided db. Use SetLatency to dynamically configure the latency of all blob operations.
func (*SlowDB) SetLatency ¶
SetLatency enables a sleep for delay duration for all blob operations. A zero or negative delay means no sleep.