incubator-couchdb-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Robert Buck <buck.rober...@gmail.com>
Subject Re: Newbie question: compaction and mvcc consistency?
Date Wed, 26 May 2010 20:48:14 GMT
On Wed, May 26, 2010 at 4:35 PM, Randall Leeds <randall.leeds@gmail.com> wrote:
> On Wed, May 26, 2010 at 13:29, Robert Buck <buck.robert.j@gmail.com> wrote:
>> On Wed, May 26, 2010 at 3:00 PM, Randall Leeds <randall.leeds@gmail.com> wrote:
>>> The switch to the new, compacted database won't happen so long as
>>> there are references to the old one. (r) will not disappear until (i)
>>> is done with it.
>>
>> Curious, you said "switch to the new [database]". Does this imply that
>> compaction works by creating a new database file adjacent to the old
>> one?
>
> Yes.
>
>>
>> If this is what you are suggesting, I have another question... I also
>> read that compaction process may never catch up with the writes if
>> they never let up. So along this specific train of thought, does Couch
>> perform compaction by walking through the database in a forward-only
>> manner?
>
> If I understand correctly the answer is 'yes'. Meanwhile, new writes
> still hit the old database file as the compactor walks the old tree.
> If there are new changes when the compactor finishes it will walk the
> new changes starting from the root. Typically this process quickly
> gets faster and faster on busy databases until it catches up
> completely and the switch can be made.
>
> That said, you can construct an environment where compaction will
> never finish, but I haven't seen reports of it happening in the wild.

Thank you. I am just trying to translate my understanding from years
of experience with ObjectStore to the simpler document-orientation in
Couch. Your feedback helps.

Mime
View raw message