Как couchdb получает все предыдущие версии?

Насколько я понимаю, реализация Btree CouchDB фактически использует технику тени, и каждое обновление будет производить новый корень, следующие отрывки из этого PDF (похоже, реализует лучший алгоритм, чем традиционное затенение).

Затенение означает, что для обновления на странице на диске, читается вся страница в память, модифицированный, и позже записывается на диск в альтернативном режиме расположение. Когда страница затенена, ее место на диске меняется, это создает необходимость обновления (и тени) непосредственный предок страницы с новый адрес. Затенение распространяется вплоть до корня файловой системы.

Как couchdb реализует получение всех конечных ревизий, насколько это возможно (поскольку некоторые ревизии удаляются в процессе сжатия)? Сохраняет ли couch внутренне указатель на предыдущие версии?

Спасибо Chang

6
задан Chang 23 June 2011 в 01:22
поделиться