Распределенный читатель-писательский замок в python - PullRequest
1 голос
/ 24 марта 2020

Я ищу блокировку чтения-записи , которую можно использовать в python в распределенной системе.

Пока я нашел:

  1. redlock , основанный на redis. Не предоставляет блокировку чтения-записи.
  2. Распределенный пакет dask предлагает блокировку , но опять же, не блокировку чтения-записи.
  3. kazoo, которая работает с Zookeeper, предлагает читателю-писателю блокировку . Однако Zookeeper является чрезвычайно тяжелой зависимостью, как написано в Java, и поэтому требует JDK.

Существует ли более легкая альтернатива kazoo / Zookeeper? Идеально чистое python решение, которое, тем не менее, проверено в бою?

1 Ответ

2 голосов
/ 05 апреля 2020

Redis является однопоточным, а операции чтения / записи - атомами c; это означает, что множественные одновременные операции чтения / записи не будут успешными, и читатели и писатели будут получать доступ к ресурсу последовательно в режиме atomi c. Я считаю, что это решило бы вашу проблему, если бы ресурс оставался одной из структур данных redis. Вам не нужен отдельный механизм блокировки чтения-записи при использовании redis и python в качестве комбинации, где ресурс хранится в redis.

Надеюсь, это поможет

...