couchdb-ci git commit: Update Git URL for gitbox

2017-03-15 Thread wohali
Repository: couchdb-ci
Updated Branches:
  refs/heads/master d5b3da074 -> c0de0bac7


Update Git URL for gitbox


Project: http://git-wip-us.apache.org/repos/asf/couchdb-ci/repo
Commit: http://git-wip-us.apache.org/repos/asf/couchdb-ci/commit/c0de0bac
Tree: http://git-wip-us.apache.org/repos/asf/couchdb-ci/tree/c0de0bac
Diff: http://git-wip-us.apache.org/repos/asf/couchdb-ci/diff/c0de0bac

Branch: refs/heads/master
Commit: c0de0bac71d13c2fb4e74c9e3c1dd82085fb1774
Parents: d5b3da0
Author: Joan Touzet 
Authored: Thu Mar 16 01:51:53 2017 -0400
Committer: Joan Touzet 
Committed: Thu Mar 16 01:51:53 2017 -0400

--
 .gitignore| 2 ++
 ansible/roles/common/tasks/couchdb.yml| 2 +-
 utils/analyze-jenkins-logs/ci-errors.markdown | 2 +-
 utils/analyze-jenkins-logs/index.js   | 2 +-
 utils/analyze-jenkins-logs/package.json   | 2 +-
 utils/auto-download-jenkins-logs/package.json | 2 +-
 6 files changed, 7 insertions(+), 5 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/couchdb-ci/blob/c0de0bac/.gitignore
--
diff --git a/.gitignore b/.gitignore
index 8000dd9..797be3b 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1 +1,3 @@
 .vagrant
+*~
+*.swp

http://git-wip-us.apache.org/repos/asf/couchdb-ci/blob/c0de0bac/ansible/roles/common/tasks/couchdb.yml
--
diff --git a/ansible/roles/common/tasks/couchdb.yml 
b/ansible/roles/common/tasks/couchdb.yml
index c87ab5b..a16f630 100644
--- a/ansible/roles/common/tasks/couchdb.yml
+++ b/ansible/roles/common/tasks/couchdb.yml
@@ -35,7 +35,7 @@
 
 - name: get CouchDB sources from git
   git:
-repo: git://git.apache.org/couchdb.git
+repo: https://gitbox.apache.org/repos/asf/couchdb.git
 dest: /usr/src/couchdb-checkout
 accept_hostkey: yes
 force: yes

http://git-wip-us.apache.org/repos/asf/couchdb-ci/blob/c0de0bac/utils/analyze-jenkins-logs/ci-errors.markdown
--
diff --git a/utils/analyze-jenkins-logs/ci-errors.markdown 
b/utils/analyze-jenkins-logs/ci-errors.markdown
index 36ca487..dc414e4 100644
--- a/utils/analyze-jenkins-logs/ci-errors.markdown
+++ b/utils/analyze-jenkins-logs/ci-errors.markdown
@@ -92,7 +92,7 @@ Links to the build logs:
 ## Regular Expressions
 When one of these regular expression has a match in the build log, I assume 
this build failure falls into this category.
 
-* `/fatal: unable to access 'https:\/\/git-wip-us.apache.org/`
+* `/fatal: unable to access 'https:\/\/gitbox.apache.org/`
 * `/fatal: read error: Connection reset by peer/`
 
 ## Builds

http://git-wip-us.apache.org/repos/asf/couchdb-ci/blob/c0de0bac/utils/analyze-jenkins-logs/index.js
--
diff --git a/utils/analyze-jenkins-logs/index.js 
b/utils/analyze-jenkins-logs/index.js
index 76ed588..1b49d7c 100644
--- a/utils/analyze-jenkins-logs/index.js
+++ b/utils/analyze-jenkins-logs/index.js
@@ -36,7 +36,7 @@ const reasons = {};
 const regexes = {
   aborted: [ /Build was aborted/ ],
   network: [
-/fatal: unable to access 'https:\/\/git-wip-us.apache.org/,
+/fatal: unable to access 'https:\/\/gitbox.apache.org/,
   /fatal: read error: Connection reset by peer/,
   ],
   docker: [

http://git-wip-us.apache.org/repos/asf/couchdb-ci/blob/c0de0bac/utils/analyze-jenkins-logs/package.json
--
diff --git a/utils/analyze-jenkins-logs/package.json 
b/utils/analyze-jenkins-logs/package.json
index 429ace7..c706ba6 100644
--- a/utils/analyze-jenkins-logs/package.json
+++ b/utils/analyze-jenkins-logs/package.json
@@ -8,7 +8,7 @@
   },
   "repository": {
 "type": "git",
-"url": "https://git-wip-us.apache.org/repos/asf/couchdb.git;
+"url": "https://gitbox.apache.org/repos/asf/couchdb.git;
   },
   "author": "The Apache CouchDB contributors",
   "license": "Apache-2.0",

http://git-wip-us.apache.org/repos/asf/couchdb-ci/blob/c0de0bac/utils/auto-download-jenkins-logs/package.json
--
diff --git a/utils/auto-download-jenkins-logs/package.json 
b/utils/auto-download-jenkins-logs/package.json
index 5cbe0d3..5d782e8 100644
--- a/utils/auto-download-jenkins-logs/package.json
+++ b/utils/auto-download-jenkins-logs/package.json
@@ -8,7 +8,7 @@
   },
   "repository": {
 "type": "git",
-"url": "https://git-wip-us.apache.org/repos/asf/couchdb.git;
+"url": "https://gitbox.apache.org/repos/asf/couchdb.git;
   },
   "author": "The Apache CouchDB contributors",
   "license": "Apache-2.0",



[jira] [Commented] (COUCHDB-2992) Add additional support for document size

2017-03-15 Thread ASF GitHub Bot (JIRA)

[ 
https://issues.apache.org/jira/browse/COUCHDB-2992?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=15927455#comment-15927455
 ] 

ASF GitHub Bot commented on COUCHDB-2992:
-

GitHub user nickva opened a pull request:

https://github.com/apache/couchdb-documentation/pull/113

Bring back the correct implementation of max_document_size

COUCHDB-2992

You can merge this pull request into a Git repository by running:

$ git pull https://github.com/cloudant/couchdb-documentation couchdb-2992

Alternatively you can review and apply these changes as the patch at:

https://github.com/apache/couchdb-documentation/pull/113.patch

To close this pull request, make a commit to your master/trunk branch
with (at least) the following in the commit message:

This closes #113


commit 55cad9af960e4d299bbf387a9e57cd8c7e6273c8
Author: Nick Vatamaniuc 
Date:   2017-03-16T04:07:02Z

Bring back the correct implementation of max_document_size

COUCHDB-2992




> Add additional support for document size
> 
>
> Key: COUCHDB-2992
> URL: https://issues.apache.org/jira/browse/COUCHDB-2992
> Project: CouchDB
>  Issue Type: Improvement
>  Components: Database Core
>Reporter: Tony Sun
>
> Currently, only max_document_size of 64 GB is the restriction for users 
> creating documents. Large documents often leads to issues with our indexers. 
> This feature will allow users more finer grain control over document size.



--
This message was sent by Atlassian JIRA
(v6.3.15#6346)


[jira] [Commented] (COUCHDB-2992) Add additional support for document size

2017-03-15 Thread ASF subversion and git services (JIRA)

[ 
https://issues.apache.org/jira/browse/COUCHDB-2992?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=15927400#comment-15927400
 ] 

ASF subversion and git services commented on COUCHDB-2992:
--

Commit d9ab78e109a9c4b98e33eceef2f6bb1886d749d7 in couchdb's branch 
refs/heads/master from [~vatamane]
[ https://git-wip-us.apache.org/repos/asf?p=couchdb.git;h=d9ab78e ]

Bump couch, fabric, chttpd, couch_mrview to implement max_document_size limit

COUCHDB-2992


> Add additional support for document size
> 
>
> Key: COUCHDB-2992
> URL: https://issues.apache.org/jira/browse/COUCHDB-2992
> Project: CouchDB
>  Issue Type: Improvement
>  Components: Database Core
>Reporter: Tony Sun
>
> Currently, only max_document_size of 64 GB is the restriction for users 
> creating documents. Large documents often leads to issues with our indexers. 
> This feature will allow users more finer grain control over document size.



--
This message was sent by Atlassian JIRA
(v6.3.15#6346)


[jira] [Commented] (COUCHDB-2992) Add additional support for document size

2017-03-15 Thread ASF subversion and git services (JIRA)

[ 
https://issues.apache.org/jira/browse/COUCHDB-2992?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=15927382#comment-15927382
 ] 

ASF subversion and git services commented on COUCHDB-2992:
--

Commit 398c30e8785c3cd880d7d9788d25810dfe626c18 in couchdb-couch-mrview's 
branch refs/heads/master from [~vatamane]
[ https://git-wip-us.apache.org/repos/asf?p=couchdb-couch-mrview.git;h=398c30e ]

Allow limiting maximum document body size

This is a companion commit to this one:

https://github.com/apache/couchdb-couch/pull/235

COUCHDB-2992


> Add additional support for document size
> 
>
> Key: COUCHDB-2992
> URL: https://issues.apache.org/jira/browse/COUCHDB-2992
> Project: CouchDB
>  Issue Type: Improvement
>  Components: Database Core
>Reporter: Tony Sun
>
> Currently, only max_document_size of 64 GB is the restriction for users 
> creating documents. Large documents often leads to issues with our indexers. 
> This feature will allow users more finer grain control over document size.



--
This message was sent by Atlassian JIRA
(v6.3.15#6346)


[jira] [Commented] (COUCHDB-2992) Add additional support for document size

2017-03-15 Thread ASF GitHub Bot (JIRA)

[ 
https://issues.apache.org/jira/browse/COUCHDB-2992?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=15927383#comment-15927383
 ] 

ASF GitHub Bot commented on COUCHDB-2992:
-

Github user asfgit closed the pull request at:

https://github.com/apache/couchdb-couch-mrview/pull/69


> Add additional support for document size
> 
>
> Key: COUCHDB-2992
> URL: https://issues.apache.org/jira/browse/COUCHDB-2992
> Project: CouchDB
>  Issue Type: Improvement
>  Components: Database Core
>Reporter: Tony Sun
>
> Currently, only max_document_size of 64 GB is the restriction for users 
> creating documents. Large documents often leads to issues with our indexers. 
> This feature will allow users more finer grain control over document size.



--
This message was sent by Atlassian JIRA
(v6.3.15#6346)


[jira] [Commented] (COUCHDB-2992) Add additional support for document size

2017-03-15 Thread ASF subversion and git services (JIRA)

[ 
https://issues.apache.org/jira/browse/COUCHDB-2992?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=15927365#comment-15927365
 ] 

ASF subversion and git services commented on COUCHDB-2992:
--

Commit 3b15107df83a16a26dbc6c06a1a080437cb558b8 in couchdb-fabric's branch 
refs/heads/master from [~vatamane]
[ https://git-wip-us.apache.org/repos/asf?p=couchdb-fabric.git;h=3b15107 ]

Allow limiting maximum document body size

Update doc function to check and validate document body sizes

Main implementation is in PR:

 https://github.com/apache/couchdb-couch/pull/235

COUCHDB-2992


> Add additional support for document size
> 
>
> Key: COUCHDB-2992
> URL: https://issues.apache.org/jira/browse/COUCHDB-2992
> Project: CouchDB
>  Issue Type: Improvement
>  Components: Database Core
>Reporter: Tony Sun
>
> Currently, only max_document_size of 64 GB is the restriction for users 
> creating documents. Large documents often leads to issues with our indexers. 
> This feature will allow users more finer grain control over document size.



--
This message was sent by Atlassian JIRA
(v6.3.15#6346)


[jira] [Commented] (COUCHDB-2992) Add additional support for document size

2017-03-15 Thread ASF GitHub Bot (JIRA)

[ 
https://issues.apache.org/jira/browse/COUCHDB-2992?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=15927366#comment-15927366
 ] 

ASF GitHub Bot commented on COUCHDB-2992:
-

Github user asfgit closed the pull request at:

https://github.com/apache/couchdb-fabric/pull/91


> Add additional support for document size
> 
>
> Key: COUCHDB-2992
> URL: https://issues.apache.org/jira/browse/COUCHDB-2992
> Project: CouchDB
>  Issue Type: Improvement
>  Components: Database Core
>Reporter: Tony Sun
>
> Currently, only max_document_size of 64 GB is the restriction for users 
> creating documents. Large documents often leads to issues with our indexers. 
> This feature will allow users more finer grain control over document size.



--
This message was sent by Atlassian JIRA
(v6.3.15#6346)


[GitHub] couchdb-fabric pull request #91: Allow limiting maximum document body size

2017-03-15 Thread asfgit
Github user asfgit closed the pull request at:

https://github.com/apache/couchdb-fabric/pull/91


---
If your project is set up for it, you can reply to this email and have your
reply appear on GitHub as well. If your project does not have this feature
enabled and wishes so, or if the feature is enabled but not working, please
contact infrastructure at infrastruct...@apache.org or file a JIRA ticket
with INFRA.
---


[jira] [Commented] (COUCHDB-2992) Add additional support for document size

2017-03-15 Thread ASF subversion and git services (JIRA)

[ 
https://issues.apache.org/jira/browse/COUCHDB-2992?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=15927360#comment-15927360
 ] 

ASF subversion and git services commented on COUCHDB-2992:
--

Commit d1848e6f2288ea9b3758c22f10f75706a87be3b5 in couchdb-chttpd's branch 
refs/heads/master from [~vatamane]
[ https://git-wip-us.apache.org/repos/asf?p=couchdb-chttpd.git;h=d1848e6 ]

Allow limiting maximum document body size

This is the HTTP layer and some tests. The actual checking is done in couch
application's from_json_obj/1 function.

If a document is too large it will return a 413 response code. The error reason
will be the document ID. The intent is to help users identify the document if
they used _bulk_docs endpoint. It will also help replicator skip over documents
which are too large.

COUCHDB-2992


> Add additional support for document size
> 
>
> Key: COUCHDB-2992
> URL: https://issues.apache.org/jira/browse/COUCHDB-2992
> Project: CouchDB
>  Issue Type: Improvement
>  Components: Database Core
>Reporter: Tony Sun
>
> Currently, only max_document_size of 64 GB is the restriction for users 
> creating documents. Large documents often leads to issues with our indexers. 
> This feature will allow users more finer grain control over document size.



--
This message was sent by Atlassian JIRA
(v6.3.15#6346)


[GitHub] couchdb-chttpd pull request #157: Allow limiting maximum document body size

2017-03-15 Thread asfgit
Github user asfgit closed the pull request at:

https://github.com/apache/couchdb-chttpd/pull/157


---
If your project is set up for it, you can reply to this email and have your
reply appear on GitHub as well. If your project does not have this feature
enabled and wishes so, or if the feature is enabled but not working, please
contact infrastructure at infrastruct...@apache.org or file a JIRA ticket
with INFRA.
---


[jira] [Commented] (COUCHDB-2992) Add additional support for document size

2017-03-15 Thread ASF GitHub Bot (JIRA)

[ 
https://issues.apache.org/jira/browse/COUCHDB-2992?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=15927363#comment-15927363
 ] 

ASF GitHub Bot commented on COUCHDB-2992:
-

Github user asfgit closed the pull request at:

https://github.com/apache/couchdb-chttpd/pull/157


> Add additional support for document size
> 
>
> Key: COUCHDB-2992
> URL: https://issues.apache.org/jira/browse/COUCHDB-2992
> Project: CouchDB
>  Issue Type: Improvement
>  Components: Database Core
>Reporter: Tony Sun
>
> Currently, only max_document_size of 64 GB is the restriction for users 
> creating documents. Large documents often leads to issues with our indexers. 
> This feature will allow users more finer grain control over document size.



--
This message was sent by Atlassian JIRA
(v6.3.15#6346)


[jira] [Commented] (COUCHDB-2992) Add additional support for document size

2017-03-15 Thread ASF subversion and git services (JIRA)

[ 
https://issues.apache.org/jira/browse/COUCHDB-2992?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=15927356#comment-15927356
 ] 

ASF subversion and git services commented on COUCHDB-2992:
--

Commit 7e48bda4459cc8e4dbb8bd86966792f533571d83 in couchdb-couch's branch 
refs/heads/master from [~vatamane]
[ https://git-wip-us.apache.org/repos/asf?p=couchdb-couch.git;h=7e48bda ]

Allow limiting maximum document body size

Configuration is via the `couchdb.max_document_size`. In the past that
was implemented as a maximum http request body size and this finally implements
it by actually checking a document's body size.

COUCHDB-2992


> Add additional support for document size
> 
>
> Key: COUCHDB-2992
> URL: https://issues.apache.org/jira/browse/COUCHDB-2992
> Project: CouchDB
>  Issue Type: Improvement
>  Components: Database Core
>Reporter: Tony Sun
>
> Currently, only max_document_size of 64 GB is the restriction for users 
> creating documents. Large documents often leads to issues with our indexers. 
> This feature will allow users more finer grain control over document size.



--
This message was sent by Atlassian JIRA
(v6.3.15#6346)


[GitHub] couchdb-couch pull request #235: Allow limiting maximum document body size

2017-03-15 Thread asfgit
Github user asfgit closed the pull request at:

https://github.com/apache/couchdb-couch/pull/235


---
If your project is set up for it, you can reply to this email and have your
reply appear on GitHub as well. If your project does not have this feature
enabled and wishes so, or if the feature is enabled but not working, please
contact infrastructure at infrastruct...@apache.org or file a JIRA ticket
with INFRA.
---


[jira] [Commented] (COUCHDB-2992) Add additional support for document size

2017-03-15 Thread ASF GitHub Bot (JIRA)

[ 
https://issues.apache.org/jira/browse/COUCHDB-2992?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=15927357#comment-15927357
 ] 

ASF GitHub Bot commented on COUCHDB-2992:
-

Github user asfgit closed the pull request at:

https://github.com/apache/couchdb-couch/pull/235


> Add additional support for document size
> 
>
> Key: COUCHDB-2992
> URL: https://issues.apache.org/jira/browse/COUCHDB-2992
> Project: CouchDB
>  Issue Type: Improvement
>  Components: Database Core
>Reporter: Tony Sun
>
> Currently, only max_document_size of 64 GB is the restriction for users 
> creating documents. Large documents often leads to issues with our indexers. 
> This feature will allow users more finer grain control over document size.



--
This message was sent by Atlassian JIRA
(v6.3.15#6346)


[GitHub] couchdb-couch issue #239: An ETS based couch_lru

2017-03-15 Thread eiri
Github user eiri commented on the issue:

https://github.com/apache/couchdb-couch/pull/239
  
Travis failed with infamous `gnutls_handshake() failed`, but fwiw local 
tests all passed:
```

module 'chttpd_endpoints_tests'
===
  All 1066 tests passed.
```

I'm +1 for this change, with us adding `sys_db` into lru improved 
performance there is a good thing Just wait for other reviewers to agree 
before merging. 


---
If your project is set up for it, you can reply to this email and have your
reply appear on GitHub as well. If your project does not have this feature
enabled and wishes so, or if the feature is enabled but not working, please
contact infrastructure at infrastruct...@apache.org or file a JIRA ticket
with INFRA.
---


[GitHub] tuaris opened a new issue #455: jsapi.h: No such file or directory

2017-03-15 Thread git
tuaris opened a new issue #455:  jsapi.h: No such file or directory
URL: https://github.com/apache/couchdb/issues/455
 
 
   The needed include files are under `/home/user/include/js`.  How do I ensure 
that path is being used during build?
   
   ```
   compiling /home/user/work/apache-couchdb-2.0.0/src/couch/priv/couch_js/http.c
   /home/user/work/apache-couchdb-2.0.0/src/couch/priv/couch_js/http.c:18:19: 
fatal error: jsapi.h: No such file or directory
#include 
  ^
   compilation terminated.
   ERROR: compile failed while processing 
/home/user/work/apache-couchdb-2.0.0/src/couch: rebar_abort
   ```
 

This is an automated message from the Apache Git Service.
To respond to the message, please log on GitHub and use the
URL above to go to the specific comment.
 
For queries about this service, please contact Infrastructure at:
us...@infra.apache.org


With regards,
Apache Git Services


[GitHub] couchdb-couch-mrview pull request #70: Fix undef error on empty list functio...

2017-03-15 Thread iilyak
Github user iilyak commented on a diff in the pull request:

https://github.com/apache/couchdb-couch-mrview/pull/70#discussion_r106313882
  
--- Diff: src/couch_mrview_show.erl ---
@@ -426,4 +424,31 @@ should_apply_headers_with_merge_overwrite() ->
 ?assertEqual({NewHeaders}, JsonHeaders)
 end).
 
+
+send_list_row_test_() -> {
+"Ensure send_list_row returns a valid response on end or error",
+{setup, fun setup/0, fun(_) -> meck:unload() end, [
+should_return_valid_response(fun(_, _) -> [<<"end">>, [], []] end, 
req),
--- End diff --

The test doesn't print arguments. The following works:
```
send_list_row_test_() ->
Cases = couch_tests_combinatorics:product([
[
{"[<<\"end\">>, [], []]", fun(_, _) -> [<<"end">>, [], []] end},
{"[<<\"end\">>, []]", fun(_, _) -> [<<"end">>, []] end},
{"throw(timeout)", fun(_, _) -> throw(timeout) end}
],
[
req,
undefined]
]),
{
"Ensure send_list_row returns a valid response on end or error",
{setup, fun setup/0, fun(_) -> meck:unload() end, [
{
lists:flatten(io_lib:format("~s -- ~p", [N, R])),
should_return_valid_response(F, R)
} || [{N, F}, R] <- Cases
]}
}.
```
```
Ensure send_list_row returns a valid response on end or error
  couch_mrview_show:460: should_return_valid_response ([<<"end">>, [], []] 
-- req)...[0.117 s] ok
  couch_mrview_show:460: should_return_valid_response ([<<"end">>, [], []] 
-- undefined)...[0.007 s] ok
  couch_mrview_show:460: should_return_valid_response ([<<"end">>, []] -- 
req)...[0.007 s] ok
  couch_mrview_show:460: should_return_valid_response ([<<"end">>, []] -- 
undefined)...[0.007 s] ok
  couch_mrview_show:460: should_return_valid_response (throw(timeout) -- 
req)...[0.007 s] ok
  couch_mrview_show:460: should_return_valid_response (throw(timeout) -- 
undefined)...[0.010 s] ok
  [done in 0.172 s]
===
  All 6 tests passed.
```


---
If your project is set up for it, you can reply to this email and have your
reply appear on GitHub as well. If your project does not have this feature
enabled and wishes so, or if the feature is enabled but not working, please
contact infrastructure at infrastruct...@apache.org or file a JIRA ticket
with INFRA.
---


[jira] [Commented] (COUCHDB-3324) Scheduling Replicator

2017-03-15 Thread ASF subversion and git services (JIRA)

[ 
https://issues.apache.org/jira/browse/COUCHDB-3324?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=15927207#comment-15927207
 ] 

ASF subversion and git services commented on COUCHDB-3324:
--

Commit ff927a3a41f5f94bea94f366b6d657a8dcaf9430 in couchdb's branch 
refs/heads/63012-scheduler from [~vatamane]
[ https://git-wip-us.apache.org/repos/asf?p=couchdb.git;h=ff927a3 ]

Point to scheduling replicator dependencies.

This updates chttpd, couch, and couch_replicator to point to current commits on
63012-scheduler branches which contain code for the new scheduling replicator.

COUCHDB-3324


> Scheduling Replicator
> -
>
> Key: COUCHDB-3324
> URL: https://issues.apache.org/jira/browse/COUCHDB-3324
> Project: CouchDB
>  Issue Type: New Feature
>Reporter: Nick Vatamaniuc
>
> Merge scheduling replicator 



--
This message was sent by Atlassian JIRA
(v6.3.15#6346)


[GitHub] couchdb-couch issue #239: An ETS based couch_lru

2017-03-15 Thread nickva
Github user nickva commented on the issue:

https://github.com/apache/couchdb-couch/pull/239
  
I ended up not using `update_counter` because update_counter/4 is not 
available in R16B which CouchDB still supports. Tried simply replacing 
update_element with update_counter/3 but that didn't seem to provide any 
visible speed improvement.

@eiri thank you for the test module. I updated it to work with ETS table, 
but kept the same structure.



---
If your project is set up for it, you can reply to this email and have your
reply appear on GitHub as well. If your project does not have this feature
enabled and wishes so, or if the feature is enabled but not working, please
contact infrastructure at infrastruct...@apache.org or file a JIRA ticket
with INFRA.
---


[jira] [Created] (COUCHDB-3327) Improve CouchDB's LRU

2017-03-15 Thread Nick Vatamaniuc (JIRA)
Nick Vatamaniuc created COUCHDB-3327:


 Summary: Improve CouchDB's LRU
 Key: COUCHDB-3327
 URL: https://issues.apache.org/jira/browse/COUCHDB-3327
 Project: CouchDB
  Issue Type: Task
Reporter: Nick Vatamaniuc


Since we recently started to put all dbs into the LRU. Try to improve it a bit 
to make it more performant.





--
This message was sent by Atlassian JIRA
(v6.3.15#6346)


[jira] [Commented] (COUCHDB-3326) Implement clustered purge API: _purge

2017-03-15 Thread ASF subversion and git services (JIRA)

[ 
https://issues.apache.org/jira/browse/COUCHDB-3326?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=15927130#comment-15927130
 ] 

ASF subversion and git services commented on COUCHDB-3326:
--

Commit 9d60eb8b2bf72b790cf34b2a97a4847459503966 in couchdb-mem3's branch 
refs/heads/COUCHDB-3326-clustered-purge from [~mayyas]
[ https://git-wip-us.apache.org/repos/asf?p=couchdb-mem3.git;h=9d60eb8 ]

Add internal replication of purge requests

COUCHDB-3326


> Implement clustered purge API: _purge
> -
>
> Key: COUCHDB-3326
> URL: https://issues.apache.org/jira/browse/COUCHDB-3326
> Project: CouchDB
>  Issue Type: New Feature
>  Components: Database Core, Documentation, HTTP Interface
>Reporter: Mayya Sharipova
>
> This implements the clustered purge API:
> {code:}
> curl -H 'Content-Type: application/json' -X POST 
> "http://adm:pass@127.0.0.1:5984/test1/_purge; -d 
> '{"d1":["3-410e46c04b51b4c3304ed232790a49da", 
> "3-420e46c04b51b4c3304ed232790a35db"],"d2":["2-a39d6d63f29a956ae39930f84dd71ec3"],
>  "d3":["1-bdca7a3ac9503bf6e46d7d7a782e8f03"]}'
> {code}
> Response: status_code 201 or 202
> {code:javascript}
> {
>   "purged": [
> {
>   "ok": true, //Quorum was reached, at least W nodes 
> successfully purged doc
>   "id": "d1",
>   "revs": [
> "3-410e46c04b51b4c3304ed232790a49da",
>"3-420e46c04b51b4c3304ed232790a35db"
>   ]
> },
> {
>   "accepted": true,  //Quorum was NOT reached, but request was 
> accepted
>   "id": "d2",   
>   "revs": [
> "2-a39d6d63f29a956ae39930f84dd71ec3"
>   ]
> },
> {
>   "ok": true,   
>   "id": "d3",
>   "revs": []//(DocId or Revs missing) OR (Revs are not leaf 
> revisions) 
> }  ],
>   "purge_seq": 
> "6-g1BMeJzLYWBgYMpgTmHgz8tPSTV2MDQy1zMAQsMckEQiQ5L8sxKZ4UoMcSrJAgC9PRRl"
> }
> {code}



--
This message was sent by Atlassian JIRA
(v6.3.15#6346)


[jira] [Commented] (COUCHDB-3326) Implement clustered purge API: _purge

2017-03-15 Thread ASF subversion and git services (JIRA)

[ 
https://issues.apache.org/jira/browse/COUCHDB-3326?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=15927127#comment-15927127
 ] 

ASF subversion and git services commented on COUCHDB-3326:
--

Commit 923ef021a31feadaf5987bc48db6217016101390 in couchdb-couch-mrview's 
branch refs/heads/COUCHDB-3326-clustered-purge from [~mayyas]
[ https://git-wip-us.apache.org/repos/asf?p=couchdb-couch-mrview.git;h=923ef02 ]

Update couch_mrview to use new purge API

COUCHDB-3326


> Implement clustered purge API: _purge
> -
>
> Key: COUCHDB-3326
> URL: https://issues.apache.org/jira/browse/COUCHDB-3326
> Project: CouchDB
>  Issue Type: New Feature
>  Components: Database Core, Documentation, HTTP Interface
>Reporter: Mayya Sharipova
>
> This implements the clustered purge API:
> {code:}
> curl -H 'Content-Type: application/json' -X POST 
> "http://adm:pass@127.0.0.1:5984/test1/_purge; -d 
> '{"d1":["3-410e46c04b51b4c3304ed232790a49da", 
> "3-420e46c04b51b4c3304ed232790a35db"],"d2":["2-a39d6d63f29a956ae39930f84dd71ec3"],
>  "d3":["1-bdca7a3ac9503bf6e46d7d7a782e8f03"]}'
> {code}
> Response: status_code 201 or 202
> {code:javascript}
> {
>   "purged": [
> {
>   "ok": true, //Quorum was reached, at least W nodes 
> successfully purged doc
>   "id": "d1",
>   "revs": [
> "3-410e46c04b51b4c3304ed232790a49da",
>"3-420e46c04b51b4c3304ed232790a35db"
>   ]
> },
> {
>   "accepted": true,  //Quorum was NOT reached, but request was 
> accepted
>   "id": "d2",   
>   "revs": [
> "2-a39d6d63f29a956ae39930f84dd71ec3"
>   ]
> },
> {
>   "ok": true,   
>   "id": "d3",
>   "revs": []//(DocId or Revs missing) OR (Revs are not leaf 
> revisions) 
> }  ],
>   "purge_seq": 
> "6-g1BMeJzLYWBgYMpgTmHgz8tPSTV2MDQy1zMAQsMckEQiQ5L8sxKZ4UoMcSrJAgC9PRRl"
> }
> {code}



--
This message was sent by Atlassian JIRA
(v6.3.15#6346)


[jira] [Commented] (COUCHDB-3326) Implement clustered purge API: _purge

2017-03-15 Thread ASF subversion and git services (JIRA)

[ 
https://issues.apache.org/jira/browse/COUCHDB-3326?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=15927125#comment-15927125
 ] 

ASF subversion and git services commented on COUCHDB-3326:
--

Commit b56faf318f4e867846570f3b0006a96afd21f7ba in couchdb-couch-index's branch 
refs/heads/COUCHDB-3326-clustered-purge from [~mayyas]
[ https://git-wip-us.apache.org/repos/asf?p=couchdb-couch-index.git;h=b56faf3 ]

Update couch_index to use new purge API

COUCHDB-3326


> Implement clustered purge API: _purge
> -
>
> Key: COUCHDB-3326
> URL: https://issues.apache.org/jira/browse/COUCHDB-3326
> Project: CouchDB
>  Issue Type: New Feature
>  Components: Database Core, Documentation, HTTP Interface
>Reporter: Mayya Sharipova
>
> This implements the clustered purge API:
> {code:}
> curl -H 'Content-Type: application/json' -X POST 
> "http://adm:pass@127.0.0.1:5984/test1/_purge; -d 
> '{"d1":["3-410e46c04b51b4c3304ed232790a49da", 
> "3-420e46c04b51b4c3304ed232790a35db"],"d2":["2-a39d6d63f29a956ae39930f84dd71ec3"],
>  "d3":["1-bdca7a3ac9503bf6e46d7d7a782e8f03"]}'
> {code}
> Response: status_code 201 or 202
> {code:javascript}
> {
>   "purged": [
> {
>   "ok": true, //Quorum was reached, at least W nodes 
> successfully purged doc
>   "id": "d1",
>   "revs": [
> "3-410e46c04b51b4c3304ed232790a49da",
>"3-420e46c04b51b4c3304ed232790a35db"
>   ]
> },
> {
>   "accepted": true,  //Quorum was NOT reached, but request was 
> accepted
>   "id": "d2",   
>   "revs": [
> "2-a39d6d63f29a956ae39930f84dd71ec3"
>   ]
> },
> {
>   "ok": true,   
>   "id": "d3",
>   "revs": []//(DocId or Revs missing) OR (Revs are not leaf 
> revisions) 
> }  ],
>   "purge_seq": 
> "6-g1BMeJzLYWBgYMpgTmHgz8tPSTV2MDQy1zMAQsMckEQiQ5L8sxKZ4UoMcSrJAgC9PRRl"
> }
> {code}



--
This message was sent by Atlassian JIRA
(v6.3.15#6346)


[jira] [Commented] (COUCHDB-3266) changes feed not invoked when deleting a document using a selector filtered feed.

2017-03-15 Thread ASF subversion and git services (JIRA)

[ 
https://issues.apache.org/jira/browse/COUCHDB-3266?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=15927123#comment-15927123
 ] 

ASF subversion and git services commented on COUCHDB-3266:
--

Commit 511aef20b5111bfaaceafeaf29e731d56849d773 in couchdb-couch's branch 
refs/heads/COUCHDB-3326-clustered-purge from [~mayyas]
[ https://git-wip-us.apache.org/repos/asf?p=couchdb-couch.git;h=511aef2 ]

Implement new purge API

This is the basis for clustered purge.

COUCHDB-3266


> changes feed not invoked when deleting a document using a selector filtered 
> feed.
> -
>
> Key: COUCHDB-3266
> URL: https://issues.apache.org/jira/browse/COUCHDB-3266
> Project: CouchDB
>  Issue Type: Bug
>  Components: Database Core
>Reporter: Steven Spungin
>
> When I subscribe to the _changes endpoint with a selector filter, I get 
> updated and created changes, but not deleted changes.
> But when I subscribe without a selector, I get all the changes as expected.
> Here is my posted selector:
>  {"selector": {"type": "message", "subtype": "email"}



--
This message was sent by Atlassian JIRA
(v6.3.15#6346)


[GitHub] couchdb-couch-mrview issue #70: Fix undef error on empty list function respo...

2017-03-15 Thread jaydoane
Github user jaydoane commented on the issue:

https://github.com/apache/couchdb-couch-mrview/pull/70
  
Having written tests to ensure the patch works as directed, I'm 
(non-voting) "+1"


---
If your project is set up for it, you can reply to this email and have your
reply appear on GitHub as well. If your project does not have this feature
enabled and wishes so, or if the feature is enabled but not working, please
contact infrastructure at infrastruct...@apache.org or file a JIRA ticket
with INFRA.
---


[GitHub] couchdb-couch-mrview pull request #70: Fix undef error on empty list functio...

2017-03-15 Thread sagelywizard
GitHub user sagelywizard opened a pull request:

https://github.com/apache/couchdb-couch-mrview/pull/70

Fix undef error on empty list function response

Prior to this commit, if a list function did not return any data or
returned an error, it would return a #lacc{} record from list_cb/2
rather than a valid #mochiweb_response{} record. This would cause chttpd
to crash. This commit fixes this bug by always returning a valid
record.


You can merge this pull request into a Git repository by running:

$ git pull https://github.com/cloudant/couchdb-couch-mrview 
undef-lacc-list-function

Alternatively you can review and apply these changes as the patch at:

https://github.com/apache/couchdb-couch-mrview/pull/70.patch

To close this pull request, make a commit to your master/trunk branch
with (at least) the following in the commit message:

This closes #70


commit 56616fad9b0621b6606e4b521a2ec4b8342877aa
Author: Benjamin Bastian 
Date:   2017-03-10T02:20:25Z

Fix undef error on empty list function response

Prior to this commit, if a list function did not return any data or
returned an error, it would return a #lacc{} record from list_cb/2
rather than a valid #mochiweb_response{} record. This would cause chttpd
to crash. This commit fixes this bug by always returning a valid
record.

commit 6fe9121de0a1dbc5fe69e50951d867adfb443043
Author: Jay Doane 
Date:   2017-03-15T19:31:35Z

Add send_list_row test suite




---
If your project is set up for it, you can reply to this email and have your
reply appear on GitHub as well. If your project does not have this feature
enabled and wishes so, or if the feature is enabled but not working, please
contact infrastructure at infrastruct...@apache.org or file a JIRA ticket
with INFRA.
---


[GitHub] couchdb-couch-mrview issue #68: Fix undef error on empty list function respo...

2017-03-15 Thread sagelywizard
Github user sagelywizard commented on the issue:

https://github.com/apache/couchdb-couch-mrview/pull/68
  
Closing PR to reopen from `cloudant` fork, as @jaydoane added some tests.


---
If your project is set up for it, you can reply to this email and have your
reply appear on GitHub as well. If your project does not have this feature
enabled and wishes so, or if the feature is enabled but not working, please
contact infrastructure at infrastruct...@apache.org or file a JIRA ticket
with INFRA.
---


[jira] [Commented] (COUCHDB-3266) changes feed not invoked when deleting a document using a selector filtered feed.

2017-03-15 Thread ASF subversion and git services (JIRA)

[ 
https://issues.apache.org/jira/browse/COUCHDB-3266?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=15927082#comment-15927082
 ] 

ASF subversion and git services commented on COUCHDB-3266:
--

Commit 7a28094771d0f1896796fa61b33cc8fb96188b58 in couchdb-couch's branch 
refs/heads/COUCHDB-3326-clustered-purge from [~mayyas]
[ https://git-wip-us.apache.org/repos/asf?p=couchdb-couch.git;h=7a28094 ]

Implement new purge API

This is the basis for clustered purge.

COUCHDB-3266


> changes feed not invoked when deleting a document using a selector filtered 
> feed.
> -
>
> Key: COUCHDB-3266
> URL: https://issues.apache.org/jira/browse/COUCHDB-3266
> Project: CouchDB
>  Issue Type: Bug
>  Components: Database Core
>Reporter: Steven Spungin
>
> When I subscribe to the _changes endpoint with a selector filter, I get 
> updated and created changes, but not deleted changes.
> But when I subscribe without a selector, I get all the changes as expected.
> Here is my posted selector:
>  {"selector": {"type": "message", "subtype": "email"}



--
This message was sent by Atlassian JIRA
(v6.3.15#6346)


[jira] [Commented] (COUCHDB-2992) Add additional support for document size

2017-03-15 Thread ASF GitHub Bot (JIRA)

[ 
https://issues.apache.org/jira/browse/COUCHDB-2992?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=15927073#comment-15927073
 ] 

ASF GitHub Bot commented on COUCHDB-2992:
-

GitHub user nickva opened a pull request:

https://github.com/apache/couchdb-couch-mrview/pull/69

Allow limiting maximum document body size

This is a companion commit to this one:

https://github.com/apache/couchdb-couch/pull/235

COUCHDB-2992

You can merge this pull request into a Git repository by running:

$ git pull https://github.com/cloudant/couchdb-couch-mrview couchdb-2992

Alternatively you can review and apply these changes as the patch at:

https://github.com/apache/couchdb-couch-mrview/pull/69.patch

To close this pull request, make a commit to your master/trunk branch
with (at least) the following in the commit message:

This closes #69


commit 398c30e8785c3cd880d7d9788d25810dfe626c18
Author: Nick Vatamaniuc 
Date:   2017-03-15T21:55:22Z

Allow limiting maximum document body size

This is a companion commit to this one:

https://github.com/apache/couchdb-couch/pull/235

COUCHDB-2992




> Add additional support for document size
> 
>
> Key: COUCHDB-2992
> URL: https://issues.apache.org/jira/browse/COUCHDB-2992
> Project: CouchDB
>  Issue Type: Improvement
>  Components: Database Core
>Reporter: Tony Sun
>
> Currently, only max_document_size of 64 GB is the restriction for users 
> creating documents. Large documents often leads to issues with our indexers. 
> This feature will allow users more finer grain control over document size.



--
This message was sent by Atlassian JIRA
(v6.3.15#6346)


[GitHub] couchdb-chttpd issue #157: Allow limiting maximum document body size

2017-03-15 Thread sagelywizard
Github user sagelywizard commented on the issue:

https://github.com/apache/couchdb-chttpd/pull/157
  
Doesn't look like this validates unclustered _update handler docs in 
`couch_mrview_show:handle_doc_update_req/3`


---
If your project is set up for it, you can reply to this email and have your
reply appear on GitHub as well. If your project does not have this feature
enabled and wishes so, or if the feature is enabled but not working, please
contact infrastructure at infrastruct...@apache.org or file a JIRA ticket
with INFRA.
---


[jira] [Commented] (COUCHDB-3224) Fauxton not correctly display database with "-" and "/" symbol in name

2017-03-15 Thread ASF GitHub Bot (JIRA)

[ 
https://issues.apache.org/jira/browse/COUCHDB-3224?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=15926942#comment-15926942
 ] 

ASF GitHub Bot commented on COUCHDB-3224:
-

Github user sergey-safarov commented on the issue:

https://github.com/apache/couchdb-fauxton/pull/802
  
Hello @garrensmith 
Could you look error present in build log.
Think some dependency cannot be installed.


> Fauxton not correctly display database with "-" and "/" symbol in name
> --
>
> Key: COUCHDB-3224
> URL: https://issues.apache.org/jira/browse/COUCHDB-3224
> Project: CouchDB
>  Issue Type: Bug
>  Components: Fauxton
>Reporter: Sergey Safarov
>
> Fauxton cannot display database with "-" symbol in name and cannot display 
> view with "/" simbol in database name.
> Tu reproduce execute "curl -X PUT 
> http://127.0.0.1:5984/mytest%2Fdata%2Fbase-201609; ant try open this database 
> via fauxton.
> Also if you create view for this database then this view wont work.



--
This message was sent by Atlassian JIRA
(v6.3.15#6346)


[GitHub] couchdb-couch pull request #239: An ETS based couch_lru

2017-03-15 Thread nickva
Github user nickva commented on a diff in the pull request:

https://github.com/apache/couchdb-couch/pull/239#discussion_r106270691
  
--- Diff: src/couch_lru.erl ---
@@ -16,48 +16,57 @@
 -include_lib("couch/include/couch_db.hrl").
 
 new() ->
-{gb_trees:empty(), dict:new()}.
-
-insert(DbName, {Tree0, Dict0}) ->
-Lru = erlang:now(),
-{gb_trees:insert(Lru, DbName, Tree0), dict:store(DbName, Lru, Dict0)}.
-
-update(DbName, {Tree0, Dict0}) ->
-case dict:find(DbName, Dict0) of
-{ok, Old} ->
-New = erlang:now(),
-Tree = gb_trees:insert(New, DbName, gb_trees:delete(Old, Tree0)),
-Dict = dict:store(DbName, New, Dict0),
-{Tree, Dict};
-error ->
-% We closed this database before processing the update.  Ignore
-{Tree0, Dict0}
+Updates = ets:new(couch_lru_updates, [ordered_set]),
+Dbs = ets:new(couch_lru_dbs, [set]),
+{0, Updates, Dbs}.
+
+insert(DbName, {Count, Updates, Dbs}) ->
+update(DbName, {Count, Updates, Dbs}).
+
+update(DbName, {Count, Updates, Dbs}) ->
--- End diff --

Though thinking about it would change the logic. Notice now `Count` is a 
globally incrementing counter. This change would make so that the count is 
increment per db shard.


---
If your project is set up for it, you can reply to this email and have your
reply appear on GitHub as well. If your project does not have this feature
enabled and wishes so, or if the feature is enabled but not working, please
contact infrastructure at infrastruct...@apache.org or file a JIRA ticket
with INFRA.
---


[GitHub] couchdb-couch pull request #239: An ETS based couch_lru

2017-03-15 Thread iilyak
Github user iilyak commented on a diff in the pull request:

https://github.com/apache/couchdb-couch/pull/239#discussion_r106264428
  
--- Diff: src/couch_lru.erl ---
@@ -16,48 +16,57 @@
 -include_lib("couch/include/couch_db.hrl").
 
 new() ->
-{gb_trees:empty(), dict:new()}.
-
-insert(DbName, {Tree0, Dict0}) ->
-Lru = erlang:now(),
-{gb_trees:insert(Lru, DbName, Tree0), dict:store(DbName, Lru, Dict0)}.
-
-update(DbName, {Tree0, Dict0}) ->
-case dict:find(DbName, Dict0) of
-{ok, Old} ->
-New = erlang:now(),
-Tree = gb_trees:insert(New, DbName, gb_trees:delete(Old, Tree0)),
-Dict = dict:store(DbName, New, Dict0),
-{Tree, Dict};
-error ->
-% We closed this database before processing the update.  Ignore
-{Tree0, Dict0}
+Updates = ets:new(couch_lru_updates, [ordered_set]),
+Dbs = ets:new(couch_lru_dbs, [set]),
+{0, Updates, Dbs}.
+
+insert(DbName, {Count, Updates, Dbs}) ->
+update(DbName, {Count, Updates, Dbs}).
+
+update(DbName, {Count, Updates, Dbs}) ->
--- End diff --

If we use update_counter we don't have to pass Count around.
Also  `true = ets:insert(Updates, {{Count, DbName}});` happen in both 
branches so could be moved outside of a case statement.


---
If your project is set up for it, you can reply to this email and have your
reply appear on GitHub as well. If your project does not have this feature
enabled and wishes so, or if the feature is enabled but not working, please
contact infrastructure at infrastruct...@apache.org or file a JIRA ticket
with INFRA.
---


[jira] [Commented] (COUCHDB-3287) Implement pluggable storage engines

2017-03-15 Thread ASF subversion and git services (JIRA)

[ 
https://issues.apache.org/jira/browse/COUCHDB-3287?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=15926804#comment-15926804
 ] 

ASF subversion and git services commented on COUCHDB-3287:
--

Commit 6d00baed15306ad952a93ce6254efab96bd0a730 in couchdb-mem3's branch 
refs/heads/COUCHDB-3326-clustered-purge from [~paul.joseph.davis]
[ https://git-wip-us.apache.org/repos/asf?p=couchdb-mem3.git;h=6d00bae ]

Update to use the pluggable storage API

COUCHDB-3287


> Implement pluggable storage engines
> ---
>
> Key: COUCHDB-3287
> URL: https://issues.apache.org/jira/browse/COUCHDB-3287
> Project: CouchDB
>  Issue Type: Improvement
>Reporter: Paul Joseph Davis
>
> Opening branches for the pluggable storage engine work described here:
> http://mail-archives.apache.org/mod_mbox/couchdb-dev/201606.mbox/%3CCAJ_m3YDjA9xym_JRVtd6Xi7LX7Ajwc6EmH_wyCRD1jgTzk8mKA%40mail.gmail.com%3E



--
This message was sent by Atlassian JIRA
(v6.3.15#6346)


[jira] [Commented] (COUCHDB-3288) Remove public db record

2017-03-15 Thread ASF subversion and git services (JIRA)

[ 
https://issues.apache.org/jira/browse/COUCHDB-3288?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=15926803#comment-15926803
 ] 

ASF subversion and git services commented on COUCHDB-3288:
--

Commit 3de48d23ba661db4e4f856a1893f7cb69ed45131 in couchdb-mem3's branch 
refs/heads/COUCHDB-3326-clustered-purge from [~paul.joseph.davis]
[ https://git-wip-us.apache.org/repos/asf?p=couchdb-mem3.git;h=3de48d2 ]

Remove public db record

COUCHDB-3288


> Remove public db record
> ---
>
> Key: COUCHDB-3288
> URL: https://issues.apache.org/jira/browse/COUCHDB-3288
> Project: CouchDB
>  Issue Type: Improvement
>Reporter: Paul Joseph Davis
>
> To enable a mixed cluster upgrade (i.e., rolling reboot upgrade) we need to 
> do some preparatory work to remove access to the #db{} record since this 
> record is shared between nodes.
> This work is all straight forward and just involves changing things like 
> Db#db.main_pid to couch_db:get_main_pid(Db) or similar.



--
This message was sent by Atlassian JIRA
(v6.3.15#6346)


[GitHub] couchdb-couch pull request #239: An ETS based couch_lru

2017-03-15 Thread nickva
Github user nickva commented on a diff in the pull request:

https://github.com/apache/couchdb-couch/pull/239#discussion_r106262038
  
--- Diff: src/couch_lru.erl ---
@@ -16,48 +16,57 @@
 -include_lib("couch/include/couch_db.hrl").
 
 new() ->
-{gb_trees:empty(), dict:new()}.
-
-insert(DbName, {Tree0, Dict0}) ->
-Lru = erlang:now(),
-{gb_trees:insert(Lru, DbName, Tree0), dict:store(DbName, Lru, Dict0)}.
-
-update(DbName, {Tree0, Dict0}) ->
-case dict:find(DbName, Dict0) of
-{ok, Old} ->
-New = erlang:now(),
-Tree = gb_trees:insert(New, DbName, gb_trees:delete(Old, Tree0)),
-Dict = dict:store(DbName, New, Dict0),
-{Tree, Dict};
-error ->
-% We closed this database before processing the update.  Ignore
-{Tree0, Dict0}
+Updates = ets:new(couch_lru_updates, [ordered_set]),
+Dbs = ets:new(couch_lru_dbs, [set]),
+{0, Updates, Dbs}.
+
+insert(DbName, {Count, Updates, Dbs}) ->
+update(DbName, {Count, Updates, Dbs}).
+
+update(DbName, {Count, Updates, Dbs}) ->
+case ets:lookup(Dbs, DbName) of
+[] ->
+true = ets:insert(Updates, {{Count, DbName}}),
--- End diff --

Ha! Caught my trick. To allow iterating easier without doing an extra 
lookup in close_int


---
If your project is set up for it, you can reply to this email and have your
reply appear on GitHub as well. If your project does not have this feature
enabled and wishes so, or if the feature is enabled but not working, please
contact infrastructure at infrastruct...@apache.org or file a JIRA ticket
with INFRA.
---


[GitHub] couchdb-couch pull request #239: An ETS based couch_lru

2017-03-15 Thread davisp
Github user davisp commented on a diff in the pull request:

https://github.com/apache/couchdb-couch/pull/239#discussion_r106261898
  
--- Diff: src/couch_lru.erl ---
@@ -16,48 +16,57 @@
 -include_lib("couch/include/couch_db.hrl").
 
 new() ->
-{gb_trees:empty(), dict:new()}.
-
-insert(DbName, {Tree0, Dict0}) ->
-Lru = erlang:now(),
-{gb_trees:insert(Lru, DbName, Tree0), dict:store(DbName, Lru, Dict0)}.
-
-update(DbName, {Tree0, Dict0}) ->
-case dict:find(DbName, Dict0) of
-{ok, Old} ->
-New = erlang:now(),
-Tree = gb_trees:insert(New, DbName, gb_trees:delete(Old, Tree0)),
-Dict = dict:store(DbName, New, Dict0),
-{Tree, Dict};
-error ->
-% We closed this database before processing the update.  Ignore
-{Tree0, Dict0}
+Updates = ets:new(couch_lru_updates, [ordered_set]),
+Dbs = ets:new(couch_lru_dbs, [set]),
+{0, Updates, Dbs}.
+
+insert(DbName, {Count, Updates, Dbs}) ->
+update(DbName, {Count, Updates, Dbs}).
+
+update(DbName, {Count, Updates, Dbs}) ->
+case ets:lookup(Dbs, DbName) of
+[] ->
+true = ets:insert(Updates, {{Count, DbName}}),
--- End diff --

why be ye usin a tuple key?


---
If your project is set up for it, you can reply to this email and have your
reply appear on GitHub as well. If your project does not have this feature
enabled and wishes so, or if the feature is enabled but not working, please
contact infrastructure at infrastruct...@apache.org or file a JIRA ticket
with INFRA.
---


[jira] [Commented] (COUCHDB-3287) Implement pluggable storage engines

2017-03-15 Thread ASF subversion and git services (JIRA)

[ 
https://issues.apache.org/jira/browse/COUCHDB-3287?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=15926806#comment-15926806
 ] 

ASF subversion and git services commented on COUCHDB-3287:
--

Commit b1ea25378dc85c57a471bd30661e0bd94ee5b983 in couchdb-mem3's branch 
refs/heads/COUCHDB-3326-clustered-purge from [~paul.joseph.davis]
[ https://git-wip-us.apache.org/repos/asf?p=couchdb-mem3.git;h=b1ea253 ]

Store and use the storage engine property

This adds an optional key to database documents that lists the
configured storage engine. This allows mem3_shards to create the shard
with the appropriate storage engine when recovering from a network
split.

COUCHDB-3287


> Implement pluggable storage engines
> ---
>
> Key: COUCHDB-3287
> URL: https://issues.apache.org/jira/browse/COUCHDB-3287
> Project: CouchDB
>  Issue Type: Improvement
>Reporter: Paul Joseph Davis
>
> Opening branches for the pluggable storage engine work described here:
> http://mail-archives.apache.org/mod_mbox/couchdb-dev/201606.mbox/%3CCAJ_m3YDjA9xym_JRVtd6Xi7LX7Ajwc6EmH_wyCRD1jgTzk8mKA%40mail.gmail.com%3E



--
This message was sent by Atlassian JIRA
(v6.3.15#6346)


[jira] [Commented] (COUCHDB-3102) The xxx_config_listener doesn't restart after a failure

2017-03-15 Thread ASF subversion and git services (JIRA)

[ 
https://issues.apache.org/jira/browse/COUCHDB-3102?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=15926802#comment-15926802
 ] 

ASF subversion and git services commented on COUCHDB-3102:
--

Commit 432264ae1f66ea7ad960352583899cb4940e2723 in couchdb-mem3's branch 
refs/heads/COUCHDB-3326-clustered-purge from [~iilyak]
[ https://git-wip-us.apache.org/repos/asf?p=couchdb-mem3.git;h=432264a ]

Update handle_config_terminate API

COUCHDB-3102


> The xxx_config_listener doesn't restart after a failure
> ---
>
> Key: COUCHDB-3102
> URL: https://issues.apache.org/jira/browse/COUCHDB-3102
> Project: CouchDB
>  Issue Type: Bug
>Reporter: ILYA
>
> The 
> [config_listener_mon|https://github.com/apache/couchdb-config/blob/master/src/config_listener_mon.erl#L44]
>  monitors the caller. 
> However in lots of places we use [following 
> pattern|https://github.com/apache/couchdb-chttpd/blob/master/src/chttpd_config_listener.erl#L45:L49]
> {code}
> handle_config_terminate(_Server, _Reason, State) ->
> spawn(fun() ->
> timer:sleep(5000),
> config:listen_for_changes(?MODULE, State)
> end).
> {code}
> In this case the spawned fun exits right after the monitor has been 
> established.
> Which means config_listener_mon would terminate. Effectively removing event 
> handler from config_event process (gen_event event manager).
> When this happen any further configuration changes get unnoticed by processes.



--
This message was sent by Atlassian JIRA
(v6.3.15#6346)


[GitHub] couchdb-couch issue #239: An ETS based couch_lru

2017-03-15 Thread eiri
Github user eiri commented on the issue:

https://github.com/apache/couchdb-couch/pull/239
  
Prof looks promising. Can you add tests, just to be on a safe side? Feel 
free to pull from here: 
https://github.com/cloudant/couchdb-couch/commit/4358b8d678ab15d0153530a41f68ff7867b633a5


---
If your project is set up for it, you can reply to this email and have your
reply appear on GitHub as well. If your project does not have this feature
enabled and wishes so, or if the feature is enabled but not working, please
contact infrastructure at infrastruct...@apache.org or file a JIRA ticket
with INFRA.
---


[GitHub] couchdb-couch issue #239: An ETS based couch_lru

2017-03-15 Thread nickva
Github user nickva commented on the issue:

https://github.com/apache/couchdb-couch/pull/239
  
@davisp @eiri 

I tried a 5 minute eprof run. At default 500 max_dbs_open. Cluster had 20 
continuous 1-to-n replications. 

```
 master + ETS lru (this PR)

eprof:start_profiling([couch_server], {couch_lru, '_', '_'}), 
timer:sleep(30), eprof:stop_profiling(), eprof:analyze(), eprof:stop().

** Process <4641.251.0>-- 100.00 % of profiled time ***
FUNCTION   CALLS%TIME  [uS / CALLS]
   -  ---  [--]
couch_lru:insert/2   564 1.46   11437  [ 20.28]
couch_lru:close_int/3   1800 5.36   42068  [ 23.37]
couch_lru:close/1450 6.29   49341  [109.65]
couch_lru:update/2 2654286.90  681987  [ 25.69]
-  -  ---  --  [--]
Total: 29356  100.00%  784833  [ 26.74]


 master + monotonic counter

(https://github.com/cloudant/couchdb-couch/commit/4b49e71c14837c0f1b63e5d0ba2fea34c5fd997e)

eprof:start_profiling([couch_server], {couch_lru, '_', '_'}), 
timer:sleep(30), eprof:stop_profiling(), eprof:analyze(), eprof:stop().

** Process <4641.251.0>-- 100.00 % of profiled time ***
FUNCTION   CALLS%TIME  [uS / CALLS]
   -  ---  [--]
couch_lru:close_int/2323 1.50   13817  [ 42.78]
couch_lru:insert/2   621 2.36   21723  [ 34.98]
couch_lru:close/1320 3.90   35962  [112.38]
couch_lru:update/2 2595392.24  849899  [ 32.75]
-  -  ---  --  [--]
Total: 27217  100.00%  921401  [ 33.85]


 current master

eprof:start_profiling([couch_server], {couch_lru, '_', '_'}), 
timer:sleep(30), eprof:stop_profiling(), eprof:analyze(), eprof:stop().

** Process <4641.251.0>-- 100.00 % of profiled time ***
FUNCTION   CALLS% TIME  [uS / CALLS]
   -  ---   [--]
couch_lru:close_int/2513 1.6022893  [ 44.63]
couch_lru:insert/2   727 2.0629407  [ 40.45]
couch_lru:close/1507 3.9055623  [109.71]
couch_lru:update/2 3511492.44  1318808  [ 37.56]
-  -  ---  ---  [--]
Total: 36861  100.00%  1426731  [ 38.71]

```


---
If your project is set up for it, you can reply to this email and have your
reply appear on GitHub as well. If your project does not have this feature
enabled and wishes so, or if the feature is enabled but not working, please
contact infrastructure at infrastruct...@apache.org or file a JIRA ticket
with INFRA.
---


[jira] [Commented] (COUCHDB-3326) Implement clustered purge API: _purge

2017-03-15 Thread ASF subversion and git services (JIRA)

[ 
https://issues.apache.org/jira/browse/COUCHDB-3326?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=15926793#comment-15926793
 ] 

ASF subversion and git services commented on COUCHDB-3326:
--

Commit 8b3a6b19add32dbfe3c78622e3e8176b0a0ccb6a in couchdb-mem3's branch 
refs/heads/COUCHDB-3326-clustered-purge from [~mayyas]
[ https://git-wip-us.apache.org/repos/asf?p=couchdb-mem3.git;h=8b3a6b1 ]

Add internal replication of purge requests

COUCHDB-3326


> Implement clustered purge API: _purge
> -
>
> Key: COUCHDB-3326
> URL: https://issues.apache.org/jira/browse/COUCHDB-3326
> Project: CouchDB
>  Issue Type: New Feature
>  Components: Database Core, Documentation, HTTP Interface
>Reporter: Mayya Sharipova
>
> This implements the clustered purge API:
> {code:}
> curl -H 'Content-Type: application/json' -X POST 
> "http://adm:pass@127.0.0.1:5984/test1/_purge; -d 
> '{"d1":["3-410e46c04b51b4c3304ed232790a49da", 
> "3-420e46c04b51b4c3304ed232790a35db"],"d2":["2-a39d6d63f29a956ae39930f84dd71ec3"],
>  "d3":["1-bdca7a3ac9503bf6e46d7d7a782e8f03"]}'
> {code}
> Response: status_code 201 or 202
> {code:javascript}
> {
>   "purged": [
> {
>   "ok": true, //Quorum was reached, at least W nodes 
> successfully purged doc
>   "id": "d1",
>   "revs": [
> "3-410e46c04b51b4c3304ed232790a49da",
>"3-420e46c04b51b4c3304ed232790a35db"
>   ]
> },
> {
>   "accepted": true,  //Quorum was NOT reached, but request was 
> accepted
>   "id": "d2",   
>   "revs": [
> "2-a39d6d63f29a956ae39930f84dd71ec3"
>   ]
> },
> {
>   "ok": true,   
>   "id": "d3",
>   "revs": []//(DocId or Revs missing) OR (Revs are not leaf 
> revisions) 
> }  ],
>   "purge_seq": 
> "6-g1BMeJzLYWBgYMpgTmHgz8tPSTV2MDQy1zMAQsMckEQiQ5L8sxKZ4UoMcSrJAgC9PRRl"
> }
> {code}



--
This message was sent by Atlassian JIRA
(v6.3.15#6346)


[jira] [Commented] (COUCHDB-3326) Implement clustered purge API: _purge

2017-03-15 Thread ASF subversion and git services (JIRA)

[ 
https://issues.apache.org/jira/browse/COUCHDB-3326?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=15926775#comment-15926775
 ] 

ASF subversion and git services commented on COUCHDB-3326:
--

Commit 9b6662aff94a2ea7239624c16ce5b97c1ccc088b in couchdb-fabric's branch 
refs/heads/COUCHDB-3326-clustered-purge from [~mayyas]
[ https://git-wip-us.apache.org/repos/asf?p=couchdb-fabric.git;h=9b6662a ]

Implement clustered purge API

COUCHDB-3326


> Implement clustered purge API: _purge
> -
>
> Key: COUCHDB-3326
> URL: https://issues.apache.org/jira/browse/COUCHDB-3326
> Project: CouchDB
>  Issue Type: New Feature
>  Components: Database Core, Documentation, HTTP Interface
>Reporter: Mayya Sharipova
>
> This implements the clustered purge API:
> {code:}
> curl -H 'Content-Type: application/json' -X POST 
> "http://adm:pass@127.0.0.1:5984/test1/_purge; -d 
> '{"d1":["3-410e46c04b51b4c3304ed232790a49da", 
> "3-420e46c04b51b4c3304ed232790a35db"],"d2":["2-a39d6d63f29a956ae39930f84dd71ec3"],
>  "d3":["1-bdca7a3ac9503bf6e46d7d7a782e8f03"]}'
> {code}
> Response: status_code 201 or 202
> {code:javascript}
> {
>   "purged": [
> {
>   "ok": true, //Quorum was reached, at least W nodes 
> successfully purged doc
>   "id": "d1",
>   "revs": [
> "3-410e46c04b51b4c3304ed232790a49da",
>"3-420e46c04b51b4c3304ed232790a35db"
>   ]
> },
> {
>   "accepted": true,  //Quorum was NOT reached, but request was 
> accepted
>   "id": "d2",   
>   "revs": [
> "2-a39d6d63f29a956ae39930f84dd71ec3"
>   ]
> },
> {
>   "ok": true,   
>   "id": "d3",
>   "revs": []//(DocId or Revs missing) OR (Revs are not leaf 
> revisions) 
> }  ],
>   "purge_seq": 
> "6-g1BMeJzLYWBgYMpgTmHgz8tPSTV2MDQy1zMAQsMckEQiQ5L8sxKZ4UoMcSrJAgC9PRRl"
> }
> {code}



--
This message was sent by Atlassian JIRA
(v6.3.15#6346)


[jira] [Commented] (COUCHDB-3326) Implement clustered purge API: _purge

2017-03-15 Thread ASF subversion and git services (JIRA)

[ 
https://issues.apache.org/jira/browse/COUCHDB-3326?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=15926748#comment-15926748
 ] 

ASF subversion and git services commented on COUCHDB-3326:
--

Commit 85afe396b8a0f49876c8ec9d608ea93e7736aaf0 in couchdb-couch-mrview's 
branch refs/heads/COUCHDB-3326-clustered-purge from [~mayyas]
[ https://git-wip-us.apache.org/repos/asf?p=couchdb-couch-mrview.git;h=85afe39 ]

Update couch_mrview to use new purge API

COUCHDB-3326


> Implement clustered purge API: _purge
> -
>
> Key: COUCHDB-3326
> URL: https://issues.apache.org/jira/browse/COUCHDB-3326
> Project: CouchDB
>  Issue Type: New Feature
>  Components: Database Core, Documentation, HTTP Interface
>Reporter: Mayya Sharipova
>
> This implements the clustered purge API:
> {code:}
> curl -H 'Content-Type: application/json' -X POST 
> "http://adm:pass@127.0.0.1:5984/test1/_purge; -d 
> '{"d1":["3-410e46c04b51b4c3304ed232790a49da", 
> "3-420e46c04b51b4c3304ed232790a35db"],"d2":["2-a39d6d63f29a956ae39930f84dd71ec3"],
>  "d3":["1-bdca7a3ac9503bf6e46d7d7a782e8f03"]}'
> {code}
> Response: status_code 201 or 202
> {code:javascript}
> {
>   "purged": [
> {
>   "ok": true, //Quorum was reached, at least W nodes 
> successfully purged doc
>   "id": "d1",
>   "revs": [
> "3-410e46c04b51b4c3304ed232790a49da",
>"3-420e46c04b51b4c3304ed232790a35db"
>   ]
> },
> {
>   "accepted": true,  //Quorum was NOT reached, but request was 
> accepted
>   "id": "d2",   
>   "revs": [
> "2-a39d6d63f29a956ae39930f84dd71ec3"
>   ]
> },
> {
>   "ok": true,   
>   "id": "d3",
>   "revs": []//(DocId or Revs missing) OR (Revs are not leaf 
> revisions) 
> }  ],
>   "purge_seq": 
> "6-g1BMeJzLYWBgYMpgTmHgz8tPSTV2MDQy1zMAQsMckEQiQ5L8sxKZ4UoMcSrJAgC9PRRl"
> }
> {code}



--
This message was sent by Atlassian JIRA
(v6.3.15#6346)


[jira] [Commented] (COUCHDB-3326) Implement clustered purge API: _purge

2017-03-15 Thread ASF subversion and git services (JIRA)

[ 
https://issues.apache.org/jira/browse/COUCHDB-3326?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=15926743#comment-15926743
 ] 

ASF subversion and git services commented on COUCHDB-3326:
--

Commit 2fb39fba655bf8bf03ab8cd8316f61eccb75dd37 in couchdb-couch-mrview's 
branch refs/heads/COUCHDB-3326-clustered-purge from [~mayyas]
[ https://git-wip-us.apache.org/repos/asf?p=couchdb-couch-mrview.git;h=2fb39fb ]

Update couch_mrview to use new purge API

COUCHDB-3326


> Implement clustered purge API: _purge
> -
>
> Key: COUCHDB-3326
> URL: https://issues.apache.org/jira/browse/COUCHDB-3326
> Project: CouchDB
>  Issue Type: New Feature
>  Components: Database Core, Documentation, HTTP Interface
>Reporter: Mayya Sharipova
>
> This implements the clustered purge API:
> {code:}
> curl -H 'Content-Type: application/json' -X POST 
> "http://adm:pass@127.0.0.1:5984/test1/_purge; -d 
> '{"d1":["3-410e46c04b51b4c3304ed232790a49da", 
> "3-420e46c04b51b4c3304ed232790a35db"],"d2":["2-a39d6d63f29a956ae39930f84dd71ec3"],
>  "d3":["1-bdca7a3ac9503bf6e46d7d7a782e8f03"]}'
> {code}
> Response: status_code 201 or 202
> {code:javascript}
> {
>   "purged": [
> {
>   "ok": true, //Quorum was reached, at least W nodes 
> successfully purged doc
>   "id": "d1",
>   "revs": [
> "3-410e46c04b51b4c3304ed232790a49da",
>"3-420e46c04b51b4c3304ed232790a35db"
>   ]
> },
> {
>   "accepted": true,  //Quorum was NOT reached, but request was 
> accepted
>   "id": "d2",   
>   "revs": [
> "2-a39d6d63f29a956ae39930f84dd71ec3"
>   ]
> },
> {
>   "ok": true,   
>   "id": "d3",
>   "revs": []//(DocId or Revs missing) OR (Revs are not leaf 
> revisions) 
> }  ],
>   "purge_seq": 
> "6-g1BMeJzLYWBgYMpgTmHgz8tPSTV2MDQy1zMAQsMckEQiQ5L8sxKZ4UoMcSrJAgC9PRRl"
> }
> {code}



--
This message was sent by Atlassian JIRA
(v6.3.15#6346)


[jira] [Commented] (COUCHDB-3326) Implement clustered purge API: _purge

2017-03-15 Thread ASF subversion and git services (JIRA)

[ 
https://issues.apache.org/jira/browse/COUCHDB-3326?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=15926730#comment-15926730
 ] 

ASF subversion and git services commented on COUCHDB-3326:
--

Commit 79b45e1c1dbe65ea708058f2231f9dfd8430f3c8 in couchdb-couch-index's branch 
refs/heads/COUCHDB-3326-clustered-purge from [~mayyas]
[ https://git-wip-us.apache.org/repos/asf?p=couchdb-couch-index.git;h=79b45e1 ]

Update couch_index to use new purge API

COUCHDB-3326


> Implement clustered purge API: _purge
> -
>
> Key: COUCHDB-3326
> URL: https://issues.apache.org/jira/browse/COUCHDB-3326
> Project: CouchDB
>  Issue Type: New Feature
>  Components: Database Core, Documentation, HTTP Interface
>Reporter: Mayya Sharipova
>
> This implements the clustered purge API:
> {code:}
> curl -H 'Content-Type: application/json' -X POST 
> "http://adm:pass@127.0.0.1:5984/test1/_purge; -d 
> '{"d1":["3-410e46c04b51b4c3304ed232790a49da", 
> "3-420e46c04b51b4c3304ed232790a35db"],"d2":["2-a39d6d63f29a956ae39930f84dd71ec3"],
>  "d3":["1-bdca7a3ac9503bf6e46d7d7a782e8f03"]}'
> {code}
> Response: status_code 201 or 202
> {code:javascript}
> {
>   "purged": [
> {
>   "ok": true, //Quorum was reached, at least W nodes 
> successfully purged doc
>   "id": "d1",
>   "revs": [
> "3-410e46c04b51b4c3304ed232790a49da",
>"3-420e46c04b51b4c3304ed232790a35db"
>   ]
> },
> {
>   "accepted": true,  //Quorum was NOT reached, but request was 
> accepted
>   "id": "d2",   
>   "revs": [
> "2-a39d6d63f29a956ae39930f84dd71ec3"
>   ]
> },
> {
>   "ok": true,   
>   "id": "d3",
>   "revs": []//(DocId or Revs missing) OR (Revs are not leaf 
> revisions) 
> }  ],
>   "purge_seq": 
> "6-g1BMeJzLYWBgYMpgTmHgz8tPSTV2MDQy1zMAQsMckEQiQ5L8sxKZ4UoMcSrJAgC9PRRl"
> }
> {code}



--
This message was sent by Atlassian JIRA
(v6.3.15#6346)


[jira] [Commented] (COUCHDB-3326) Implement clustered purge API: _purge

2017-03-15 Thread ASF subversion and git services (JIRA)

[ 
https://issues.apache.org/jira/browse/COUCHDB-3326?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=15926718#comment-15926718
 ] 

ASF subversion and git services commented on COUCHDB-3326:
--

Commit b22c5b2d4ce5049c48b20a747fa3ac9d3c6acbfd in couchdb-chttpd's branch 
refs/heads/COUCHDB-3326-clustered-purge from [~mayyas]
[ https://git-wip-us.apache.org/repos/asf?p=couchdb-chttpd.git;h=b22c5b2 ]

Implement clustered purge HTTP endpoint

COUCHDB-3326


> Implement clustered purge API: _purge
> -
>
> Key: COUCHDB-3326
> URL: https://issues.apache.org/jira/browse/COUCHDB-3326
> Project: CouchDB
>  Issue Type: New Feature
>  Components: Database Core, Documentation, HTTP Interface
>Reporter: Mayya Sharipova
>
> This implements the clustered purge API:
> {code:}
> curl -H 'Content-Type: application/json' -X POST 
> "http://adm:pass@127.0.0.1:5984/test1/_purge; -d 
> '{"d1":["3-410e46c04b51b4c3304ed232790a49da", 
> "3-420e46c04b51b4c3304ed232790a35db"],"d2":["2-a39d6d63f29a956ae39930f84dd71ec3"],
>  "d3":["1-bdca7a3ac9503bf6e46d7d7a782e8f03"]}'
> {code}
> Response: status_code 201 or 202
> {code:javascript}
> {
>   "purged": [
> {
>   "ok": true, //Quorum was reached, at least W nodes 
> successfully purged doc
>   "id": "d1",
>   "revs": [
> "3-410e46c04b51b4c3304ed232790a49da",
>"3-420e46c04b51b4c3304ed232790a35db"
>   ]
> },
> {
>   "accepted": true,  //Quorum was NOT reached, but request was 
> accepted
>   "id": "d2",   
>   "revs": [
> "2-a39d6d63f29a956ae39930f84dd71ec3"
>   ]
> },
> {
>   "ok": true,   
>   "id": "d3",
>   "revs": []//(DocId or Revs missing) OR (Revs are not leaf 
> revisions) 
> }  ],
>   "purge_seq": 
> "6-g1BMeJzLYWBgYMpgTmHgz8tPSTV2MDQy1zMAQsMckEQiQ5L8sxKZ4UoMcSrJAgC9PRRl"
> }
> {code}



--
This message was sent by Atlassian JIRA
(v6.3.15#6346)


[GitHub] couchdb-couch pull request #239: An ETS based couch_lru

2017-03-15 Thread nickva
GitHub user nickva opened a pull request:

https://github.com/apache/couchdb-couch/pull/239

An ETS based couch_lru

The interface is the same as previous couch_lru.

You can merge this pull request into a Git repository by running:

$ git pull https://github.com/cloudant/couchdb-couch ets-based-lru

Alternatively you can review and apply these changes as the patch at:

https://github.com/apache/couchdb-couch/pull/239.patch

To close this pull request, make a commit to your master/trunk branch
with (at least) the following in the commit message:

This closes #239






---
If your project is set up for it, you can reply to this email and have your
reply appear on GitHub as well. If your project does not have this feature
enabled and wishes so, or if the feature is enabled but not working, please
contact infrastructure at infrastruct...@apache.org or file a JIRA ticket
with INFRA.
---


[jira] [Commented] (COUCHDB-3314) Add an option in doc creation APIs to specify a random value for an initial doc revision

2017-03-15 Thread Robert Newson (JIRA)

[ 
https://issues.apache.org/jira/browse/COUCHDB-3314?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=15926631#comment-15926631
 ] 

Robert Newson commented on COUCHDB-3314:


"a user creates documents in different dbs, applies identical updates, and then 
expects replication to not introduce a conflict."

That's the reason uuids changed from random values to deterministic ones in a 
nutshell.

This, and COUCHDB-3315, implies we intend to take that feature out in order to 
gain clustered purge. That could be a fine choice but I wanted it to be clearly 
spelled out beforehand.

> Add an option in doc creation APIs to specify a random value for an initial 
> doc revision
> 
>
> Key: COUCHDB-3314
> URL: https://issues.apache.org/jira/browse/COUCHDB-3314
> Project: CouchDB
>  Issue Type: New Feature
>  Components: Database Core, HTTP Interface
>Reporter: Mayya Sharipova
>
> Currently the initial revision of a document is deterministic. For instance,
> anyone that has created an empty document probably recognizes the revision 
> starting with "1-967a00dff...". In order to account for situations when a 
> document is continually purged and recreated we're going to add randomness to 
> this initial revision by specifying a 0-$rev in the request coordinator. We 
> will then include this in the revision generation but drop the 0-$rev entry 
> from the revision's path. 
> Thus, the new API will look like this:
> acurl -X PUT 
> https://http://adm:pass@127.0.0.1:5984/test-db/newdoc1?rev=0-adfdafa123 -d 
> '{}'
> And similarly for _bulk_docs
> For a user who wants to create a doc, then purge it, and then re-create, it 
> is recommended to recreate it with another random revision. 
> It is important to note that the 0-$rev only affects document creation. Once
> a document exists, updates to the document will continue to update their hash 
> in the same deterministic fashion. Ie, once a document exists, identical
> updates will result in identical revisions.
> _
> The following changes need to be made in the code:
> 1.  API changes to allow to specify random rev in doc PUT requests, _bulk_docs
> 2. Internals: 
> 2.1 Use a new revision here: 
> https://github.com/apache/couchdb-couch/blob/master/src/couch_db.erl#L886 
> 2.2 Don't include provided 0-$rev entry to the revision's path (find wherever 
> new_revid is called from; could be 2-3 places)
> 2.3 Reject a 0-$rev during replication



--
This message was sent by Atlassian JIRA
(v6.3.15#6346)


[jira] [Created] (COUCHDB-3326) Implement clustered purge API: _purge

2017-03-15 Thread Mayya Sharipova (JIRA)
Mayya Sharipova created COUCHDB-3326:


 Summary: Implement clustered purge API: _purge
 Key: COUCHDB-3326
 URL: https://issues.apache.org/jira/browse/COUCHDB-3326
 Project: CouchDB
  Issue Type: New Feature
  Components: Database Core, Documentation, HTTP Interface
Reporter: Mayya Sharipova


This implements the clustered purge API:

curl -H 'Content-Type: application/json' -X POST 
"http://adm:pass@127.0.0.1:5984/test1/_purge; -d 
'{"d1":["3-410e46c04b51b4c3304ed232790a49da", 
"3-420e46c04b51b4c3304ed232790a35db"],"d2":["2-a39d6d63f29a956ae39930f84dd71ec3"],
 "d3":["1-bdca7a3ac9503bf6e46d7d7a782e8f03"]}'

Response:
Response: status_code 201 or 202
{
  "purged": [
{
  "ok": true,  
  "id": "d1",
  "revs": [
"3-410e46c04b51b4c3304ed232790a49da",
 "3-420e46c04b51b4c3304ed232790a35db"
  ]
},
{
  "accepted": true, 
  "id": "d2",   
  "revs": [
"2-a39d6d63f29a956ae39930f84dd71ec3"
  ]
},
{
  "ok": true,   
  "id": "d3",
  "revs": [] 
}  ],
  "purge_seq": 
"6-g1BMeJzLYWBgYMpgTmHgz8tPSTV2MDQy1zMAQsMckEQiQ5L8sxKZ4UoMcSrJAgC9PRRl"
}



--
This message was sent by Atlassian JIRA
(v6.3.15#6346)


[jira] [Commented] (COUCHDB-3325) Track _replicator/_user shards with LRU

2017-03-15 Thread ASF GitHub Bot (JIRA)

[ 
https://issues.apache.org/jira/browse/COUCHDB-3325?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=15926161#comment-15926161
 ] 

ASF GitHub Bot commented on COUCHDB-3325:
-

Github user asfgit closed the pull request at:

https://github.com/apache/couchdb-couch/pull/237


> Track _replicator/_user shards with LRU
> ---
>
> Key: COUCHDB-3325
> URL: https://issues.apache.org/jira/browse/COUCHDB-3325
> Project: CouchDB
>  Issue Type: Bug
>Reporter: Robert Newson
>
> We excluded _replicator and _users databases from the LRU many years ago, 
> before clustering.
> It is now possible to make many _replicator and _users databases (and 
> clustering multiples this effect).
> A couchdb cluster can degrade considerably in the presence of many of these 
> databases even when they are empty and idle. They consume resources but are 
> never closed.
> Let's include all sys_db databases in the LRU. Any active ones will remain 
> open anyway, that's the point of an LRU.



--
This message was sent by Atlassian JIRA
(v6.3.15#6346)


[GitHub] couchdb-couch pull request #237: Add sys_dbs to the LRU

2017-03-15 Thread asfgit
Github user asfgit closed the pull request at:

https://github.com/apache/couchdb-couch/pull/237


---
If your project is set up for it, you can reply to this email and have your
reply appear on GitHub as well. If your project does not have this feature
enabled and wishes so, or if the feature is enabled but not working, please
contact infrastructure at infrastruct...@apache.org or file a JIRA ticket
with INFRA.
---


[jira] [Commented] (COUCHDB-3325) Track _replicator/_user shards with LRU

2017-03-15 Thread ASF subversion and git services (JIRA)

[ 
https://issues.apache.org/jira/browse/COUCHDB-3325?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=15926160#comment-15926160
 ] 

ASF subversion and git services commented on COUCHDB-3325:
--

Commit 92c25a98666e59ca497fa5732a81e771ff52e07d in couchdb-couch's branch 
refs/heads/master from [~rnewson]
[ https://git-wip-us.apache.org/repos/asf?p=couchdb-couch.git;h=92c25a9 ]

Add sys_dbs to the LRU

COUCHDB-3325


> Track _replicator/_user shards with LRU
> ---
>
> Key: COUCHDB-3325
> URL: https://issues.apache.org/jira/browse/COUCHDB-3325
> Project: CouchDB
>  Issue Type: Bug
>Reporter: Robert Newson
>
> We excluded _replicator and _users databases from the LRU many years ago, 
> before clustering.
> It is now possible to make many _replicator and _users databases (and 
> clustering multiples this effect).
> A couchdb cluster can degrade considerably in the presence of many of these 
> databases even when they are empty and idle. They consume resources but are 
> never closed.
> Let's include all sys_db databases in the LRU. Any active ones will remain 
> open anyway, that's the point of an LRU.



--
This message was sent by Atlassian JIRA
(v6.3.15#6346)