<commit_before>.. Licensed under the Apache License, Version 2.0 (the "License"); you may not
.. use this file except in compliance with the License. You may obtain a copy of
.. the License at
..
..   http://www.apache.org/licenses/LICENSE-2.0
..
.. Unless required by applicable law or agreed to in writing, software
.. distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
.. WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
.. License for the specific language governing permissions and limitations under
.. the License.

.. _replication/protocol:

============================
CouchDB Replication Protocol
============================

The **CouchDB Replication protocol** is a protocol for synchronizing
documents between 2 peers over HTTP/1.1.

Language
--------

The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
"SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this
document are to be interpreted as described in :rfc:`2119`.


Goals
-----

The CouchDB Replication protocol is a synchronization protocol for
synchronizing documents between 2 peers over HTTP/1.1.

In theory the CouchDB protocol can be used between products that
implement it. However the reference implementation, written in Erlang_, is
provided by the couch_replicator_ module available in Apache CouchDB.


The CouchDB_ replication protocol is using the `CouchDB REST API
<http://wiki.apache.org/couchdb/Reference>`_ and so is based on HTTP and
the Apache CouchDB MVC Data model. The primary goal of this
specification is to describe the CouchDB replication algorithm.
<commit_msg>s/MVC/MVCC in replication protocol docs<commit_after>.. Licensed under the Apache License, Version 2.0 (the "License"); you may not
.. use this file except in compliance with the License. You may obtain a copy of
.. the License at
..
..   http://www.apache.org/licenses/LICENSE-2.0
..
.. Unless required by applicable law or agreed to in writing, software
.. distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
.. WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
.. License for the specific language governing permissions and limitations under
.. the License.

.. _replication/protocol:

============================
CouchDB Replication Protocol
============================

The **CouchDB Replication protocol** is a protocol for synchronizing
documents between 2 peers over HTTP/1.1.

Language
--------

The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
"SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this
document are to be interpreted as described in :rfc:`2119`.


Goals
-----

The CouchDB Replication protocol is a synchronization protocol for
synchronizing documents between 2 peers over HTTP/1.1.

In theory the CouchDB protocol can be used between products that
implement it. However the reference implementation, written in Erlang_, is
provided by the couch_replicator_ module available in Apache CouchDB.


The CouchDB_ replication protocol is using the `CouchDB REST API
<http://wiki.apache.org/couchdb/Reference>`_ and so is based on HTTP and
the Apache CouchDB MVCC Data model. The primary goal of this
specification is to describe the CouchDB replication algorithm.

{'fraction_non_alphanumeric': 0.1116166211707613, 'fraction_numerical': 0.008492569002123142, 'mean_word_length': 4.3279483037156705, 'pattern_counts': {'":': 0, '<': 5, '<?xml version=': 0, '>': 5, 'https://': 0, 'lorem ipsum': 0, 'www.': 2, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '1198738', 'n_tokens_mistral': 887, 'n_tokens_neox': 851, 'n_words': 426}