couchdb-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Adam Kocoloski <>
Subject Re: rcouch merge status
Date Wed, 12 Feb 2014 14:25:19 GMT
On Feb 12, 2014, at 8:11 AM, Benoit Chesneau <> wrote:

> Hi all,
> Sorry for this late status. I have been busy with a cold and needed work
> on the code.
> Anyway here is a quick status of what  have been done since the last
> status:
> 1) The view changes has been merged. It includes some code from what
> have beem given last year to the Apache foundation + unitests and a
> small refactoring that was already in action in other places I manage.
> The view change feature include:
> - index all changes in an index by sequences and by key: it's possible
>  to get all the changes of an index from a sequence or all changes for
> a key or in a range since a a sequence. Removed key are also returned
> which is new compared to the current code in the rcouch core core. (this
> new feature can also be useful later for someone that would like to
> build a feature chaining map/reduces steps eventually).
> - api to listen on index changes. You can retrieve all changes at once,
>  listen until a change happen (~= longpoll), listen continuously on all
> changes. Unlike the current changes internal api, this api is designed
> so it can be reused by any Erlang plugin the erlang way.
> - api to retrieve changes of a db using a view. If the indexation of
>  changes is enabled in a design doc, it will be used in place of the
> current view filter. If the indexation is not enabled the old and non
> efficient view filter is used.
> - Add a facility to index the views in a continuous manner. While this
>  api is designed internally to be reused, it's only enabled for now ehn
> listening on _changes. or by enable it in the change listener described
> above. When enabled the view index is refreshed evey N secs (can be set
> in the config file) or after N updates in the database (can be set in
> the config file).
> - The replication has also been been modified so you can replicate using
>  a view index as a filte. (And yes you can filter the changes using a
> key which is can give you a feature similar to the channels in the
> couchbase sync gateway)
> - the views changes has now unitests.
> 2) couch_log has been improved and is now using lager [1]. With this change
> instead to use our own way to log file we are using lager which improve
> the logging and  will make couchdb more tolerant in the face of large or
> many log messages, it won't out of memory the node.
> Note: Lager can handle multiple backend but we are for now only handling
> the file and console backend in the ini file. Other backends can be
> configured using the app.config file. Also the code is slightly
> different from the current one in rcouch and imported from a private
> branch in use somewhere: it allows to update the log configuration not
> only in the app.config but also in the ini and handle the log level /
> module.
> What is missing from rcouch:
> - validate doc on read [2]
> -  Write only databases [3]
> - Filter fields in included doc when returned from a _changes [4]
> - optimisations [5]
> Optimisations may be wait the final merge imo. Since they are quite
> similar to the one in bigcouch (with small changes) maybe it would be
> easier to just wait. @davisp @rnewson thoughts?
> For the others features I will make them available in one commit until
> tomorrow.
> ToDo :
> - add new features
> - make rcouch use the splitted repositories created by @davisp (thanks a
>  lot!) . It's actually blocked because of a missing change in
> couch_mrview (unitests are missing). I will have a look on it later in
> the day. Hopefully @davisp will be able to help me on that. For now my
> attemps to resurrect them while preserving the history were a failure.
> Voila,
> Hopefully this merge will be finished by the end of the week. I profit
> on this mail to announce that I will take a vacation of 15 days at the
> end of the week, so I will be not available except for urgent things.
> - benoit
> [1]
> [2]
> [3]
> [4]
> [5]

Cool stuff Benoit.  Are you saying you plan to redo these two bits of work in the individual
repos by the end of the week?  Regards,

View raw message