chunk

package
v0.0.0-...-303e327 Latest Latest
Warning

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

Go to latest
Published: May 22, 2023 License: Apache-2.0 Imports: 18 Imported by: 0

Documentation

Index

Constants

View Source
const (
	DefaultChunkExpandRate  = 2
	DefaultMaxChunkFileSize = 8 * (1 << 40) // 8 TiB
)

Variables

View Source
var (
	ErrCompactCheck   = errors.New("chunk compact check not match")
	ErrCompactStopped = errors.New("chunk compact stopped")
)

Functions

This section is empty.

Types

type Chunk

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

func NewChunkStorage

func NewChunkStorage(ctx context.Context, dataPath string, vm core.VuidMeta, opts ...core.OptionFunc) (
	cs *Chunk, err error,
)

func (Chunk) AllowModify

func (cs Chunk) AllowModify() (err error)

func (Chunk) CasDirty

func (cs Chunk) CasDirty(old, new uint32) (swapped bool)

func (Chunk) ChunkInfo

func (cs Chunk) ChunkInfo(ctx context.Context) (info bnapi.ChunkInfo)

func (Chunk) Close

func (cs Chunk) Close(ctx context.Context)

func (Chunk) CommitCompact

func (cs Chunk) CommitCompact(ctx context.Context, ncs core.ChunkAPI) (err error)

func (Chunk) Delete

func (cs Chunk) Delete(ctx context.Context, bid proto.BlobID) (err error)

func (Chunk) Destroy

func (cs Chunk) Destroy(ctx context.Context)

func (Chunk) Disk

func (cs Chunk) Disk() core.DiskAPI

func (Chunk) GetStg

func (cs Chunk) GetStg() core.Storage

func (Chunk) HasEnoughSpace

func (cs Chunk) HasEnoughSpace(needSize int64) bool

func (Chunk) HasPendingRequest

func (cs Chunk) HasPendingRequest() bool

func (Chunk) ID

func (cs Chunk) ID() bnapi.ChunkId

func (Chunk) IsClosed

func (cs Chunk) IsClosed() bool

func (Chunk) IsDirty

func (cs Chunk) IsDirty() bool

func (Chunk) ListShards

func (cs Chunk) ListShards(ctx context.Context, startBid proto.BlobID, cnt int, status bnapi.ShardStatus) (
	infos []*bnapi.ShardInfo, next proto.BlobID, err error,
)

func (Chunk) MarkDelete

func (cs Chunk) MarkDelete(ctx context.Context, bid proto.BlobID) (err error)

func (Chunk) MarshalJSON

func (cs Chunk) MarshalJSON() ([]byte, error)

func (Chunk) NeedCompact

func (cs Chunk) NeedCompact(ctx context.Context) bool

func (Chunk) NewRangeReader

func (cs Chunk) NewRangeReader(ctx context.Context, id proto.BlobID, from, to int64) (s *core.Shard, err error)

Fill Shard:

  • Offset
  • Size
  • Crc
  • Flag
  • Body (Reader)

func (Chunk) NewReader

func (cs Chunk) NewReader(ctx context.Context, id proto.BlobID) (s *core.Shard, err error)

Fill Shard:

  • Offset
  • Size
  • Crc
  • Flag
  • Body (Reader)

func (Chunk) PutStg

func (cs Chunk) PutStg(stg core.Storage)

func (Chunk) RangeRead

func (cs Chunk) RangeRead(ctx context.Context, b *core.Shard) (n int64, err error)

Need Shard:

  • From (may fix)
  • To (may fix)
  • Writer (To net)

Fill Shard:

  • Offset
  • Size
  • Crc
  • Flag

func (Chunk) Read

func (cs Chunk) Read(ctx context.Context, b *core.Shard) (n int64, err error)

Need Shard:

  • Writer (To net)

Fill Shard:

  • From, To (may fix)
  • Offset
  • Size
  • Crc
  • Flag

func (Chunk) ReadShardMeta

func (cs Chunk) ReadShardMeta(ctx context.Context, bid proto.BlobID) (sm *core.ShardMeta, err error)

func (Chunk) RefreshFstat

func (cs Chunk) RefreshFstat(ctx context.Context) (err error)

func (Chunk) SetDirty

func (cs Chunk) SetDirty(dirty bool)

func (Chunk) SetStatus

func (cs Chunk) SetStatus(status bnapi.ChunkStatus) (err error)

func (Chunk) StartCompact

func (cs Chunk) StartCompact(ctx context.Context) (newcs core.ChunkAPI, err error)

func (Chunk) Status

func (cs Chunk) Status() (status bnapi.ChunkStatus)

func (Chunk) StopCompact

func (cs Chunk) StopCompact(ctx context.Context, ncs core.ChunkAPI) (err error)

func (Chunk) Sync

func (cs Chunk) Sync(ctx context.Context) (err error)

func (Chunk) SyncData

func (cs Chunk) SyncData(ctx context.Context) (err error)

func (Chunk) UnmarshalJSON

func (cs Chunk) UnmarshalJSON(data []byte) (err error)

func (Chunk) Vuid

func (cs Chunk) Vuid() proto.Vuid

func (Chunk) VuidMeta

func (cs Chunk) VuidMeta() (vm *core.VuidMeta)

func (Chunk) Write

func (cs Chunk) Write(ctx context.Context, b *core.Shard) (err error)

Need Shard:

  • Size
  • Flag
  • Body (Reader)

Fill Shard:

  • Offset
  • Crc

type ChunkStats

type ChunkStats struct {
	// counts
	TotalWriteCnt         uint64 `json:"total_write_cnt"`
	TotalReadCnt          uint64 `json:"total_read_cnt"`
	TotalRangeReadCnt     uint64 `json:"total_rangeread_cnt"`
	TotalReadShardMetaCnt uint64 `json:"total_readmeta_cnt"`
	TotalMarkDelCnt       uint64 `json:"total_markdel_cnt"`
	TotalDelCnt           uint64 `json:"total_del_cnt"`
	TotalListShardCnt     uint64 `json:"total_listshard_cnt"`
	// in queue
	WriteInque         int64 `json:"write_inque"`
	ReadInque          int64 `json:"read_inque"`
	RangeReadInque     int64 `json:"rangeread_inque"`
	ReadShardMetaInque int64 `json:"readmeta_inque"`
	MarkDelInque       int64 `json:"markdel_inque"`
	DelInque           int64 `json:"del_inque"`
	ListShardInque     int64 `json:"listshard_inque"`
	// bytes
	TotalReadBytes      uint64 `json:"total_read_bytes"`
	TotalRangeReadBytes uint64 `json:"total_rangeread_bytes"`
	TotalWriteBytes     uint64 `json:"total_write_bytes"`
	// latency
	TotalWriteDelay         uint64 `json:"total_write_delay"`
	TotalReadDelay          uint64 `json:"total_read_delay"`
	TotalRangeReadDelay     uint64 `json:"total_rangeread_delay"`
	TotalReadShardMetaDelay uint64 `json:"total_readmeta_delay"`
	TotalMarkDelDelay       uint64 `json:"total_markdel_delay"`
	TotalDelDelay           uint64 `json:"total_del_delay"`
	TotalListShardDelay     uint64 `json:"total_listshard_dalay"`
}

Chunk Stats

type FileInfo

type FileInfo struct {
	Total uint64 `json:"total"` // ChunkSize (readonly)
	Used  uint64 `json:"used"`  // user data size ( actual use size, phy size, live Update)
	Free  uint64 `json:"free"`  // ChunkSize - Used
	Size  uint64 `json:"size"`  // Chunk File Size ( file logic size)
}

Jump to

Keyboard shortcuts

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