couchdb-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Robert Newson <>
Subject Re: Post-mortem
Date Fri, 11 May 2012 13:25:13 GMT
We're veering off-topic here, but there are several remaining issues.
First is that the view file is at some update_seq relative to the
database file. Being at update_seq N for a view means it has all the
changes up to and including N, but nothing after N, so while those
updates could be processed in parallel, they'd have to be applied to
the view process and view file in order. Secondly, and more
importantly, is how to handle rows that, for whatever reason, cause an
exception when evaluated in the function (e.g, the common case where
there's an undefined property and no guard clause). If the order is
not determined, then two database, with the same data and same view
code, will have different view results for the same input.

I'm not saying it's insoluble, only that it's not as simple as it
might appear at first (or second) glance.


On 11 May 2012 14:04, Dirkjan Ochtman <> wrote:
> On Fri, May 11, 2012 at 2:44 PM, Robert Newson <> wrote:
>> Fundamentally, the issue is that updating a view is processing an
>> incoming, ordered list of changes, there's not much parallelism to be
>> had there.
> Why is that? I don't see how the list of changes is ordered. ISTM that
> updated documents may be passed to the view indexer in any order,
> which is why M/R works. If that's true and computing keys and values
> is CPU-bound, parallelizing running the view function on the updated
> documents shouldn't be that hard.
> Cheers,
> Dirkjan

View raw message