LINUX.ORG.RU

История изменений

Исправление DRVTiny, (текущая версия) :

Месье не соизволит объяснить, каким же таким чудесным образом CAS позволяет избежать повторной записи - прямо во всех-всех случаях?

Насколько я вижу ситуацию, CAS позволяет экслюзивно одному клиент писать данные и отшибать других. Это не защищает никак от записи тех же самых данных. Я имею в виду: не защищает от записи данных, которые бит-в-бит совпадают с тем, что уже есть в кеше. Для реализации логики «не-пиши-то-что-есть» - нужен как минимум 2-х стадийный обмен: сначала передача контрольной суммы, а затем, если контрольная сумма отличается - можно передать данные.

И да, штатного CAS в Redis нет. Есть сторонние модули для реализации этого функционала сбоку.

При этом сам по себе CAS - весьма стрёмная штука, о чём я говорил выше (хотя в реализации https://github.com/kenn/redis-mutex учтён риск блокировки «навсегда»).

И да, не нужно мне указывать на то, как решать то, что мне решать не нужно. Меня интересует совершенно конкретная вещь: возможность ограничения записи более старых или совпадающих данных логикой самого движка кеширования. От этого CAS не спасает никак: я могу эксклюзивно записать устаревшие данные и могу эксклюзивно же записать то, что там уже было.

Нет ответа на вопрос - иди мимо.

Исправление DRVTiny, :

Месье не соизволит объяснить, каким же таким чудесным образом CAS позволяет избежать повторной записи - прямо во всех-всех случаях?

Насколько я вижу ситуацию, CAS позволяет экслюзивно одному клиент писать данные и отшибать других. Это не защищает никак от записи тех же самых данных. Я имею в виду: не защищает от записи данных, которые бит-в-бит совпадают с тем, что уже есть в кеше. Для реализации логики «не-пиши-то-что-есть» - нужен как минимум 2-х стадийный обмен: сначала передача контрольной суммы, а затем, если контрольная сумма отличается - можно передать данные.

И да, штатного CAS в Redis нет. Есть сторонние модули для реализации этого функционала сбоку.

При этом сам по себе CAS - весьма стрёмная штука, о чём я говорил выше.

И да, не нужно мне указывать на то, как решать то, что мне решать не нужно. Меня интересует совершенно конкретная вещь: возможность ограничения записи более старых или совпадающих данных логикой самого движка кеширования. От этого CAS не спасает никак: я могу эксклюзивно записать устаревшие данные и могу эксклюзивно же записать то, что там уже было.

Нет ответа на вопрос - иди мимо.

Исправление DRVTiny, :

Месье не соизволит объяснить, каким же таким чудесным образом CAS позволяет избежать повторной записи - прямо во всех-всех случаях?

Насколько я вижу ситуацию, CAS позволяет экслюзивно одному клиент писать данные и отшибать других. Это не защищает никак от записи тех же самых данных. Я имею в виду: не защищает от записи данных, которые бит-в-бит совпадают с тем, что уже есть в кеше. Для реализации логики «не-пиши-то-что-есть» - нужен как минимум 2-х стадийный обмен: сначала передача контрольной суммы, а затем, если контрольная сумма отличается - можно передать данные.

И да, штатного CAS в Redis нет. Есть сторонние модули для реализации этого функционала сбоку.

При этом сам по себе CAS - весьма стрёмная штука, о чём я говорил выше.

И да, не нужно мне указывать на то, как решать то, что мне решать не нужно. Меня интересует совершенно конкретная вещь: возможность ограничения записи более старых или совпадающих данные логикой самого движка кеширования. От этого CAS не спасает никак: я могу эксклюзивно записать устаревшие данные и могу эксклюзивно же записать то, что там уже было.

Нет ответа на вопрос - иди мимо.

Исходная версия DRVTiny, :

Месье не соизволит объяснить, каким же таким чудесным образом CAS позволяет избежать повторной записи - прямо во всех-всех случаях?

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

И да, штатного CAS в Redis нет. Есть сторонние модули для реализации этого функционала сбоку.

При этом сам по себе CAS - весьма стрёмная штука, о чём я говорил выше.