одновременная запись без блокировки в файл O_APPEND - PullRequest
0 голосов
/ 17 октября 2019

Я собираюсь реализовать базу данных только для добавления, способную к одновременной записи. Как утверждает POSIX, и, согласно моим исследованиям, write(2) для файла, открытого с флагом O_APPEND, гарантирует запись данных в конец файла без чередования с параллельными потоками записи. Но после записи фрагмента данных мне нужно сказать, с какого смещения были записаны данные. Просто получить текущий размер файла с помощью stat или текущий указатель записи с помощью lseek(2) кажется неправильным, так как это может повлиять на число одновременно работающих авторов. Есть мысли, как это сделать без блокировки?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...