Documentation ¶
Index ¶
Constants ¶
const FilePerm = 0644
FilePerm default permission of the newly created log file.
Variables ¶
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.
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.