[GitHub] couchdb-couch-replicator pull request #54: Allow configuring maximum documen...

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


https://github.com/apache/couchdb-couch-replicator/pull/54#discussion_r99454566
  
--- Diff: src/couch_replicator_changes_reader.erl ---
@@ -89,9 +89,20 @@ process_change(#doc_info{id = <<>>} = DocInfo, {_, Db, 
_, _, _}) ->
 "source database `~s` (_changes sequence ~p)",
 [couch_replicator_api_wrap:db_uri(Db), DocInfo#doc_info.high_seq]);
 
-process_change(#doc_info{} = DocInfo, {_, _, ChangesQueue, _, _}) ->
-ok = couch_work_queue:queue(ChangesQueue, DocInfo),
-put(last_seq, DocInfo#doc_info.high_seq);
+process_change(#doc_info{id = Id} = DocInfo, {Parent, Db, ChangesQueue, _, 
_}) ->
+case is_doc_id_too_long(byte_size(Id)) of
+true ->
+ShortId = lists:sublist(binary_to_list(Id), 64),
+SourceDb = couch_replicator_api_wrap:db_uri(Db),
+couch_log:error("Replicator: document id `~s...` from source 
db "
+" `~s` is too long, ignoring.", [ShortId, SourceDb]),
+Stats = couch_replicator_stats:new([{doc_write_failures, 1}]),
+ok = gen_server:call(Parent, {add_stats, Stats}, infinity),
+ok;
--- End diff --

You're right. That was silly of me.


---
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-replicator issue #54: Allow configuring maximum document ID le...

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

https://github.com/apache/couchdb-couch-replicator/pull/54
  
LGTM, FWIW


---
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-3291) Excessivly long document IDs prevent replicator from making progress

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

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

ASF GitHub Bot commented on COUCHDB-3291:
-

GitHub user nickva opened a pull request:

https://github.com/apache/couchdb-couch-replicator/pull/54

Allow configuring maximum document ID length during replication

Currently due to a bug in http parser and lack of document ID length
enforcement, large document IDs will break replication jobs. Large IDs
will pass through the _change feed, revs diffs,  but then fail
during open_revs get request. open_revs request will keep retrying until
it gives up after long enough time, then replication task crashes and
restart again with the same pattern. The current effective limit is
around 8k or so. (The buffer size default 8192 and if the first line
of the request is larger than that, request will fail).

(See http://erlang.org/pipermail/erlang-questions/2011-June/059567.html
for more information about the possible failure mechanism).

Bypassing the parser bug by increasing recbuf size, will alow replication
to finish, however that means simply spreading the abnormal document through
the rest of the system, and might not be desirable always.

Also once long document IDs have been inserted in the source DB. Simply 
deleting
them doesn't work as they'd still appear in the change feed. They'd have to
be purged or somehow skipped during the replication step. This commit helps
do the later.

Operators can configure maximum length via this setting:
```
  replicator.max_document_id_length=0
```

The default value is 0 which means there is no maximum enforced, which is
backwards compatible behavior.

During replication if maximum is hit by a document, that document is 
skipped,
an error is written to the log:

```
Replicator: document id `a...` from source db  
`http://.../cdyno-001/` is too long, ignoring.
```

and `"doc_write_failures"` statistic is bumped.

COUCHDB-3291

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

$ git pull https://github.com/cloudant/couchdb-couch-replicator 
couchdb-3291-limit-doc-id-size-in-replicator

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

https://github.com/apache/couchdb-couch-replicator/pull/54.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 #54


commit 3ff2d83893481afd68025a52a6d859a2efaf0bcf
Author: Nick Vatamaniuc 
Date:   2017-02-03T23:00:37Z

Allow configuring maximum document ID length during replication

Currently due to a bug in http parser and lack of document ID length
enforcement, large document IDs will break replication jobs. Large IDs
will pass through the _change feed, revs diffs,  but then fail
during open_revs get request. open_revs request will keep retrying until
it gives up after long enough time, then replication task crashes and
restart again with the same pattern. The current effective limit is
around 8k or so. (The buffer size default 8192 and if the first line
of the request is larger than that, request will fail).

(See http://erlang.org/pipermail/erlang-questions/2011-June/059567.html
for more information about the possible failure mechanism).

Bypassing the parser bug by increasing recbuf size, will alow replication
to finish, however that means simply spreading the abnormal document through
the rest of the system, and might not be desirable always.

Also once long document IDs have been inserted in the source DB. Simply 
deleting
them doesn't work as they'd still appear in the change feed. They'd have to
be purged or somehow skipped during the replication step. This commit helps
do the later.

Operators can configure maximum length via this setting:
```
  replicator.max_document_id_length=0
```

The default value is 0 which means there is no maximum enforced, which is
backwards compatible behavior.

During replication if maximum is hit by a document, that document is 
skipped,
an error is written to the log:

```
Replicator: document id `a...` from source db  
`http://.../cdyno-001/` is too long, ignoring.
```

and `"doc_write_failures"` statistic is bumped.

COUCHDB-3291




> Excessivly long document IDs prevent replicator from making progress
> 
>
> Key: COUCHDB-3291
> URL: https://issues.apache.org/jira/browse/COUCHDB-3291
> Project: CouchDB
>   

[GitHub] couchdb-couch-replicator pull request #54: Allow configuring maximum documen...

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

https://github.com/apache/couchdb-couch-replicator/pull/54

Allow configuring maximum document ID length during replication

Currently due to a bug in http parser and lack of document ID length
enforcement, large document IDs will break replication jobs. Large IDs
will pass through the _change feed, revs diffs,  but then fail
during open_revs get request. open_revs request will keep retrying until
it gives up after long enough time, then replication task crashes and
restart again with the same pattern. The current effective limit is
around 8k or so. (The buffer size default 8192 and if the first line
of the request is larger than that, request will fail).

(See http://erlang.org/pipermail/erlang-questions/2011-June/059567.html
for more information about the possible failure mechanism).

Bypassing the parser bug by increasing recbuf size, will alow replication
to finish, however that means simply spreading the abnormal document through
the rest of the system, and might not be desirable always.

Also once long document IDs have been inserted in the source DB. Simply 
deleting
them doesn't work as they'd still appear in the change feed. They'd have to
be purged or somehow skipped during the replication step. This commit helps
do the later.

Operators can configure maximum length via this setting:
```
  replicator.max_document_id_length=0
```

The default value is 0 which means there is no maximum enforced, which is
backwards compatible behavior.

During replication if maximum is hit by a document, that document is 
skipped,
an error is written to the log:

```
Replicator: document id `a...` from source db  
`http://.../cdyno-001/` is too long, ignoring.
```

and `"doc_write_failures"` statistic is bumped.

COUCHDB-3291

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

$ git pull https://github.com/cloudant/couchdb-couch-replicator 
couchdb-3291-limit-doc-id-size-in-replicator

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

https://github.com/apache/couchdb-couch-replicator/pull/54.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 #54


commit 3ff2d83893481afd68025a52a6d859a2efaf0bcf
Author: Nick Vatamaniuc 
Date:   2017-02-03T23:00:37Z

Allow configuring maximum document ID length during replication

Currently due to a bug in http parser and lack of document ID length
enforcement, large document IDs will break replication jobs. Large IDs
will pass through the _change feed, revs diffs,  but then fail
during open_revs get request. open_revs request will keep retrying until
it gives up after long enough time, then replication task crashes and
restart again with the same pattern. The current effective limit is
around 8k or so. (The buffer size default 8192 and if the first line
of the request is larger than that, request will fail).

(See http://erlang.org/pipermail/erlang-questions/2011-June/059567.html
for more information about the possible failure mechanism).

Bypassing the parser bug by increasing recbuf size, will alow replication
to finish, however that means simply spreading the abnormal document through
the rest of the system, and might not be desirable always.

Also once long document IDs have been inserted in the source DB. Simply 
deleting
them doesn't work as they'd still appear in the change feed. They'd have to
be purged or somehow skipped during the replication step. This commit helps
do the later.

Operators can configure maximum length via this setting:
```
  replicator.max_document_id_length=0
```

The default value is 0 which means there is no maximum enforced, which is
backwards compatible behavior.

During replication if maximum is hit by a document, that document is 
skipped,
an error is written to the log:

```
Replicator: document id `a...` from source db  
`http://.../cdyno-001/` is too long, ignoring.
```

and `"doc_write_failures"` statistic is bumped.

COUCHDB-3291




---
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-3291) Excessivly long document IDs prevent replicator from making progress

2017-02-03 Thread Nick Vatamaniuc (JIRA)
Nick Vatamaniuc created COUCHDB-3291:


 Summary: Excessivly long document IDs prevent replicator from 
making progress
 Key: COUCHDB-3291
 URL: https://issues.apache.org/jira/browse/COUCHDB-3291
 Project: CouchDB
  Issue Type: Bug
Reporter: Nick Vatamaniuc


Currently there is not protection in couchdb from creating IDs which are too 
long. So large IDs will hit various implicit limits which usually results in 
unpredictable failure modes.

On such example implicit limit is hit in the replicator code. Replicate usually 
fetches document IDs in a bulk-like call either gets them via changes feed, 
computes revs_diffs in a post or inserts them with bulk_docs, except one case 
when it fetch open_revs. There it uses a single GET request. That requests 
fails because there is a bug / limitation in the http parser. The first GET 
line in the http request has to fit in the receive buffer for the receiving 
socket. 

Increasing that buffer allow passing through larger http requests lines. In 
configuration options it can be manipulated as 
{code}
 chttpd.server_options="[...,{recbuf, 32768},...]"
{code}

Steve Vinoski mentions something about a possible bug in http packet parser 
code as well:

http://erlang.org/pipermail/erlang-questions/2011-June/059567.html

Tracing this a bit I see that a proper mochiweb request is never even created 
and instead request hangs. So that confirms it further. It seems in the code 
here:

https://github.com/apache/couchdb-mochiweb/blob/bd6ae7cbb371666a1f68115056f7b30d13765782/src/mochiweb_http.erl#L90

The timeout clause is hit. Adding a catchall exception I get the 
{tcp_error,#Port<0.40682>,emsgsize} message which we don't handle. Seems like a 
sane place to throw a 413 or such there.

There are probably multiple ways to address the issue:

 * Increase mochiweb listener buffer to fit larger doc ids. However that is a 
separate bug and using it to control document size during replication is not 
reliable. Moreover that would allow larger IDs to propagate through the system 
during replication, then would have to configure all future replication source 
with the same maximum recbuf value.

 * Introduce a validation step in {code} couch_doc:validate_docid {code}. 
Currently that code doesn't read from config files and is in the hotpath. Added 
a config read in there might reduce performance.  If that is enabled it would 
stop creating new documents with large ids. But have to decide how to handle 
already existing IDs which are larger than the limit.

 * Introduce a validation/bypass in the replicator. Specifically targeting 
replicator might help prevent propagation of large IDs during replication. 
There is a already a similar case of skipping writing large attachment or large 
documents (which exceed request size) and bumping {code} doc_write_failures 
{code}.




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


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

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

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

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

Commit 8da891bb889f75abaad23b37c38958c3c0a49b15 in couchdb-couch's branch 
refs/heads/COUCHDB-3287-pluggable-storage-engines from [~paul.joseph.davis]
[ https://git-wip-us.apache.org/repos/asf?p=couchdb-couch.git;h=8da891b ]

Add storage engine test suite

This allows other storage engine implementations to reuse the same exact
test suite without having to resort to shenanigans like keeping vendored
copies up to date.

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-3287) Implement pluggable storage engines

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

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

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

Commit d980aa53a847f30d8afa9ba0f9bdc7dea84b0794 in couchdb-couch's branch 
refs/heads/COUCHDB-3287-pluggable-storage-engines from [~paul.joseph.davis]
[ https://git-wip-us.apache.org/repos/asf?p=couchdb-couch.git;h=d980aa5 ]

Allow for mixed db record definitions

This change is to account for differences in the #db record when a
cluster is operating in a mixed version state (i.e., when running a
rolling reboot to upgrade).

There are only a few operations that are valid on #db records that are
shared between nodes so rather than attempt to map the entire API
between the old and new records we're limiting to just the required API
calls.

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-3287) Implement pluggable storage engines

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

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

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

Commit 581d085efee4d73da771f670d79dc5f7b5f96099 in couchdb-couch's branch 
refs/heads/COUCHDB-3287-pluggable-storage-engines from [~paul.joseph.davis]
[ https://git-wip-us.apache.org/repos/asf?p=couchdb-couch.git;h=581d085 ]

Add legacy storage engine implementation

This is the legacy storage engine code. I've kept it as part of the core
couch application because we'll always need to have at least one
storage engine available.

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-02-03 Thread ASF subversion and git services (JIRA)

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

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

Commit 3f8a0d0d94dcaff170b7d81429c5ccb58cd055a2 in couchdb-couch's branch 
refs/heads/COUCHDB-3287-pluggable-storage-engines from [~paul.joseph.davis]
[ https://git-wip-us.apache.org/repos/asf?p=couchdb-couch.git;h=3f8a0d0 ]

Move calculate_start_seq and owner_of

These functions were originally implemented in fabric_rpc.erl where they
really didn't belong. Moving them to couch_db.erl allows us to keep the
unit tests intact rather than just removing them now that the #db record
is being made private.

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)


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

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

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

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

Commit 3cd30837e3d11719ef15944198a6c5365bfd6033 in couchdb-couch's branch 
refs/heads/COUCHDB-3287-pluggable-storage-engines from [~paul.joseph.davis]
[ https://git-wip-us.apache.org/repos/asf?p=couchdb-couch.git;h=3cd3083 ]

Add couch_db_engine module

This is the primary API for pluggable storage engines. This module
serves as both a behavior and a call dispatch module for handling the
engine state updates.

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-3287) Implement pluggable storage engines

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

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

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

Commit b1ea25378dc85c57a471bd30661e0bd94ee5b983 in couchdb-mem3's branch 
refs/heads/COUCHDB-3287-pluggable-storage-engines 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-3288) Remove public db record

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

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

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

Commit c9fc3612946b8aedf89fa2978c6e1259fdbad41d in couchdb-couch's branch 
refs/heads/COUCHDB-3287-pluggable-storage-engines from [~paul.joseph.davis]
[ https://git-wip-us.apache.org/repos/asf?p=couchdb-couch.git;h=c9fc361 ]

Remove public access to the db record

This completes the removal of public access to the db record from the
couch application. The large majority of which is removing direct access
to the #db.name, #db.main_pid, and #db.update_seq fields.

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)


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

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

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

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

Commit ef8e4315d517b12df643f48315d07e0bf0b31ba3 in couchdb-couch's branch 
refs/heads/COUCHDB-3287-pluggable-storage-engines from [~paul.joseph.davis]
[ https://git-wip-us.apache.org/repos/asf?p=couchdb-couch.git;h=ef8e431 ]

Implement pluggable storage engines

This change moves the main work of storage engines to run through the
new couch_db_engine behavior. This allows us to replace the storage
engine with different implementations that can be tailored to specific
work loads and environments.

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-3287) Implement pluggable storage engines

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

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

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

Commit 6d00baed15306ad952a93ce6254efab96bd0a730 in couchdb-mem3's branch 
refs/heads/COUCHDB-3287-pluggable-storage-engines 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-02-03 Thread ASF subversion and git services (JIRA)

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

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

Commit 3de48d23ba661db4e4f856a1893f7cb69ed45131 in couchdb-mem3's branch 
refs/heads/COUCHDB-3287-pluggable-storage-engines 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)


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

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

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

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

Commit 7cc45bbae2723a28dad46cc419ea2ffa93b351c9 in couchdb-couch's branch 
refs/heads/COUCHDB-3287-pluggable-storage-engines from [~paul.joseph.davis]
[ https://git-wip-us.apache.org/repos/asf?p=couchdb-couch.git;h=7cc45bb ]

Remove public access to the 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)


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

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

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

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

Commit e4b4b57dd01615be86f36044a24db31e38a9ae1c in couchdb-couch's branch 
refs/heads/COUCHDB-3287-pluggable-storage-engines from [~paul.joseph.davis]
[ https://git-wip-us.apache.org/repos/asf?p=couchdb-couch.git;h=e4b4b57 ]

Update couch_server to not use the db record

This removes introspection of the #db record by couch_server. While its
required for the pluggable storage engine upgrade, its also nice to
remove the hacky overloading of #db record fields for couch_server
logic.

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)


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

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

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

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

Commit d980aa53a847f30d8afa9ba0f9bdc7dea84b0794 in couchdb-couch's branch 
refs/heads/COUCHDB-3287-mixed-db-records from [~paul.joseph.davis]
[ https://git-wip-us.apache.org/repos/asf?p=couchdb-couch.git;h=d980aa5 ]

Allow for mixed db record definitions

This change is to account for differences in the #db record when a
cluster is operating in a mixed version state (i.e., when running a
rolling reboot to upgrade).

There are only a few operations that are valid on #db records that are
shared between nodes so rather than attempt to map the entire API
between the old and new records we're limiting to just the required API
calls.

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-02-03 Thread ASF subversion and git services (JIRA)

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

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

Commit 7cc45bbae2723a28dad46cc419ea2ffa93b351c9 in couchdb-couch's branch 
refs/heads/COUCHDB-3287-mixed-db-records from [~paul.joseph.davis]
[ https://git-wip-us.apache.org/repos/asf?p=couchdb-couch.git;h=7cc45bb ]

Remove public access to the 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)


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

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

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

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

Commit c247576fe60bb348c131b0662254eeadb0918a9c in couchdb-mem3's branch 
refs/heads/COUCHDB-3287-pluggable-storage-engines from [~paul.joseph.davis]
[ https://git-wip-us.apache.org/repos/asf?p=couchdb-mem3.git;h=c247576 ]

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-3287) Implement pluggable storage engines

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

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

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

Commit 1d0e2f8495daf0c84b3b74950b6f426cc185cabc in couchdb-mem3's branch 
refs/heads/COUCHDB-3287-pluggable-storage-engines from [~paul.joseph.davis]
[ https://git-wip-us.apache.org/repos/asf?p=couchdb-mem3.git;h=1d0e2f8 ]

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-02-03 Thread ASF subversion and git services (JIRA)

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

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

Commit 03a54cda67ef300242f8554e5f8dbb00c9ce3f54 in couchdb-fabric's branch 
refs/heads/COUCHDB-3287-pluggable-storage-engines from [~paul.joseph.davis]
[ https://git-wip-us.apache.org/repos/asf?p=couchdb-fabric.git;h=03a54cd ]

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)


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

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

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

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

Commit a02996a74fb82eadcee5cc5d6ac2b738b4978252 in couchdb-fabric's branch 
refs/heads/COUCHDB-3287-pluggable-storage-engines from [~paul.joseph.davis]
[ https://git-wip-us.apache.org/repos/asf?p=couchdb-fabric.git;h=a02996a ]

Update to use new 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-3287) Implement pluggable storage engines

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

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

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

Commit fce3d3950494a4fdd4c76c67ae5eef6e769de343 in couchdb-fabric's branch 
refs/heads/COUCHDB-3287-pluggable-storage-engines from [~paul.joseph.davis]
[ https://git-wip-us.apache.org/repos/asf?p=couchdb-fabric.git;h=fce3d39 ]

Pass the storage engine option to RPC workers

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-02-03 Thread ASF subversion and git services (JIRA)

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

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

Commit 99aeaecb5c23bdc3bfb098f1d71ffab827f1d6e2 in couchdb-couch-replicator's 
branch refs/heads/COUCHDB-3287-pluggable-storage-engines from 
[~paul.joseph.davis]
[ 
https://git-wip-us.apache.org/repos/asf?p=couchdb-couch-replicator.git;h=99aeaec
 ]

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)


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

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

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

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

Commit bfcda98e4b6fbcc7492fcbb9e2c2641845ff8213 in couchdb-couch-replicator's 
branch refs/heads/COUCHDB-3287-pluggable-storage-engines from 
[~paul.joseph.davis]
[ 
https://git-wip-us.apache.org/repos/asf?p=couchdb-couch-replicator.git;h=bfcda98
 ]

Update tests to use pluggable storage engine 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-3287) Implement pluggable storage engines

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

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

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

Commit 5cdd8b6ebc98e8d6a51c2702ba254550fe339abc in couchdb-couch-mrview's 
branch refs/heads/COUCHDB-3287-pluggable-storage-engines from 
[~paul.joseph.davis]
[ https://git-wip-us.apache.org/repos/asf?p=couchdb-couch-mrview.git;h=5cdd8b6 ]

Update to use 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-02-03 Thread ASF subversion and git services (JIRA)

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

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

Commit a2714473328854fb57bcca8040a6b7b52906ecc7 in couchdb-couch-mrview's 
branch refs/heads/COUCHDB-3287-pluggable-storage-engines from 
[~paul.joseph.davis]
[ https://git-wip-us.apache.org/repos/asf?p=couchdb-couch-mrview.git;h=a271447 ]

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)


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

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

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

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

Commit 81bcb1f843df55bdb6e9c82837f589489ebbea09 in couchdb-couch-index's branch 
refs/heads/COUCHDB-3287-pluggable-storage-engines from [~paul.joseph.davis]
[ https://git-wip-us.apache.org/repos/asf?p=couchdb-couch-index.git;h=81bcb1f ]

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)


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

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

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

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

Commit 4e779f239e1f259ebb50948ad26ec21aac1135d3 in couchdb-couch-index's branch 
refs/heads/COUCHDB-3287-pluggable-storage-engines from [~paul.joseph.davis]
[ https://git-wip-us.apache.org/repos/asf?p=couchdb-couch-index.git;h=4e779f2 ]

Update API for use with pluggable storage engines

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-3287) Implement pluggable storage engines

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

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

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

Commit fb73a5d3f9a4b11447852035f6ea0a5fc59b9a4a in couchdb-chttpd's branch 
refs/heads/COUCHDB-3287-pluggable-storage-engines from [~paul.joseph.davis]
[ https://git-wip-us.apache.org/repos/asf?p=couchdb-chttpd.git;h=fb73a5d ]

Support engine selection from the HTTP 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-02-03 Thread ASF subversion and git services (JIRA)

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

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

Commit dddab3f0894200d53d49ed49f9360423976725d9 in couchdb-chttpd's branch 
refs/heads/COUCHDB-3287-pluggable-storage-engines from [~paul.joseph.davis]
[ https://git-wip-us.apache.org/repos/asf?p=couchdb-chttpd.git;h=dddab3f ]

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)


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

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

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

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

Commit dddab3f0894200d53d49ed49f9360423976725d9 in couchdb-chttpd's branch 
refs/heads/COUCHDB-3288-remove-public-db-record from [~paul.joseph.davis]
[ https://git-wip-us.apache.org/repos/asf?p=couchdb-chttpd.git;h=dddab3f ]

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)


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

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

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

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

Commit 3f8a0d0d94dcaff170b7d81429c5ccb58cd055a2 in couchdb-couch's branch 
refs/heads/COUCHDB-3288-remove-public-db-record from [~paul.joseph.davis]
[ https://git-wip-us.apache.org/repos/asf?p=couchdb-couch.git;h=3f8a0d0 ]

Move calculate_start_seq and owner_of

These functions were originally implemented in fabric_rpc.erl where they
really didn't belong. Moving them to couch_db.erl allows us to keep the
unit tests intact rather than just removing them now that the #db record
is being made private.

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)


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

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

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

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

Commit c9fc3612946b8aedf89fa2978c6e1259fdbad41d in couchdb-couch's branch 
refs/heads/COUCHDB-3288-remove-public-db-record from [~paul.joseph.davis]
[ https://git-wip-us.apache.org/repos/asf?p=couchdb-couch.git;h=c9fc361 ]

Remove public access to the db record

This completes the removal of public access to the db record from the
couch application. The large majority of which is removing direct access
to the #db.name, #db.main_pid, and #db.update_seq fields.

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)


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

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

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

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

Commit e4b4b57dd01615be86f36044a24db31e38a9ae1c in couchdb-couch's branch 
refs/heads/COUCHDB-3288-remove-public-db-record from [~paul.joseph.davis]
[ https://git-wip-us.apache.org/repos/asf?p=couchdb-couch.git;h=e4b4b57 ]

Update couch_server to not use the db record

This removes introspection of the #db record by couch_server. While its
required for the pluggable storage engine upgrade, its also nice to
remove the hacky overloading of #db record fields for couch_server
logic.

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)