Удивительное поведение с реплицированными, удаленными документами CouchDb - PullRequest
0 голосов
/ 10 февраля 2020

У нас есть два сервера CouchDb, назовем их A и B. Существует односторонняя репликация от A до B, а документы создаются, изменяются или удаляются только на A - в основном вы можете думать о B как о резервной копии. На A был удален документ. Когда я пытался получить ревизию до удаления из A, я получил {"error":"not_found","reason":"missing"}, но эта БД не была сжата (по крайней мере, насколько я понимаю, ее сжатие происходит, только если вы запускаете ее вручную, а это не было сделано). Однако, хотя B знал, что документ был удален, старая редакция была доступна для B.

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

Мы на CouchDb 2.3.0.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...