[GitHub] couchdb-couch-replicator pull request #54: Allow configuring maximum documen...
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...
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
[ 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 VatamaniucDate: 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...
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 VatamaniucDate: 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
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
[ 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
[ 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
[ 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
[ 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
[ 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
[ 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
[ 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
[ 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
[ 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
[ 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
[ 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
[ 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
[ 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
[ 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
[ 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
[ 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
[ 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
[ 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
[ 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
[ 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
[ 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
[ 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
[ 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
[ 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
[ 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
[ 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
[ 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
[ 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
[ 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
[ 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
[ 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)