ioselector

package
v1.1.1 Latest Latest
Warning

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

Go to latest
Published: Jun 18, 2022 License: Apache-2.0 Imports: 4 Imported by: 0

Documentation

Index

Constants

View Source
const FilePerm = 0644

FilePerm default permission of the newly created log file.

Variables

View Source
var ErrInvalidFsize = errors.New("fsize can`t be zero or negative")

ErrInvalidFsize invalid file size.

Functions

This section is empty.

Types

type FileIOSelector

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

FileIOSelector represents using standard file I/O.

func (*FileIOSelector) Close

func (fio *FileIOSelector) Close() error

Close is a wrapper of os.File Close.

func (*FileIOSelector) Delete

func (fio *FileIOSelector) Delete() error

Delete file descriptor if we don`t use it anymore.

func (*FileIOSelector) Read

func (fio *FileIOSelector) Read(b []byte, offset int64) (int, error)

Read is a wrapper of os.File ReadAt.

func (*FileIOSelector) Sync

func (fio *FileIOSelector) Sync() error

Sync is a wrapper of os.File Sync.

func (*FileIOSelector) Write

func (fio *FileIOSelector) Write(b []byte, offset int64) (int, error)

Write is a wrapper of os.File WriteAt.

type IOSelector

type IOSelector interface {
	// Write a slice to log file at offset.
	// It returns the number of bytes written and an error, if any.
	Write(b []byte, offset int64) (int, error)

	// Read a slice from offset.
	// It returns the number of bytes read and any error encountered.
	Read(b []byte, offset int64) (int, error)

	// Sync commits the current contents of the file to stable storage.
	// Typically, this means flushing the file system's in-memory copy
	// of recently written data to disk.
	Sync() error

	// Close closes the File, rendering it unusable for I/O.
	// It will return an error if it has already been closed.
	Close() error

	// Delete delete the file.
	// Must close it before delete, and will unmap if in MMapSelector.
	Delete() error
}

IOSelector io selector for fileio and mmap, used by wal and value log right now.

func NewFileIOSelector

func NewFileIOSelector(fName string, fsize int64) (IOSelector, error)

NewFileIOSelector create a new file io selector.

func NewMMapSelector

func NewMMapSelector(fName string, fsize int64) (IOSelector, error)

NewMMapSelector create a new mmap selector.

type MMapSelector

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

MMapSelector represents using memory-mapped file I/O.

func (*MMapSelector) Close

func (lm *MMapSelector) Close() error

Close sync/unmap mapped buffer and close fd.

func (*MMapSelector) Delete

func (lm *MMapSelector) Delete() error

Delete delete mapped buffer and remove file on disk.

func (*MMapSelector) Read

func (lm *MMapSelector) Read(b []byte, offset int64) (int, error)

Read copy data from mapped region(buf) into slice b at offset.

func (*MMapSelector) Sync

func (lm *MMapSelector) Sync() error

Sync synchronize the mapped buffer to the file's contents on disk.

func (*MMapSelector) Write

func (lm *MMapSelector) Write(b []byte, offset int64) (int, error)

Write copy slice b into mapped region(buf) at offset.

Jump to

Keyboard shortcuts

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