Documentation ¶
Index ¶
- Constants
- func IsDirOrSymlink(de os.DirEntry) bool
- func IsPathExist(path string) bool
- func IsScheduledForRemoval(filename string) bool
- func IsTemporaryFileName(fn string) bool
- func MustClose(f *os.File)
- func MustCopyDirectory(srcPath, dstPath string)
- func MustCopyFile(srcPath, dstPath string)
- func MustCreateFlockFile(dir string) *os.File
- func MustFileSize(path string) uint64
- func MustGetFreeSpace(path string) uint64
- func MustHardLinkFiles(srcDir, dstDir string)
- func MustMkdirFailIfExist(path string)
- func MustMkdirIfNotExist(path string)
- func MustReadData(r filestream.ReadCloser, data []byte)
- func MustReadDir(dir string) []os.DirEntry
- func MustRemoveAll(path string)
- func MustRemoveDirAtomic(dir string)
- func MustRemoveTemporaryDirs(dir string)
- func MustStopDirRemover()
- func MustSymlinkRelative(srcPath, dstPath string)
- func MustSyncPath(path string)
- func MustWriteAtomic(path string, data []byte, canOverwrite bool)
- func MustWriteData(w filestream.WriteCloser, data []byte)
- func MustWriteSync(path string, data []byte)
- func RemoveDirContents(dir string)
- type MustReadAtCloser
- type ReaderAt
Constants ¶
const FlockFilename = "flock.lock"
FlockFilename is the filename for the file created by MustCreateFlockFile().
Variables ¶
This section is empty.
Functions ¶
func IsDirOrSymlink ¶
IsDirOrSymlink returns true if de is directory or symlink.
func IsPathExist ¶
IsPathExist returns whether the given path exists.
func IsScheduledForRemoval ¶ added in v1.87.2
IsScheduledForRemoval returns true if the filename contains .must-remove. substring
func IsTemporaryFileName ¶ added in v1.25.0
IsTemporaryFileName returns true if fn matches temporary file name pattern from MustWriteAtomic.
func MustCopyDirectory ¶ added in v1.91.0
func MustCopyDirectory(srcPath, dstPath string)
MustCopyDirectory copies all the files in srcPath to dstPath.
func MustCopyFile ¶ added in v1.91.0
func MustCopyFile(srcPath, dstPath string)
MustCopyFile copies the file from srcPath to dstPath.
func MustCreateFlockFile ¶ added in v1.91.0
MustCreateFlockFile creates FlockFilename file in the directory dir and returns the handler to the file.
func MustFileSize ¶ added in v1.21.2
MustFileSize returns file size for the given path.
func MustGetFreeSpace ¶ added in v1.27.0
MustGetFreeSpace returns free space for the given directory path.
func MustHardLinkFiles ¶ added in v1.91.0
func MustHardLinkFiles(srcDir, dstDir string)
MustHardLinkFiles makes hard links for all the files from srcDir in dstDir.
func MustMkdirFailIfExist ¶ added in v1.91.0
func MustMkdirFailIfExist(path string)
MustMkdirFailIfExist creates the given path dir if it isn't exist.
If the directory at the given path already exists, then the function logs the error and exits.
func MustMkdirIfNotExist ¶ added in v1.91.0
func MustMkdirIfNotExist(path string)
MustMkdirIfNotExist creates the given path dir if it isn't exist.
func MustReadData ¶ added in v1.91.0
func MustReadData(r filestream.ReadCloser, data []byte)
MustReadData reads len(data) bytes from r.
func MustReadDir ¶ added in v1.91.0
MustReadDir reads directory entries at the given dir.
func MustRemoveAll ¶ added in v1.19.0
func MustRemoveAll(path string)
MustRemoveAll removes path with all the contents.
It properly fsyncs the parent directory after path removal.
It properly handles NFS issue https://github.com/VictoriaMetrics/VictoriaMetrics/issues/61 .
func MustRemoveDirAtomic ¶ added in v1.82.0
func MustRemoveDirAtomic(dir string)
MustRemoveDirAtomic removes the given dir atomically.
It uses the following algorithm:
- Atomically rename the "<dir>" to "<dir>.must-remove.<XYZ>", where <XYZ> is an unique number.
- Remove the "<dir>.must-remove.XYZ" in background.
If the process crashes after the step 1, then the directory must be removed on the next process start by calling MustRemoveTemporaryDirs on the parent directory.
func MustRemoveTemporaryDirs ¶ added in v1.82.0
func MustRemoveTemporaryDirs(dir string)
MustRemoveTemporaryDirs removes all the subdirectories with ".must-remove.<XYZ>" suffix.
Such directories may be left on unclean shutdown during MustRemoveDirAtomic call.
func MustStopDirRemover ¶ added in v1.27.2
func MustStopDirRemover()
MustStopDirRemover must be called in the end of graceful shutdown in order to wait for removing the remaining directories from removeDirConcurrencyCh.
It is expected that nobody calls MustRemoveAll when MustStopDirRemover is called.
func MustSymlinkRelative ¶ added in v1.91.0
func MustSymlinkRelative(srcPath, dstPath string)
MustSymlinkRelative creates relative symlink for srcPath in dstPath.
func MustSyncPath ¶ added in v1.19.2
func MustSyncPath(path string)
MustSyncPath syncs contents of the given path.
func MustWriteAtomic ¶ added in v1.91.0
MustWriteAtomic atomically writes data to the given file path.
This function returns only after the file is fully written and synced to the underlying storage.
This function guarantees that the file at path either fully written or not written at all on app crash in the middle of the write.
If the file at path already exists, then the file is overwritten atomically if canOverwrite is true. Otherwise error is returned.
func MustWriteData ¶
func MustWriteData(w filestream.WriteCloser, data []byte)
MustWriteData writes data to w.
func MustWriteSync ¶ added in v1.91.0
MustWriteSync writes data to the file at path and then calls fsync on the created file.
The fsync guarantees that the written data survives hardware reset after successful call.
This function may leave the file at the path in inconsistent state on app crash in the middle of the write. Use MustWriteAtomic if the file at the path must be either written in full or not written at all on app crash in the middle of the write.
func RemoveDirContents ¶
func RemoveDirContents(dir string)
RemoveDirContents removes all the contents of the given dir if it exists.
It doesn't remove the dir itself, so the dir may be mounted to a separate partition.
Types ¶
type MustReadAtCloser ¶ added in v1.33.0
type MustReadAtCloser interface { // Path must return path for the reader (e.g. file path, url or in-memory reference) Path() string // MustReadAt must read len(p) bytes from offset off to p. MustReadAt(p []byte, off int64) // MustClose must close the reader. MustClose() }
MustReadAtCloser is rand-access read interface.
type ReaderAt ¶
type ReaderAt struct {
// contains filtered or unexported fields
}
ReaderAt implements rand-access reader.
func MustOpenReaderAt ¶ added in v1.48.0
MustOpenReaderAt opens ReaderAt for reading from the file located at path.
MustClose must be called on the returned ReaderAt when it is no longer needed.
func NewReaderAt ¶ added in v1.97.2
NewReaderAt returns ReaderAt for reading from f.
NewReaderAt takes ownership for f, so it shouldn't be closed by the caller.
MustClose must be called on the returned ReaderAt when it is no longer needed.
func (*ReaderAt) MustFadviseSequentialRead ¶ added in v1.33.0
MustFadviseSequentialRead hints the OS that f is read mostly sequentially.
if prefetch is set, then the OS is hinted to prefetch f data.
func (*ReaderAt) MustReadAt ¶ added in v1.33.0
MustReadAt reads len(p) bytes at off from r.
func (*ReaderAt) SetUseLocalStats ¶ added in v1.87.4
func (r *ReaderAt) SetUseLocalStats()
SetUseLocalStats switches to local stats collection instead of global stats collection.
This function must be called before the first call to MustReadAt().
Collecting local stats may improve performance on systems with big number of CPU cores, since the locally collected stats is pushed to global stats only at MustClose() call instead of pushing it at every MustReadAt call.