У меня есть ситуации, когда мне нужно одновременно для чтения/записи из/в файл, но объем операций ограничен:Golang одновременное чтение/запись в файл без явного файла блокировки
- Append только, никакое случайное смещение не записывает
- читает из случайной позиции, где я точно знаю, что контент был написан ранее (через добавление, сериализация внутреннего доступа через канал golang для обеспечения случайного чтения происходит только после добавления содержимого)
- только один процесс работает
Это высокое нагруженный приложение, и я хотел бы, чтобы избежать блокировки файлов для каждого чтения/записи я
Я собирался открыть 2 файла - один для чтения, другой для Append только
может ли это создать некоторые потенциальные проблемы/ошибки?
Какова рекомендуемая практика, если я хотел бы избежать блокировки файлов для каждого чтения/записи?
p.s. golang, linux, ext4
Вы уверены, что нет никаких шансов на повреждение данных? чтение может происходить параллельно с добавлениями, единственная гарантия, которую я имею, - это то, что чтение всегда выполняется для ранее добавленных данных (в другой версии goroutine) - это обеспечивается с помощью «правильного» смещения для чтения. Есть ли официальная документация, которую вы можете связать? – let4be