couchdb-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Filipe Manana (JIRA)" <>
Subject [jira] [Commented] (COUCHDB-1270) Rewrite the view engine
Date Fri, 16 Sep 2011 01:28:09 GMT


Filipe Manana commented on COUCHDB-1270:

Paul, I have a few questions/remarks, all are minor things that I didn't notice before and
I don't consider them blockers of any kind.

1) There was an _all_docs with ?include_docs=true optimization which avoided doing a lookups
in the id btree to get the documents. This seems to be gone (COUCHDB-1061). I can help here;

2) There's no information dumped to the log file when the updater starts, stops or checkpoints.
At least when it starts and stops, I find it useful to have it in the log. Dunno if this was
intentional or not;

3) When the view group is shutdown, because the associated database was closed, there's no
information logged anymore. I find the logging useful for this scenario, for example to diagnose

4) For the view index file, we used to have a ref counter for each. I don't see anything equivalent
now. What happens when a client is folding a view and before it finishes folding it, the view
is compacted, the file switch happens and the original file is deleted?

Once again, great work on this refactoring.

> Rewrite the view engine
> -----------------------
>                 Key: COUCHDB-1270
>                 URL:
>             Project: CouchDB
>          Issue Type: Improvement
>          Components: JavaScript View Server
>            Reporter: Paul Joseph Davis
>         Attachments: 0001-Minor-changes-for-new-indexing-engine.patch, 0002-Create-the-couch_index-application.patch,
0003-Create-the-couch_mrview-application.patch, 0004-Remove-the-old-view-engine.patch
> The view engine has been creaky and cluttered. As shown by GeoCouch, adding new indexers
basically involves copying the entire view engine and hacking the parts that are different.
In short, the opposite of good engineering.
> Over the last couple weeks I've refactored the view engine and reimplemented the map/reduce
view engine. These changes are 100% internal and no external behavior has changed. Performance
is just a tiny bit better than trunk. I did do some playing trying to improve view update
times and there are some dances we could do, but for the time being I wanted to keep the same
general architecture for updates so that the changes are minimal.

This message is automatically generated by JIRA.
For more information on JIRA, see:


View raw message