Всякий раз, когда я читаю что-то о распределенных базах данных NoSQL, они упоминают теорему CAP и то, что это означает, что в разделенной системе вы можете иметь либо полную согласованность, либо полную доступность, либо немного того и другого, но никогда оба сразу.
Что мне не совсем понятно, так это о какой консистенции они говорят:
- Является ли это постоянством свежести данных, когда некоторые клиенты могут получать более старые данные, чем другие?
- Или это непротиворечивость в том смысле, что транзакции могут выполняться только частично, и это может привести к несогласованности данных?
Вторая интерпретация кажется мне довольно опасной и неприемлемой. Первая интерпретация кажется приемлемой, но как предотвратить, чтобы клиент, запрашивающий набор данных, не получал частично устаревшие данные, а частично свежие данные?
Насколько опасно предлагать только частичную согласованность и каковы возможные негативные последствия?