Основываясь на документах , которые я искал в HDFS, блокировка записи не препятствует прочтению других клиентов. См. Следующие утверждения:
Авторы должны получить эксклюзивную блокировку дляфайл, прежде чем им будет разрешено записывать / добавлять / усекать данные в этих файлах. Примечательно, что эта эксклюзивная блокировка НЕ мешает другим клиентам читать файл (таким образом, клиент может писать файл, и в то же время другой может читать тот же файл).
Итак,Мое мнение таково: если что-то записано в файл, который требует некоторого времени, некоторая задержка в согласованности чтения неизбежна.
Если вы хотите убедиться в строгой согласованности чтения (не хотитеклиент читает гистерезисные данные) Я пытаюсь предоставить обходной путь для вашей справки: добавление базы данных Redis перед вашими операциями записи и чтения!
Независимо от того, когда вы выполняете операции чтения или записи, сначала, пожалуйста, судите, существует ли конкретныйвведите в базу данных Redis. Если нет, напишите набор ключей в Redis. Затем выполните обработку бизнес-логики. Наконец, не забудьте удалить ключ.
Хотя это может быть немного громоздко или сказываться на производительности, я думаю, что она может удовлетворить ваши потребности. Кстати, учитывая, что бизнес-логика может давать сбой или давать сбой, так что ключ никогда не будет выпущен, вы можете добавить параметр TTL при создании ключа, чтобы избежать этой ситуации.