couchdb-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Paul Joseph Davis (JIRA)" <>
Subject [jira] [Commented] (COUCHDB-1270) Rewrite the view engine
Date Fri, 16 Sep 2011 14:02:08 GMT


Paul Joseph Davis commented on COUCHDB-1270:

For 2 and 3, that was mostly because I was developing without access to the couch_db.hrl for
a long time and was just using tests to check. Adding those messages back is probably a good
idea. I'll do that when I get into the office.

For 1 it's quite possible that I undid and optimization there. I was mostly just reading the
old _all_docs and fitting it into the new call backs. I'll read up on 1061 and fix that.

4 was a whoopsie on my part. At first I intentionally got rid of the ref counter not thinking
it's necessary. But after talking with Adam about the compaction swap I realized that it is
necessary for when someone is reading a view during that swap. I'll add this back as well

For log messages, I'll plan on just adding start/stop/closed_because_db_closed. The checkpoint
updates are just log noise to me so unless someone has strong feelings to include them I'll
probably skip that.

> 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