Атомарность обновлений представлений в CouchDB

Документы CouchDB ясно дают понять, что обновления отдельных документов являются ACID. Но мне интересно, относится ли это к обновлениям представлений, которые запускаются в результате обновления документа.

Предположим, у меня есть функция просмотра для отображения количества документов с определенным значением в поле «тип». Что произойдет, если сервер выйдет из строя сразу после того, как я вставлю документ этого типа, но до того, как представление успеет обновиться? Гарантирует ли CouchDB, что представление будет обновлено при следующем запуске сервера? Или мне нужно ждать, пока какое-то другое событие не вызовет пересчет представления?


person nradk    schedule 25.02.2017    source источник


Ответы (1)


Представления, такие как канал _changes, на самом деле просто созданы с использованием той же модели только для добавления, что и сами базы данных. Когда вы обновляете документ, вы на самом деле не ждете обновления представлений. На самом деле представления обновляются только при запросе.

В результате, даже если произойдет сбой базы данных между изменением документа и перестроением представления, это не будет иметь значения, поскольку база данных фактически является журналом/потоком изменений, и представление может быть построено из него в любое время.

person Dominic Barnes    schedule 25.02.2017