MCPcopy Create free account
hub / github.com/cortexproject/cortex / getRequestMMappedFile

Function getRequestMMappedFile

pkg/util/request_tracker/request_tracker.go:98–124  ·  view source on GitHub ↗
(filename string, filesize int, logger *slog.Logger)

Source from the content-addressed store, hash-verified

96}
97
98func getRequestMMappedFile(filename string, filesize int, logger *slog.Logger) ([]byte, io.Closer, error) {
99 file, err := os.OpenFile(filename, os.O_CREATE|os.O_RDWR|os.O_TRUNC, 0o666)
100 if err != nil {
101 absPath, pathErr := filepath.Abs(filename)
102 if pathErr != nil {
103 absPath = filename
104 }
105 logger.Error("Error opening request log file", "file", absPath, "err", err)
106 return nil, nil, err
107 }
108
109 err = file.Truncate(int64(filesize))
110 if err != nil {
111 file.Close()
112 logger.Error("Error setting filesize.", "filesize", filesize, "err", err)
113 return nil, nil, err
114 }
115
116 fileAsBytes, err := mmap.Map(file, mmap.RDWR, 0)
117 if err != nil {
118 file.Close()
119 logger.Error("Failed to mmap", "file", filename, "Attempted size", filesize, "err", err)
120 return nil, nil, err
121 }
122
123 return fileAsBytes, &mmappedRequestFile{f: file, m: fileAsBytes}, err
124}
125
126func NewRequestTracker(localStoragePath string, fileName string, maxConcurrent int, logger *slog.Logger) *RequestTracker {
127 if localStoragePath == "" {

Callers 1

NewRequestTrackerFunction · 0.85

Calls 2

CloseMethod · 0.65
ErrorMethod · 0.45

Tested by

no test coverage detected