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, size int64) (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) DeleteWithStorageFormat(ctx context.Context, ref blobstore.BlobRef, formatVer blobstore.FormatVersion) error
- func (bad *BadBlobs) EmptyTrash(ctx context.Context, namespace []byte, trashedBefore time.Time) (int64, [][]byte, error)
- func (bad *BadBlobs) FreeSpace(ctx context.Context) (int64, 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) error
- func (bad *BadBlobs) VerifyStorageDir(ctx context.Context, id storj.NodeID) error
- func (bad *BadBlobs) WalkNamespace(ctx context.Context, namespace []byte, walkFunc func(blobstore.BlobInfo) error) 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, size int64) (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) DeleteWithStorageFormat(ctx context.Context, ref blobstore.BlobRef, formatVer blobstore.FormatVersion) error
- func (slow *SlowBlobs) EmptyTrash(ctx context.Context, namespace []byte, trashedBefore time.Time) (int64, [][]byte, error)
- func (slow *SlowBlobs) FreeSpace(ctx context.Context) (int64, 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) error
- func (slow *SlowBlobs) VerifyStorageDir(ctx context.Context, id storj.NodeID) error
- func (slow *SlowBlobs) WalkNamespace(ctx context.Context, namespace []byte, walkFunc func(blobstore.BlobInfo) error) 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, size int64) (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) 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) 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, 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 piece 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, size int64) (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 (*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) 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) 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, 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 piece operations.
func (*SlowDB) SetLatency ¶
SetLatency enables a sleep for delay duration for all piece operations. A zero or negative delay means no sleep.