Return-Path: X-Original-To: apmail-couchdb-dev-archive@www.apache.org Delivered-To: apmail-couchdb-dev-archive@www.apache.org Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by minotaur.apache.org (Postfix) with SMTP id 982EE1018D for ; Wed, 12 Feb 2014 14:26:02 +0000 (UTC) Received: (qmail 74972 invoked by uid 500); 12 Feb 2014 14:26:00 -0000 Delivered-To: apmail-couchdb-dev-archive@couchdb.apache.org Received: (qmail 74749 invoked by uid 500); 12 Feb 2014 14:25:53 -0000 Mailing-List: contact dev-help@couchdb.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: dev@couchdb.apache.org Delivered-To: mailing list dev@couchdb.apache.org Received: (qmail 74741 invoked by uid 99); 12 Feb 2014 14:25:51 -0000 Received: from nike.apache.org (HELO nike.apache.org) (192.87.106.230) by apache.org (qpsmtpd/0.29) with ESMTP; Wed, 12 Feb 2014 14:25:51 +0000 X-ASF-Spam-Status: No, hits=-0.7 required=5.0 tests=RCVD_IN_DNSWL_LOW,SPF_PASS X-Spam-Check-By: apache.org Received-SPF: pass (nike.apache.org: domain of adam.kocoloski@gmail.com designates 209.85.216.49 as permitted sender) Received: from [209.85.216.49] (HELO mail-qa0-f49.google.com) (209.85.216.49) by apache.org (qpsmtpd/0.29) with ESMTP; Wed, 12 Feb 2014 14:25:44 +0000 Received: by mail-qa0-f49.google.com with SMTP id w8so13648847qac.8 for ; Wed, 12 Feb 2014 06:25:24 -0800 (PST) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=content-type:mime-version:subject:from:in-reply-to:date :content-transfer-encoding:message-id:references:to; bh=XQauyimAw+Pe5XdQxcbmLCD78CQQmh53xEmPFoBVQtE=; b=kvfAMew8T2h6FkFFlyUvYZUN2GOZ27EVO/+4KC6KTez55RMRPzPl5wSxtmtwXj5fLR AoA5Ca9/GiCS/VJ4ewG4sO6jrk4TdyP+Xa+SfiN+Vn/m7mh2cgK4ozTTnKdJcsygJ/xR cFpAW6gqR5Kpc9gW0DS9Fh5QuasjA/+EmVs82+QJZZ5GLPA1Kta9sR2vQ6mghgktchVE J8PFUd5KaiEqJ8xhWjNgUWZoH7GKkk0FknYpPb//w2S89Somkxk9JrboQRN3bmh9hwy1 9nn6xxVmntAFJINhM5AcWvZtRKRX2f/1jNaeKRL6jQB03/48uMCQTCa6589GCTc6VPhP 0AMg== X-Received: by 10.140.38.168 with SMTP id t37mr63800770qgt.33.1392215123891; Wed, 12 Feb 2014 06:25:23 -0800 (PST) Received: from [192.168.1.105] ([24.34.145.96]) by mx.google.com with ESMTPSA id a5sm63207130qae.2.2014.02.12.06.25.19 for (version=TLSv1 cipher=ECDHE-RSA-RC4-SHA bits=128/128); Wed, 12 Feb 2014 06:25:19 -0800 (PST) Content-Type: text/plain; charset=iso-8859-1 Mime-Version: 1.0 (Mac OS X Mail 7.1 \(1827\)) Subject: Re: rcouch merge status From: Adam Kocoloski In-Reply-To: Date: Wed, 12 Feb 2014 09:25:19 -0500 Content-Transfer-Encoding: quoted-printable Message-Id: References: To: dev@couchdb.apache.org X-Mailer: Apple Mail (2.1827) X-Virus-Checked: Checked by ClamAV on apache.org On Feb 12, 2014, at 8:11 AM, Benoit Chesneau = wrote: > Hi all, >=20 > Sorry for this late status. I have been busy with a cold and needed = work > on the code. >=20 > Anyway here is a quick status of what have been done since the last > status: >=20 > 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. >=20 > The view change feature include: >=20 > - 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 (~=3D 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. >=20 > 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. >=20 > 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. >=20 >=20 > What is missing from rcouch: >=20 > - validate doc on read [2] > - Write only databases [3] > - Filter fields in included doc when returned from a _changes [4] > - optimisations [5] >=20 > 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? >=20 > For the others features I will make them available in one commit until > tomorrow. >=20 > ToDo : >=20 > - 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. >=20 >=20 > Voila, >=20 > 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. >=20 >=20 > - benoit >=20 >=20 > [1] https://github.com/basho/lager > [2] https://github.com/refuge/rcouch/wiki/Validate-documents-on-read > [3] https://github.com/refuge/rcouch/wiki/Write-only-databases > [4] = https://github.com/refuge/rcouch/wiki/Couch-changes#wiki-filter-fields-in-= included-doc-when-returned-from-a-_changes > [5] = https://github.com/refuge/rcouch/wiki/Source-Code-Changes#wiki-changes-in-= core 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, Adam=