€cdocutils.nodes
document
q)q}q(U nametypesq}q(X object replication policyqNX summary of replication processqNX replication overviewqNX node replication policyq NX replicationoverviewq
ˆX historyqˆuUsubstitution_defsq}q
Uparse_messagesq]qUcurrent_sourceqNU
decorationqNUautofootnote_startqKUnameidsq}q(hUobject-replication-policyqhUsummary-of-replication-processqhUreplication-overviewqh Unode-replication-policyqh
UreplicationoverviewqhUhistoryquUchildrenq]q(cdocutils.nodes
target
q)q}q(U rawsourceq X .. _ReplicationOverview:Uparentq!hUsourceq"Xo /var/lib/jenkins/jobs/API_Documentation_trunk/workspace/api-documentation/source/design/ReplicationOverview.txtq#Utagnameq$Utargetq%U
attributesq&}q'(Uidsq(]Ubackrefsq)]Udupnamesq*]Uclassesq+]Unamesq,]Urefidq-huUlineq.KUdocumentq/hh]ubcdocutils.nodes
section
q0)q1}q2(h U h!hh"h#Uexpect_referenced_by_nameq3}q4h
hsh$Usectionq5h&}q6(h*]h+]h)]h(]q7(hheh,]q8(hh
euh.Kh/hUexpect_referenced_by_idq9}q:hhsh]q;(cdocutils.nodes
title
q<)q=}q>(h X Replication Overviewq?h!h1h"h#h$Utitleq@h&}qA(h*]h+]h)]h(]h,]uh.Kh/hh]qBcdocutils.nodes
Text
qCX Replication OverviewqD…qE}qF(h h?h!h=ubaubcsphinx.addnodes
index
qG)qH}qI(h U h!h1h"h#h$UindexqJh&}qK(h(]h)]h*]h+]h,]UentriesqL]qM((UsingleqNX Use Case 09Uindex-0qOU NtqP(hNX UC09hOU NtqQ(hNX Replicate MNhOU NtqR(hNX replicatehOU NtqSeUinlineqT‰uh.Kh/hh]ubh)qU}qV(h U h!h1h"h#h$h%h&}qW(h(]h)]h*]h+]h,]h-hOuh.Kh/hh]ubcdocutils.nodes
definition_list
qX)qY}qZ(h U h!h1h"h#h3}h$Udefinition_listq[h&}q\(h*]h+]h)]h(]q]hOah,]uh.Nh/hh9}q^hOhUsh]q_cdocutils.nodes
definition_list_item
q`)qa}qb(h X4 Revision History
View document revision history_.
h!hYh"h#h$Udefinition_list_itemqch&}qd(h*]h+]h)]h(]h,]uh.Kh]qe(cdocutils.nodes
term
qf)qg}qh(h X Revision Historyqih!hah"h#h$Utermqjh&}qk(h*]h+]h)]h(]h,]uh.Kh]qlhCX Revision Historyqm…qn}qo(h hih!hgubaubcdocutils.nodes
definition
qp)qq}qr(h U h&}qs(h*]h+]h)]h(]h,]uh!hah]qtcdocutils.nodes
paragraph
qu)qv}qw(h X View document revision history_.h!hqh"h#h$U paragraphqxh&}qy(h*]h+]h)]h(]h,]uh.K h]qz(hCX View document revision q{…q|}q}(h X View document revision h!hvubcdocutils.nodes
reference
q~)q}q€(h X history_UresolvedqKh!hvh$U referenceq‚h&}qƒ(UnameX historyq„Urefuriq…X™ https://redmine.dataone.org/projects/d1/repository/changes/documents/Projects/cicore/architecture/api-documentation/source/design/ReplicationOverview.txtq†h(]h)]h*]h+]h,]uh]q‡hCX historyqˆ…q‰}qŠ(h U h!hubaubhCX .…q‹}qŒ(h X .h!hvubeubah$U
definitionqubeubaubhu)qŽ}q(h Xò DataONE provides replication services to satisfy both data and metadata preservation needs and to provide the potential for fault-tolerance and load balancing services for data and metadata access. Tier 4 Member Nodes within the federation are set up to house replicas of content, and provide this service to other Member Nodes based on certain policy agreements. Replication is handled on a per-object basis within DataONE, with the RightsHolder and/or Authoritative Member Node controlling the ReplicationPolicy for each object, which determines whether it will be replicated. In addition, each Member Node decides whether it will accept replicas in general (by supporting the Tier 4 :class:`CNReplication` API and setting `replicate=true`), and can decide whether it will accept any given request to replicate an object. Coordinating Nodes monitor the :class:`Types.ReplicationPolicy` for each object in DataONE, and ensure that the appropriate :term:`replication target` nodes house an accurate replica of the object. Each replica of an object is recorded by the Coordinating Nodes, so when a consumer wishes to retrieve the object, they can use :func:`CNRead.resolve` to list the replicas and :func:`MNRead.get` to retrieve any of the replicas in the network.qh!h1h"h#h$hxh&}q‘(h*]h+]h)]h(]h,]uh.K
h/hh]q’(hCX° DataONE provides replication services to satisfy both data and metadata preservation needs and to provide the potential for fault-tolerance and load balancing services for data and metadata access. Tier 4 Member Nodes within the federation are set up to house replicas of content, and provide this service to other Member Nodes based on certain policy agreements. Replication is handled on a per-object basis within DataONE, with the RightsHolder and/or Authoritative Member Node controlling the ReplicationPolicy for each object, which determines whether it will be replicated. In addition, each Member Node decides whether it will accept replicas in general (by supporting the Tier 4 q“…q”}q•(h X° DataONE provides replication services to satisfy both data and metadata preservation needs and to provide the potential for fault-tolerance and load balancing services for data and metadata access. Tier 4 Member Nodes within the federation are set up to house replicas of content, and provide this service to other Member Nodes based on certain policy agreements. Replication is handled on a per-object basis within DataONE, with the RightsHolder and/or Authoritative Member Node controlling the ReplicationPolicy for each object, which determines whether it will be replicated. In addition, each Member Node decides whether it will accept replicas in general (by supporting the Tier 4 h!hŽubcsphinx.addnodes
pending_xref
q–)q—}q˜(h X :class:`CNReplication`q™h!hŽh"h#h$Upending_xrefqšh&}q›(UreftypeX classUrefwarnqœ‰U reftargetqX
CNReplicationU refdomainX pyqžh(]h)]Urefexplicit‰h*]h+]h,]UrefdocqŸX design/ReplicationOverviewq Upy:classq¡NU py:moduleq¢Nuh.K
h]q£cdocutils.nodes
literal
q¤)q¥}q¦(h h™h&}q§(h*]h+]q¨(Uxrefq©hžX py-classqªeh)]h(]h,]uh!h—h]q«hCX
CNReplicationq¬…q}q®(h U h!h¥ubah$Uliteralq¯ubaubhCX API and setting q°…q±}q²(h X API and setting h!hŽubcdocutils.nodes
title_reference
q³)q´}qµ(h X `replicate=true`h&}q¶(h*]h+]h)]h(]h,]uh!hŽh]q·hCX replicate=trueq¸…q¹}qº(h U h!h´ubah$Utitle_referenceq»ubhCXr ), and can decide whether it will accept any given request to replicate an object. Coordinating Nodes monitor the q¼…q½}q¾(h Xr ), and can decide whether it will accept any given request to replicate an object. Coordinating Nodes monitor the h!hŽubh–)q¿}qÀ(h X :class:`Types.ReplicationPolicy`qÁh!hŽh"h#h$hšh&}qÂ(UreftypeX classhœ‰hX Types.ReplicationPolicyU refdomainX pyqÃh(]h)]Urefexplicit‰h*]h+]h,]hŸh h¡Nh¢Nuh.K
h]qÄh¤)qÅ}qÆ(h hÁh&}qÇ(h*]h+]qÈ(h©hÃX py-classqÉeh)]h(]h,]uh!h¿h]qÊhCX Types.ReplicationPolicyqË…qÌ}qÍ(h U h!hÅubah$h¯ubaubhCX= for each object in DataONE, and ensure that the appropriate qÎ…qÏ}qÐ(h X= for each object in DataONE, and ensure that the appropriate h!hŽubh–)qÑ}qÒ(h X :term:`replication target`qÓh!hŽh"h#h$hšh&}qÔ(UreftypeX termhœˆhX replication targetU refdomainX stdqÕh(]h)]Urefexplicit‰h*]h+]h,]hŸh uh.K
h]qÖcdocutils.nodes
inline
q×)qØ}qÙ(h hÓh&}qÚ(h*]h+]qÛ(h©hÕX std-termqÜeh)]h(]h,]uh!hÑh]qÝhCX replication targetqÞ…qß}qà(h U h!hØubah$hTubaubhCX° nodes house an accurate replica of the object. Each replica of an object is recorded by the Coordinating Nodes, so when a consumer wishes to retrieve the object, they can use qá…qâ}qã(h X° nodes house an accurate replica of the object. Each replica of an object is recorded by the Coordinating Nodes, so when a consumer wishes to retrieve the object, they can use h!hŽubh–)qä}qå(h X :func:`CNRead.resolve`qæh!hŽh"h#h$hšh&}qç(UreftypeX funchœ‰hX CNRead.resolveU refdomainX pyqèh(]h)]Urefexplicit‰h*]h+]h,]hŸh h¡Nh¢Nuh.K
h]qéh¤)qê}që(h hæh&}qì(h*]h+]qí(h©hèX py-funcqîeh)]h(]h,]uh!häh]qïhCX CNRead.resolve()qð…qñ}qò(h U h!hêubah$h¯ubaubhCX to list the replicas and qó…qô}qõ(h X to list the replicas and h!hŽubh–)qö}q÷(h X :func:`MNRead.get`qøh!hŽh"h#h$hšh&}qù(UreftypeX funchœ‰hX
MNRead.getU refdomainX pyqúh(]h)]Urefexplicit‰h*]h+]h,]hŸh h¡Nh¢Nuh.K
h]qûh¤)qü}qý(h høh&}qþ(h*]h+]qÿ(h©húX py-funcr eh)]h(]h,]uh!höh]r hCX MNRead.get()r …r }r (h U h!hüubah$h¯ubaubhCX0 to retrieve any of the replicas in the network.r …r }r (h X0 to retrieve any of the replicas in the network.h!hŽubeubh0)r }r (h U h!h1h"h#h$h5h&}r
(h*]h+]h)]h(]r hah,]r hauh.Kh/hh]r
(h<)r }r (h X Summary of Replication processr h!j h"h#h$h@h&}r (h*]h+]h)]h(]h,]uh.Kh/hh]r hCX Summary of Replication processr …r }r (h j h!j ubaubhu)r }r (h Xî To fulfill the :class:`Types.ReplicationPolicy` for each object, the CN schedules each object to be replicated with one of the Tier 4 MNs that are willing to host replicas. Replication is an asynchronous, multi-step process, in order to allow for non-blocking replication of objects that would take more than a few seconds to copy over the network. The process originates with 1) the CN calling :func:`MNReplication.replicate` on the target MN, which is a request for the MN to replicate a particular object. The MN responds with a HTTP 200 if it is willing and able to attempt the replication and house the object, and the CN marks the replica request as REQUESTED. See :class:`Types.ReplicationStatus` for the definition of the status values. Then, 2) the target MN calls the source :func:`MNRead.getReplica` to request the bytes of the object, and if they are transferred correctly, then 3) calls :func:`CNReplication.setReplicationStatus` to indicate that the request has been COMPLETED, or if it FAILED. At this point the replication is finished. If the replication fails, the CN then requests that it be replicated elsewhere. If it succeeds, the CN will check in periodically with the MN to verify the checksum of the object held to confirm validity.r h!j h"h#h$hxh&}r (h*]h+]h)]h(]h,]uh.Kh/hh]r (hCX To fulfill the r …r }r (h X To fulfill the h!j ubh–)r }r (h X :class:`Types.ReplicationPolicy`r h!j h"h#h$hšh&}r! (UreftypeX classhœ‰hX Types.ReplicationPolicyU refdomainX pyr" h(]h)]Urefexplicit‰h*]h+]h,]hŸh h¡Nh¢Nuh.Kh]r# h¤)r$ }r% (h j h&}r& (h*]h+]r' (h©j" X py-classr( eh)]h(]h,]uh!j h]r) hCX Types.ReplicationPolicyr* …r+ }r, (h U h!j$ ubah$h¯ubaubhCX^ for each object, the CN schedules each object to be replicated with one of the Tier 4 MNs that are willing to host replicas. Replication is an asynchronous, multi-step process, in order to allow for non-blocking replication of objects that would take more than a few seconds to copy over the network. The process originates with 1) the CN calling r- …r. }r/ (h X^ for each object, the CN schedules each object to be replicated with one of the Tier 4 MNs that are willing to host replicas. Replication is an asynchronous, multi-step process, in order to allow for non-blocking replication of objects that would take more than a few seconds to copy over the network. The process originates with 1) the CN calling h!j ubh–)r0 }r1 (h X :func:`MNReplication.replicate`r2 h!j h"h#h$hšh&}r3 (UreftypeX funchœ‰hX MNReplication.replicateU refdomainX pyr4 h(]h)]Urefexplicit‰h*]h+]h,]hŸh h¡Nh¢Nuh.Kh]r5 h¤)r6 }r7 (h j2 h&}r8 (h*]h+]r9 (h©j4 X py-funcr: eh)]h(]h,]uh!j0 h]r; hCX MNReplication.replicate()r< …r= }r> (h U h!j6 ubah$h¯ubaubhCXö on the target MN, which is a request for the MN to replicate a particular object. The MN responds with a HTTP 200 if it is willing and able to attempt the replication and house the object, and the CN marks the replica request as REQUESTED. See r? …r@ }rA (h Xö on the target MN, which is a request for the MN to replicate a particular object. The MN responds with a HTTP 200 if it is willing and able to attempt the replication and house the object, and the CN marks the replica request as REQUESTED. See h!j ubh–)rB }rC (h X :class:`Types.ReplicationStatus`rD h!j h"h#h$hšh&}rE (UreftypeX classhœ‰hX Types.ReplicationStatusU refdomainX pyrF h(]h)]Urefexplicit‰h*]h+]h,]hŸh h¡Nh¢Nuh.Kh]rG h¤)rH }rI (h jD h&}rJ (h*]h+]rK (h©jF X py-classrL eh)]h(]h,]uh!jB h]rM hCX Types.ReplicationStatusrN …rO }rP (h U h!jH ubah$h¯ubaubhCXR for the definition of the status values. Then, 2) the target MN calls the source rQ …rR }rS (h XR for the definition of the status values. Then, 2) the target MN calls the source h!j ubh–)rT }rU (h X :func:`MNRead.getReplica`rV h!j h"h#h$hšh&}rW (UreftypeX funchœ‰hX MNRead.getReplicaU refdomainX pyrX h(]h)]Urefexplicit‰h*]h+]h,]hŸh h¡Nh¢Nuh.Kh]rY h¤)rZ }r[ (h jV h&}r\ (h*]h+]r] (h©jX X py-funcr^ eh)]h(]h,]uh!jT h]r_ hCX MNRead.getReplica()r` …ra }rb (h U h!jZ ubah$h¯ubaubhCXZ to request the bytes of the object, and if they are transferred correctly, then 3) calls rc …rd }re (h XZ to request the bytes of the object, and if they are transferred correctly, then 3) calls h!j ubh–)rf }rg (h X* :func:`CNReplication.setReplicationStatus`rh h!j h"h#h$hšh&}ri (UreftypeX funchœ‰hX" CNReplication.setReplicationStatusU refdomainX pyrj h(]h)]Urefexplicit‰h*]h+]h,]hŸh h¡Nh¢Nuh.Kh]rk h¤)rl }rm (h jh h&}rn (h*]h+]ro (h©jj X py-funcrp eh)]h(]h,]uh!jf h]rq hCX$ CNReplication.setReplicationStatus()rr …rs }rt (h U h!jl ubah$h¯ubaubhCX= to indicate that the request has been COMPLETED, or if it FAILED. At this point the replication is finished. If the replication fails, the CN then requests that it be replicated elsewhere. If it succeeds, the CN will check in periodically with the MN to verify the checksum of the object held to confirm validity.ru …rv }rw (h X= to indicate that the request has been COMPLETED, or if it FAILED. At this point the replication is finished. If the replication fails, the CN then requests that it be replicated elsewhere. If it succeeds, the CN will check in periodically with the MN to verify the checksum of the object held to confirm validity.h!j ubeubeubh0)rx }ry (h U h!h1h"h#h$h5h&}rz (h*]h+]h)]h(]r{ hah,]r| hauh.Kh/hh]r} (h<)r~ }r (h X Object Replication Policyr€ h!jx h"h#h$h@h&}r (h*]h+]h)]h(]h,]uh.Kh/hh]r‚ hCX Object Replication Policyrƒ …r„ }r… (h j€ h!j~ ubaubhu)r† }r‡ (h X The :class:`Types.ReplicationPolicy` for an object defines if replication should be attempted for this object, and if so, how many replicas should be maintained. It also permits specification of preferred and blocked nodes as potential replication targets.rˆ h!jx h"h#h$hxh&}r‰ (h*]h+]h)]h(]h,]uh.Kh/hh]rŠ (hCX The r‹ …rŒ }r (h X The h!j† ubh–)rŽ }r (h X :class:`Types.ReplicationPolicy`r h!j† h"h#h$hšh&}r‘ (UreftypeX classhœ‰hX Types.ReplicationPolicyU refdomainX pyr’ h(]h)]Urefexplicit‰h*]h+]h,]hŸh h¡Nh¢Nuh.Kh]r“ h¤)r” }r• (h j h&}r– (h*]h+]r— (h©j’ X py-classr˜ eh)]h(]h,]uh!jŽ h]r™ hCX Types.ReplicationPolicyrš …r› }rœ (h U h!j” ubah$h¯ubaubhCXÜ for an object defines if replication should be attempted for this object, and if so, how many replicas should be maintained. It also permits specification of preferred and blocked nodes as potential replication targets.r …rž }rŸ (h XÜ for an object defines if replication should be attempted for this object, and if so, how many replicas should be maintained. It also permits specification of preferred and blocked nodes as potential replication targets.h!j† ubeubhu)r }r¡ (h X If a ReplicationPolicy is provided in the :term:`System Metadata` for an object, then that policy is followed precisely by the Coordinating Nodes when managing replication. In the absence of a defined ReplicationPolicy for an object, DataONE will by default attempt to maintain two replicas for the object, as long as the object's size is below a threshold size that would allow transfer over networks in reasonable time periods. As network transfer capabilities improve among DataONE nodes, this threshold size will be increased.r¢ h!jx h"h#h$hxh&}r£ (h*]h+]h)]h(]h,]uh.Kh/hh]r¤ (hCX* If a ReplicationPolicy is provided in the r¥ …r¦ }r§ (h X* If a ReplicationPolicy is provided in the h!j ubh–)r¨ }r© (h X :term:`System Metadata`rª h!j h"h#h$hšh&}r« (UreftypeX termhœˆhX system metadataU refdomainX stdr¬ h(]h)]Urefexplicit‰h*]h+]h,]hŸh uh.Kh]r h×)r® }r¯ (h jª h&}r° (h*]h+]r± (h©j¬ X std-termr² eh)]h(]h,]uh!j¨ h]r³ hCX System Metadatar´ …rµ }r¶ (h U h!j® ubah$hTubaubhCXÒ for an object, then that policy is followed precisely by the Coordinating Nodes when managing replication. In the absence of a defined ReplicationPolicy for an object, DataONE will by default attempt to maintain two replicas for the object, as long as the object's size is below a threshold size that would allow transfer over networks in reasonable time periods. As network transfer capabilities improve among DataONE nodes, this threshold size will be increased.r· …r¸ }r¹ (h XÒ for an object, then that policy is followed precisely by the Coordinating Nodes when managing replication. In the absence of a defined ReplicationPolicy for an object, DataONE will by default attempt to maintain two replicas for the object, as long as the object's size is below a threshold size that would allow transfer over networks in reasonable time periods. As network transfer capabilities improve among DataONE nodes, this threshold size will be increased.h!j ubeubcdocutils.nodes
literal_block
rº )r» }r¼ (h X
urn:node:KNB
urn:node:PISCO
urn:node:SOMEBADNODE
h!jx h"h#h$U
literal_blockr½ h&}r¾ (Ulinenosr¿ ‰UlanguagerÀ X xmlU xml:spacerÁ Upreserver h(]h)]h*]Uhighlight_argsrà }h+]h,]uh.Kh/hh]rÄ hCX
urn:node:KNB
urn:node:PISCO
urn:node:SOMEBADNODE
rÅ …rÆ }rÇ (h U h!j» ubaubeubh0)rÈ }rÉ (h U h!h1h"h#h$h5h&}rÊ (h*]h+]h)]h(]rË hah,]rÌ h auh.K"h/hh]rÍ (h<)rÎ }rÏ (h X Node Replication PolicyrÐ h!jÈ h"h#h$h@h&}rÑ (h*]h+]h)]h(]h,]uh.K"h/hh]rÒ hCX Node Replication PolicyrÓ …rÔ }rÕ (h jÐ h!jÎ ubaubhu)rÖ }r× (h XS Nodes that wish to serve as a replication target and thereby are available to store replicas of data from around the network set :attr:`Types.Node.replicate` to 'true' in their :class:`Types.Node` description when registering their node. In addition, these nodes must support the Tier 4 :class:`CNReplication` API to allow Coordinating Nodes to perform all necessary operations. Nodes can express constraints on object size, total replication space available, source nodes, and object format types that a node will replicate by providing a :class:`Types.NodeReplicationPolicy` as part of a it's :class:`Types.Node` description. A node may choose to restrict replication from only certain peer nodes, may have file size limits, total allocated size limits, or may want to focus on being a :term:`replication target` for domain-specific object formats.rØ h!jÈ h"h#h$hxh&}rÙ (h*]h+]h)]h(]h,]uh.K#h/hh]rÚ (hCX Nodes that wish to serve as a replication target and thereby are available to store replicas of data from around the network set rÛ …rÜ }rÝ (h X Nodes that wish to serve as a replication target and thereby are available to store replicas of data from around the network set h!jÖ ubh–)rÞ }rß (h X :attr:`Types.Node.replicate`rà h!jÖ h"h#h$hšh&}rá (UreftypeX attrhœ‰hX Types.Node.replicateU refdomainX pyrâ h(]h)]Urefexplicit‰h*]h+]h,]hŸh h¡Nh¢Nuh.K#h]rã h¤)rä }rå (h jà h&}ræ (h*]h+]rç (h©jâ X py-attrrè eh)]h(]h,]uh!jÞ h]ré hCX Types.Node.replicaterê …rë }rì (h U h!jä ubah$h¯ubaubhCX to 'true' in their rí …rî }rï (h X to 'true' in their h!jÖ ubh–)rð }rñ (h X :class:`Types.Node`rò h!jÖ h"h#h$hšh&}ró (UreftypeX classhœ‰hX
Types.NodeU refdomainX pyrô h(]h)]Urefexplicit‰h*]h+]h,]hŸh h¡Nh¢Nuh.K#h]rõ h¤)rö }r÷ (h jò h&}rø (h*]h+]rù (h©jô X py-classrú eh)]h(]h,]uh!jð h]rû hCX
Types.Noderü …rý }rþ (h U h!jö ubah$h¯ubaubhCX[ description when registering their node. In addition, these nodes must support the Tier 4 rÿ …r }r (h X[ description when registering their node. In addition, these nodes must support the Tier 4 h!jÖ ubh–)r }r (h X :class:`CNReplication`r h!jÖ h"h#h$hšh&}r (UreftypeX classhœ‰hX
CNReplicationU refdomainX pyr h(]h)]Urefexplicit‰h*]h+]h,]hŸh h¡Nh¢Nuh.K#h]r h¤)r }r (h j h&}r
(h*]h+]r (h©j X py-classr eh)]h(]h,]uh!j h]r
hCX
CNReplicationr …r }r (h U h!j ubah$h¯ubaubhCXè API to allow Coordinating Nodes to perform all necessary operations. Nodes can express constraints on object size, total replication space available, source nodes, and object format types that a node will replicate by providing a r …r }r (h Xè API to allow Coordinating Nodes to perform all necessary operations. Nodes can express constraints on object size, total replication space available, source nodes, and object format types that a node will replicate by providing a h!jÖ ubh–)r }r (h X$ :class:`Types.NodeReplicationPolicy`r h!jÖ h"h#h$hšh&}r (UreftypeX classhœ‰hX Types.NodeReplicationPolicyU refdomainX pyr h(]h)]Urefexplicit‰h*]h+]h,]hŸh h¡Nh¢Nuh.K#h]r h¤)r }r (h j h&}r (h*]h+]r (h©j X py-classr eh)]h(]h,]uh!j h]r hCX Types.NodeReplicationPolicyr …r! }r" (h U h!j ubah$h¯ubaubhCX as part of a it's r# …r$ }r% (h X as part of a it's h!jÖ ubh–)r& }r' (h X :class:`Types.Node`r( h!jÖ h"h#h$hšh&}r) (UreftypeX classhœ‰hX
Types.NodeU refdomainX pyr* h(]h)]Urefexplicit‰h*]h+]h,]hŸh h¡Nh¢Nuh.K#h]r+ h¤)r, }r- (h j( h&}r. (h*]h+]r/ (h©j* X py-classr0 eh)]h(]h,]uh!j& h]r1 hCX
Types.Noder2 …r3 }r4 (h U h!j, ubah$h¯ubaubhCX® description. A node may choose to restrict replication from only certain peer nodes, may have file size limits, total allocated size limits, or may want to focus on being a r5 …r6 }r7 (h X® description. A node may choose to restrict replication from only certain peer nodes, may have file size limits, total allocated size limits, or may want to focus on being a h!jÖ ubh–)r8 }r9 (h X :term:`replication target`r: h!jÖ h"h#h$hšh&}r; (UreftypeX termhœˆhX replication targetU refdomainX stdr< h(]h)]Urefexplicit‰h*]h+]h,]hŸh uh.K#h]r= h×)r> }r? (h j: h&}r@ (h*]h+]rA (h©j< X std-termrB eh)]h(]h,]uh!j8 h]rC hCX replication targetrD …rE }rF (h U h!j> ubah$hTubaubhCX$ for domain-specific object formats.rG …rH }rI (h X$ for domain-specific object formats.h!jÖ ubeubjº )rJ }rK (h Xæ
524288000
1099511627776
urn:node:KNB
urn:node:ESA
urn:node:SANPARKS
FGDC-STD-001.1-1999
eml://ecoinformatics.org/eml-2.1.1
text/csv
h!jÈ h"h#h$j½ h&}rL (j¿ ‰jÀ X xmljÁ j h(]h)]h*]jà }h+]h,]uh.K%h/hh]rM hCXæ
524288000
1099511627776
urn:node:KNB
urn:node:ESA
urn:node:SANPARKS
FGDC-STD-001.1-1999
eml://ecoinformatics.org/eml-2.1.1
text/csv
rN …rO }rP (h U h!jJ ubaubhu)rQ }rR (h X The :attr:`Types.NodeReplicationPolicy.maxObjectSize` indicates the maximum allowable size of an object to be replicated in bytes. The :attr:`Types.NodeReplicationPolicy.spaceAllocated` field sets an upper limit on space usage for replica storage on the given node. Once the spaceAllocated has been reached for a node, the Coordinating Nodes will no longer request that additional replicas be stored on that node. :attr:`Types.NodeReplicationPolicy.allowedNode` is used to list all nodes that are allowed to replicate to the target. If it is absent, then any node may replicate to the target. :attr:`Types.NodeReplicationPolicy.allowedObjectFormat` is used to list all object formats that may be replicated to the target. If it is absent, then any object format may be replicated to the target.rS h!jÈ h"h#h$hxh&}rT (h*]h+]h)]h(]h,]uh.K2h/hh]rU (hCX The rV …rW }rX (h X The h!jQ ubh–)rY }rZ (h X1 :attr:`Types.NodeReplicationPolicy.maxObjectSize`r[ h!jQ h"h#h$hšh&}r\ (UreftypeX attrhœ‰hX) Types.NodeReplicationPolicy.maxObjectSizeU refdomainX pyr] h(]h)]Urefexplicit‰h*]h+]h,]hŸh h¡Nh¢Nuh.K2h]r^ h¤)r_ }r` (h j[ h&}ra (h*]h+]rb (h©j] X py-attrrc eh)]h(]h,]uh!jY h]rd hCX) Types.NodeReplicationPolicy.maxObjectSizere …rf }rg (h U h!j_ ubah$h¯ubaubhCXS indicates the maximum allowable size of an object to be replicated in bytes. The rh …ri }rj (h XS indicates the maximum allowable size of an object to be replicated in bytes. The h!jQ ubh–)rk }rl (h X2 :attr:`Types.NodeReplicationPolicy.spaceAllocated`rm h!jQ h"h#h$hšh&}rn (UreftypeX attrhœ‰hX* Types.NodeReplicationPolicy.spaceAllocatedU refdomainX pyro h(]h)]Urefexplicit‰h*]h+]h,]hŸh h¡Nh¢Nuh.K2h]rp h¤)rq }rr (h jm h&}rs (h*]h+]rt (h©jo X py-attrru eh)]h(]h,]uh!jk h]rv hCX* Types.NodeReplicationPolicy.spaceAllocatedrw …rx }ry (h U h!jq ubah$h¯ubaubhCXæ field sets an upper limit on space usage for replica storage on the given node. Once the spaceAllocated has been reached for a node, the Coordinating Nodes will no longer request that additional replicas be stored on that node. rz …r{ }r| (h Xæ field sets an upper limit on space usage for replica storage on the given node. Once the spaceAllocated has been reached for a node, the Coordinating Nodes will no longer request that additional replicas be stored on that node. h!jQ ubh–)r} }r~ (h X/ :attr:`Types.NodeReplicationPolicy.allowedNode`r h!jQ h"h#h$hšh&}r€ (UreftypeX attrhœ‰hX' Types.NodeReplicationPolicy.allowedNodeU refdomainX pyr h(]h)]Urefexplicit‰h*]h+]h,]hŸh h¡Nh¢Nuh.K2h]r‚ h¤)rƒ }r„ (h j h&}r… (h*]h+]r† (h©j X py-attrr‡ eh)]h(]h,]uh!j} h]rˆ hCX' Types.NodeReplicationPolicy.allowedNoder‰ …rŠ }r‹ (h U h!jƒ ubah$h¯ubaubhCX… is used to list all nodes that are allowed to replicate to the target. If it is absent, then any node may replicate to the target. rŒ …r }rŽ (h X… is used to list all nodes that are allowed to replicate to the target. If it is absent, then any node may replicate to the target. h!jQ ubh–)r }r (h X7 :attr:`Types.NodeReplicationPolicy.allowedObjectFormat`r‘ h!jQ h"h#h$hšh&}r’ (UreftypeX attrhœ‰hX/ Types.NodeReplicationPolicy.allowedObjectFormatU refdomainX pyr“ h(]h)]Urefexplicit‰h*]h+]h,]hŸh h¡Nh¢Nuh.K2h]r” h¤)r• }r– (h j‘ h&}r— (h*]h+]r˜ (h©j“ X py-attrr™ eh)]h(]h,]uh!j h]rš hCX/ Types.NodeReplicationPolicy.allowedObjectFormatr› …rœ }r (h U h!j• ubah$h¯ubaubhCX“ is used to list all object formats that may be replicated to the target. If it is absent, then any object format may be replicated to the target.rž …rŸ }r (h X“ is used to list all object formats that may be replicated to the target. If it is absent, then any object format may be replicated to the target.h!jQ ubeubcdocutils.nodes
note
r¡ )r¢ }r£ (h Xz :class:`Types.NodeReplicationPolicy` is not currently implemented on the CN and so is ignored when making decisions as to which MN should be used for replication. In a future release, the CN scheduler will utilize the :class:`Types.NodeReplicationPolicy` to limit the types of objects that are scheduled to be replicated to a MN, but for now the information is not used at all.r¤ h!jÈ h"h#h$Unoter¥ h&}r¦ (h*]h+]h)]h(]h,]uh.Nh/hh]r§ hu)r¨ }r© (h j¤ h!j¢ h"h#h$hxh&}rª (h*]h+]h)]h(]h,]uh.K5h]r« (h–)r¬ }r (h X$ :class:`Types.NodeReplicationPolicy`r® h!j¨ h"h#h$hšh&}r¯ (UreftypeX classhœ‰hX Types.NodeReplicationPolicyU refdomainX pyr° h(]h)]Urefexplicit‰h*]h+]h,]hŸh h¡Nh¢Nuh.K5h]r± h¤)r² }r³ (h j® h&}r´ (h*]h+]rµ (h©j° X py-classr¶ eh)]h(]h,]uh!j¬ h]r· hCX Types.NodeReplicationPolicyr¸ …r¹ }rº (h U h!j² ubah$h¯ubaubhCX· is not currently implemented on the CN and so is ignored when making decisions as to which MN should be used for replication. In a future release, the CN scheduler will utilize the r» …r¼ }r½ (h X· is not currently implemented on the CN and so is ignored when making decisions as to which MN should be used for replication. In a future release, the CN scheduler will utilize the h!j¨ ubh–)r¾ }r¿ (h X$ :class:`Types.NodeReplicationPolicy`rÀ h!j¨ h"h#h$hšh&}rÁ (UreftypeX classhœ‰hX Types.NodeReplicationPolicyU refdomainX pyr h(]h)]Urefexplicit‰h*]h+]h,]hŸh h¡Nh¢Nuh.K5h]rà h¤)rÄ }rÅ (h jÀ h&}rÆ (h*]h+]rÇ (h©j X py-classrÈ eh)]h(]h,]uh!j¾ h]rÉ hCX Types.NodeReplicationPolicyrÊ …rË }rÌ (h U h!jÄ ubah$h¯ubaubhCX{ to limit the types of objects that are scheduled to be replicated to a MN, but for now the information is not used at all.rÍ …rÎ }rÏ (h X{ to limit the types of objects that are scheduled to be replicated to a MN, but for now the information is not used at all.h!j¨ ubeubaubh)rÐ }rÑ (h X¦ .. _history: https://redmine.dataone.org/projects/d1/repository/changes/documents/Projects/cicore/architecture/api-documentation/source/design/ReplicationOverview.txtU
referencedrÒ Kh!jÈ h"h#h$h%h&}rÓ (h…h†h(]rÔ hah)]h*]h+]h,]rÕ hauh.K7h/hh]ubeubeubeh U UtransformerrÖ NU
footnote_refsr× }rØ UrefnamesrÙ }rÚ h„]rÛ hasUsymbol_footnotesrÜ ]rÝ Uautofootnote_refsrÞ ]rß Usymbol_footnote_refsrà ]rá U citationsrâ ]rã h/hUcurrent_linerä NUtransform_messagesrå ]ræ (cdocutils.nodes
system_message
rç )rè }ré (h U h&}rê (h*]UlevelKh(]h)]Usourceh#h+]h,]UlineKUtypeUINFOrë uh]rì hu)rí }rî (h U h&}rï (h*]h+]h)]h(]h,]uh!jè h]rð hCX9 Hyperlink target "replicationoverview" is not referenced.rñ …rò }ró (h U h!jí ubah$hxubah$Usystem_messagerô ubjç )rõ }rö (h U h&}r÷ (h*]UlevelKh(]h)]Usourceh#h+]h,]UlineKUtypejë uh]rø hu)rù }rú (h U h&}rû (h*]h+]h)]h(]h,]uh!jõ h]rü hCX- Hyperlink target "index-0" is not referenced.rý …rþ }rÿ (h U h!jù ubah$hxubah$jô ubeUreporterr NUid_startr KU
autofootnotesr ]r U
citation_refsr }r Uindirect_targetsr ]r Usettingsr (cdocutils.frontend
Values
r or
}r (Ufootnote_backlinksr KUrecord_dependenciesr
NUrfc_base_urlr Uhttps://tools.ietf.org/html/r U tracebackr ˆUpep_referencesr NUstrip_commentsr NU
toc_backlinksr Uentryr U
language_coder Uenr U datestampr NUreport_levelr KU_destinationr NU
halt_levelr KU
strip_classesr Nh@NUerror_encoding_error_handlerr Ubackslashreplacer Udebugr NUembed_stylesheetr ‰Uoutput_encoding_error_handlerr Ustrictr! U
sectnum_xformr" KUdump_transformsr# NU
docinfo_xformr$ KUwarning_streamr% NUpep_file_url_templater& Upep-%04dr' Uexit_status_levelr( KUconfigr) NUstrict_visitorr* NUcloak_email_addressesr+ ˆUtrim_footnote_reference_spacer, ‰Uenvr- NUdump_pseudo_xmlr. NUexpose_internalsr/ NUsectsubtitle_xformr0 ‰Usource_linkr1 NUrfc_referencesr2 NUoutput_encodingr3 Uutf-8r4 U
source_urlr5 NUinput_encodingr6 U utf-8-sigr7 U_disable_configr8 NU id_prefixr9 U U tab_widthr: KUerror_encodingr; UUTF-8r< U_sourcer= h#Ugettext_compactr> ˆU generatorr? NUdump_internalsr@ NUsmart_quotesrA ‰Upep_base_urlrB U https://www.python.org/dev/peps/rC Usyntax_highlightrD UlongrE Uinput_encoding_error_handlerrF j! Uauto_id_prefixrG UidrH Udoctitle_xformrI ‰Ustrip_elements_with_classesrJ NU
_config_filesrK ]rL Ufile_insertion_enabledrM ˆUraw_enabledrN KU
dump_settingsrO NubUsymbol_footnote_startrP K UidsrQ }rR (hjx hj hh1hjÈ hOhYhh1hjÐ uUsubstitution_namesrS }rT h$h/h&}rU (h*]h(]h)]Usourceh#h+]h,]uU footnotesrV ]rW UrefidsrX }rY (hO]rZ hUah]r[ hauub.