master_server

package
v0.0.0-...-864fb75 Latest Latest
Warning

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

Go to latest
Published: Oct 4, 2024 License: Apache-2.0 Imports: 7 Imported by: 0

Documentation

Index

Constants

View Source
const (
	// ChunkSize is default 64MB
	ChunkSize uint64 = 1 << 26
)

Variables

This section is empty.

Functions

This section is empty.

Types

type ChunkHandle

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

ChunkHandle stores detail infomation about a chunk, including it's physical position in the DFS.

func NewChunkHandle

func NewChunkHandle(filename string, chunkNum int) ChunkHandle

type ChunkServer

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

func NewChunkServer

func NewChunkServer(address string, port int, weight uint32) ChunkServer

func (ChunkServer) Compare

func (cs ChunkServer) Compare(server ChunkServer) int

func (ChunkServer) GetIPAddress

func (cs ChunkServer) GetIPAddress() string

type F2Hs

type F2Hs map[string][]ChunkHandle

F2Hs holds <filename, chunk handles> pairs

func (*F2Hs) GetHandle

func (f *F2Hs) GetHandle(filename string, offset uint64) (ChunkHandle, error)

func (*F2Hs) Touch

func (f *F2Hs) Touch(filename string) error

type FileSystem

type FileSystem interface {
	// Touch creates a new file.
	Touch(string) error
	// GetHandle finds a chunk handle based on filename and offset.
	GetHandle(string, uint64) (ChunkHandle, error)
}

FileSystem manages all files stored in DFS.

type LocalRegistry

type LocalRegistry []ChunkServer

LocalRegistry stores all chunk servers' infomation in master server's run time memory space.

func (*LocalRegistry) All

func (lr *LocalRegistry) All() []ChunkServer

func (LocalRegistry) Len

func (lr LocalRegistry) Len() int

func (LocalRegistry) Less

func (lr LocalRegistry) Less(i, j int) bool

func (*LocalRegistry) Next

func (lr *LocalRegistry) Next() *ChunkServer

func (*LocalRegistry) Pop

func (lr *LocalRegistry) Pop() interface{}

func (*LocalRegistry) Push

func (lr *LocalRegistry) Push(x interface{})

func (*LocalRegistry) Register

func (lr *LocalRegistry) Register(cs ChunkServer) error

func (LocalRegistry) Swap

func (lr LocalRegistry) Swap(i, j int)

type MasterServer

type MasterServer struct {
	pb.UnimplementedMasterServer
	// contains filtered or unexported fields
}

func (*MasterServer) Create

func (s *MasterServer) Create(ctx context.Context, req *pb.CreateReq) (*pb.CreateResp, error)

func (*MasterServer) Discover

func (s *MasterServer) Discover(stream pb.Master_DiscoverServer) error

func (*MasterServer) Register

func (s *MasterServer) Register(ctx context.Context, req *pb.RegisterReq) (*pb.RegisterResp, error)

type Registry

type Registry interface {
	Register(ChunkServer) error
	Next() *ChunkServer
	All() []ChunkServer
}

Registry manages infomation about running chunk servers.

Jump to

Keyboard shortcuts

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