Насчёт compact‘а – там немного сложнее всё устроено, но примерно картинка верная.
Тем не менее, важно понимать, что проблемы с компактом возникают тогда, когда система, работающая на CouchDB, неверно спроектирована и использует CouchDB вместо memcache или rdbms.
Например, нам надо считать хиты юзера по урлам. А) Мы можем быть дураками и обновлять документ профиля юзера на каждый хит – и получить взрыв мусора. Б) Мы можем писать новый док на каждый хит, а потом их коллэйтить и считать map/reduce’ом.
(План Б тоже не очень, потому что нагруженные логи лучше делать SQL-ной базой или редисом там.)
Ещё пример. Мы хотим хранить посты и комменты. Не зная про append-only кажется, что раз комменты обычно не смотрят отдельно от постов, разумно их дописывать прямо в документ поста из соображений целостности и скорости выборки. Это, конечно, иллюзия.
no subject
Тем не менее, важно понимать, что проблемы с компактом возникают тогда, когда система, работающая на CouchDB, неверно спроектирована и использует CouchDB вместо memcache или rdbms.
Например, нам надо считать хиты юзера по урлам.
А) Мы можем быть дураками и обновлять документ профиля юзера на каждый хит – и получить взрыв мусора.
Б) Мы можем писать новый док на каждый хит, а потом их коллэйтить и считать map/reduce’ом.
(План Б тоже не очень, потому что нагруженные логи лучше делать SQL-ной базой или редисом там.)
Ещё пример. Мы хотим хранить посты и комменты. Не зная про append-only кажется, что раз комменты обычно не смотрят отдельно от постов, разумно их дописывать прямо в документ поста из соображений целостности и скорости выборки. Это, конечно, иллюзия.