Запись и чтение из одного и того же файла одновременно (диск асинхронный?) - PullRequest
0 голосов
/ 30 августа 2010

Мы создаем веб-сервис, где мы записываем файлы на диск.Иногда эти файлы читаются одновременно с записью.

Если мы делаем это - записываем и читаем из одного и того же файла - мы иногда получаем файлы одинаковой длины, но в некоторых случаяхданных внутри не то же самое.Таким образом, с файлом 350 Мб мы получаем, возможно, 20-40 байтов, которые отличаются.

Эта проблема в основном возникает, если у нас есть 3-4 файла, которые записываются и читаются одновременно.Возможно, эта проблема связана с тем, что нет гарантии, что после «записи» на диск данные действительно записываются, т. Е. Диск асинхронный.

Кроме того, компьютер, на котором мы тестируем,просто стандартный MacBook Pro, так что никаких необычных дисков нет.

Ошибка может быть где-то еще, но мы просто хотели задать вопрос и посмотреть, знает ли кто-нибудь что-нибудь об этой записи + чтении.

1 Ответ

0 голосов
/ 30 августа 2010

Все современные ОС поддерживают одновременное чтение и запись в файлы (очевидно, для одного записывающего). Так что это не ошибка уровня ОС. Но do убедитесь, что у вас нет нескольких потоков / процессов, пытающихся добавить данные в файл.

Проверьте код вашего приложения. Проверьте буферы, которые вы используете. Убедитесь, что ваше приложение синхронизировано и между читателями и писателями нет условий гонки.

...