Что произойдет, если в случае одновременного доступа для чтения / записи?

В учебнике zarr написано:

Массивы Zarr не предназначены для ситуаций, когда несколько читателей и писателей одновременно работают с одним и тем же массивом.

Что произойдет, если это произойдет? Это потерпит крах? Неопределенное поведение? Это будет медленно или неэффективно?

РЕДАКТИРОВАТЬ: Поддерживается несколько авторов и нескольких читателей:

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

Пример:

synchronizer = zarr.ProcessSynchronizer('data/example.sync') z = zarr.open_array(..., synchronizer=synchronizer)

1 ответ

Исходя из их собственных документов, по умолчанию поведение не синхронизируется.

Таким образом, это не будет медленным / неэффективным - это произошло бы, если бы у вас была синхронизация, и работникам приходилось ждать, пока другие работники освободят ресурсы, прежде чем продолжить.

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

Не определено? Не совсем, но мы все ближе. Предполагая, что действительно нет никаких проверок или блокировок по умолчанию, вы получите условие гонки, то есть, если ваш Writer сначала получит ваши данные, Reader, пытающийся прочитать их в следующую секунду, просто увидит все, что написал Writer.

Если вместо этого ваш Reader сначала запускает свой маленький грязный ввод-вывод, он будет читать исходные данные, прежде чем перезаписать Writer. И если у вас есть два Writer, то, что произойдет позже, определит, какова окончательная форма данных.

То же самое относится к>2 Читателям / Писателям; Я оставлю выяснение специфики полученного беспорядка в качестве упражнения для вас.

Другие вопросы по тегам