У нас есть два сервера 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.