Как я могу реализовать блокировку диапазона значений в отсортированной последовательности? - PullRequest
0 голосов
/ 22 декабря 2018

Я пытаюсь написать алгоритм блокировки общего назначения, который позволяет мне блокировать диапазон непрерывных значений в отсортированном массиве.Начнем с того, что это могут быть эксклюзивные блокировки, поэтому две одновременные блокировки не должны перекрываться.Что может быть хорошим, масштабируемым алгоритмом для этого?(Масштабируемый ~ одновременный)

Конкретным примером может быть блокировка диапазона непрерывных байтов в файле для записи.

Конкретно: допустим, {a_i} - допустимая последовательность, для i= От 0 до N-1, так что:

  1. a_j < a_k для всех j, k, таких что 0 <= j < k < N.
  2. lock(a_j, a_k) блокирует все элементы от a_j доa_k.
  3. Пока удерживается вышеуказанная блокировка, другой запрос lock(a_x, a_y) будет успешным , только если либо a_x > a_k, либо a_y < a_j.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...