€cdocutils.nodes document q)q}q(U nametypesq}q(Xuc08qˆX.use case 08 - replication policy communicationqNXhistoryqˆuUsubstitution_defsq }q Uparse_messagesq ]q Ucurrent_sourceq NU decorationqNUautofootnote_startqKUnameidsq}q(hUuc08qhU,use-case-08-replication-policy-communicationqhUhistoryquUchildrenq]q(cdocutils.nodes target q)q}q(U rawsourceqX .. _UC08:UparentqhUsourceqXj/var/lib/jenkins/jobs/API_Documentation_trunk/workspace/api-documentation/source/design/UseCases/08_uc.txtqUtagnameqUtargetqU attributesq }q!(Uidsq"]Ubackrefsq#]Udupnamesq$]Uclassesq%]Unamesq&]Urefidq'huUlineq(KUdocumentq)hh]ubcdocutils.nodes section q*)q+}q,(hUhhhhUexpect_referenced_by_nameq-}q.hhshUsectionq/h }q0(h$]h%]h#]h"]q1(hheh&]q2(hheuh(Kh)hUexpect_referenced_by_idq3}q4hhsh]q5(cdocutils.nodes title q6)q7}q8(hX.Use Case 08 - Replication Policy Communicationq9hh+hhhUtitleq:h }q;(h$]h%]h#]h"]h&]uh(Kh)hh]q…q?}q@(hh9hh7ubaubcsphinx.addnodes index qA)qB}qC(hUhh+hhhUindexqDh }qE(h"]h#]h$]h%]h&]UentriesqF]qG((UsingleqHX Use Case 08Uindex-0qIUNtqJ(hHXUC08hIUNtqK(hHXReplication PolicyhIUNtqL(hHXpolicyhIUNtqMeUinlineqN‰uh(Kh)hh]ubh)qO}qP(hUhh+hhhhh }qQ(h"]h#]h$]h%]h&]h'hIuh(Kh)hh]ubcdocutils.nodes definition_list qR)qS}qT(hUhh+hhh-}hUdefinition_listqUh }qV(h$]h%]h#]h"]qWhIah&]uh(Nh)hh3}qXhIhOsh]qY(cdocutils.nodes definition_list_item qZ)q[}q\(hX+Revisions View document revision history_. hhShhhUdefinition_list_itemq]h }q^(h$]h%]h#]h"]h&]uh(K h]q_(cdocutils.nodes term q`)qa}qb(hX Revisionsqchh[hhhUtermqdh }qe(h$]h%]h#]h"]h&]uh(K h]qfh=X Revisionsqg…qh}qi(hhchhaubaubcdocutils.nodes definition qj)qk}ql(hUh }qm(h$]h%]h#]h"]h&]uhh[h]qncdocutils.nodes paragraph qo)qp}qq(hX View document revision history_.hhkhhhU paragraphqrh }qs(h$]h%]h#]h"]h&]uh(K h]qt(h=XView document revision qu…qv}qw(hXView document revision hhpubcdocutils.nodes reference qx)qy}qz(hXhistory_Uresolvedq{KhhphU referenceq|h }q}(UnameXhistoryq~UrefuriqX”https://redmine.dataone.org/projects/d1/repository/changes/documents/Projects/cicore/architecture/api-documentation/source/design/UseCases/08_uc.txtq€h"]h#]h$]h%]h&]uh]qh=Xhistoryq‚…qƒ}q„(hUhhyubaubh=X.…q…}q†(hX.hhpubeubahU definitionq‡ubeubhZ)qˆ}q‰(hX_Goal Communication of replication policy metadata between Member Nodes and Coordinating Nodes. hhShhhh]h }qŠ(h$]h%]h#]h"]h&]uh(K h)hh]q‹(h`)qŒ}q(hXGoalqŽhhˆhhhhdh }q(h$]h%]h#]h"]h&]uh(K h]qh=XGoalq‘…q’}q“(hhŽhhŒubaubhj)q”}q•(hUh }q–(h$]h%]h#]h"]h&]uhhˆh]q—ho)q˜}q™(hXYCommunication of replication policy metadata between Member Nodes and Coordinating Nodes.qšhh”hhhhrh }q›(h$]h%]h#]h"]h&]uh(K h]qœh=XYCommunication of replication policy metadata between Member Nodes and Coordinating Nodes.q…qž}qŸ(hhšhh˜ubaubahh‡ubeubhZ)q }q¡(hXŸSummary The replication policy of Member Nodes (MN) indicates factors such as the amount of storage space available, bandwidth constraints, the types of data and metadata that can be managed, and perhaps access control restrictions. This information is used by Coordinating Nodes (CN) to balance the distribution of data packages throughout the DataONE system to achieve the goals of data package persistence and accessibility. Initial implementation of the infrastructure emphasizes the preservation goals of replication, i.e. ensuring sufficient copies of data and metadata objects are available to ensure ongoing access to the content. The replication system offers the possibility of more dynamic control over the flow of information between systems to support science research. For example, the replication services may be exploited as a mechanism for staging data in preparation for experiments at HPC nodes or centers. hhShhhh]h }q¢(h$]h%]h#]h"]h&]uh(Kh)hh]q£(h`)q¤}q¥(hXSummaryq¦hh hhhhdh }q§(h$]h%]h#]h"]h&]uh(Kh]q¨h=XSummaryq©…qª}q«(hh¦hh¤ubaubhj)q¬}q­(hUh }q®(h$]h%]h#]h"]h&]uhh h]q¯(ho)q°}q±(hX£The replication policy of Member Nodes (MN) indicates factors such as the amount of storage space available, bandwidth constraints, the types of data and metadata that can be managed, and perhaps access control restrictions. This information is used by Coordinating Nodes (CN) to balance the distribution of data packages throughout the DataONE system to achieve the goals of data package persistence and accessibility.q²hh¬hhhhrh }q³(h$]h%]h#]h"]h&]uh(Kh]q´h=X£The replication policy of Member Nodes (MN) indicates factors such as the amount of storage space available, bandwidth constraints, the types of data and metadata that can be managed, and perhaps access control restrictions. This information is used by Coordinating Nodes (CN) to balance the distribution of data packages throughout the DataONE system to achieve the goals of data package persistence and accessibility.qµ…q¶}q·(hh²hh°ubaubho)q¸}q¹(hXñInitial implementation of the infrastructure emphasizes the preservation goals of replication, i.e. ensuring sufficient copies of data and metadata objects are available to ensure ongoing access to the content. The replication system offers the possibility of more dynamic control over the flow of information between systems to support science research. For example, the replication services may be exploited as a mechanism for staging data in preparation for experiments at HPC nodes or centers.qºhh¬hhhhrh }q»(h$]h%]h#]h"]h&]uh(Kh]q¼h=XñInitial implementation of the infrastructure emphasizes the preservation goals of replication, i.e. ensuring sufficient copies of data and metadata objects are available to ensure ongoing access to the content. The replication system offers the possibility of more dynamic control over the flow of information between systems to support science research. For example, the replication services may be exploited as a mechanism for staging data in preparation for experiments at HPC nodes or centers.q½…q¾}q¿(hhºhh¸ubaubehh‡ubeubhZ)qÀ}qÁ(hX&Actors Member Node, Coordinating Node hhShhhh]h }qÂ(h$]h%]h#]h"]h&]uh(K h)hh]qÃ(h`)qÄ}qÅ(hXActorsqÆhhÀhhhhdh }qÇ(h$]h%]h#]h"]h&]uh(K h]qÈh=XActorsqÉ…qÊ}qË(hhÆhhÄubaubhj)qÌ}qÍ(hUh }qÎ(h$]h%]h#]h"]h&]uhhÀh]qÏho)qÐ}qÑ(hXMember Node, Coordinating NodeqÒhhÌhhhhrh }qÓ(h$]h%]h#]h"]h&]uh(K h]qÔh=XMember Node, Coordinating NodeqÕ…qÖ}q×(hhÒhhÐubaubahh‡ubeubhZ)qØ}qÙ(hX`Preconditions - Member Node is registered with a Coordinating Node - Member Node is operational hhShhhh]h }qÚ(h$]h%]h#]h"]h&]uh(K$h)hh]qÛ(h`)qÜ}qÝ(hX PreconditionsqÞhhØhhhhdh }qß(h$]h%]h#]h"]h&]uh(K$h]qàh=X Preconditionsqá…qâ}qã(hhÞhhÜubaubhj)qä}qå(hUh }qæ(h$]h%]h#]h"]h&]uhhØh]qçcdocutils.nodes bullet_list qè)qé}qê(hUh }që(UbulletqìX-h"]h#]h$]h%]h&]uhhäh]qí(cdocutils.nodes list_item qî)qï}qð(hX2Member Node is registered with a Coordinating Nodeqñh }qò(h$]h%]h#]h"]h&]uhhéh]qóho)qô}qõ(hhñhhïhhhhrh }qö(h$]h%]h#]h"]h&]uh(K#h]q÷h=X2Member Node is registered with a Coordinating Nodeqø…qù}qú(hhñhhôubaubahU list_itemqûubhî)qü}qý(hXMember Node is operational h }qþ(h$]h%]h#]h"]h&]uhhéh]qÿho)r}r(hXMember Node is operationalrhhühhhhrh }r(h$]h%]h#]h"]h&]uh(K$h]rh=XMember Node is operationalr…r}r(hjhjubaubahhûubehU bullet_listrubahh‡ubeubhZ)r }r (hXÓTriggers - A Member Node changes available capacity, bandwidth or some other operating characteristic - A Member Node changes available services - A Member Node software stack is updated (e.g. new version) hhShhhh]h }r (h$]h%]h#]h"]h&]uh(K-h)hh]r (h`)r }r(hXTriggersrhj hhhhdh }r(h$]h%]h#]h"]h&]uh(K-h]rh=XTriggersr…r}r(hjhj ubaubhj)r}r(hUh }r(h$]h%]h#]h"]h&]uhj h]rhè)r}r(hUh }r(hìX-h"]h#]h$]h%]h&]uhjh]r(hî)r}r(hX[A Member Node changes available capacity, bandwidth or some other operating characteristic h }r(h$]h%]h#]h"]h&]uhjh]r ho)r!}r"(hXZA Member Node changes available capacity, bandwidth or some other operating characteristicr#hjhhhhrh }r$(h$]h%]h#]h"]h&]uh(K'h]r%h=XZA Member Node changes available capacity, bandwidth or some other operating characteristicr&…r'}r((hj#hj!ubaubahhûubhî)r)}r*(hX)A Member Node changes available services h }r+(h$]h%]h#]h"]h&]uhjh]r,ho)r-}r.(hX(A Member Node changes available servicesr/hj)hhhhrh }r0(h$]h%]h#]h"]h&]uh(K*h]r1h=X(A Member Node changes available servicesr2…r3}r4(hj/hj-ubaubahhûubhî)r5}r6(hX<A Member Node software stack is updated (e.g. new version) h }r7(h$]h%]h#]h"]h&]uhjh]r8ho)r9}r:(hX:A Member Node software stack is updated (e.g. new version)r;hj5hhhhrh }r<(h$]h%]h#]h"]h&]uh(K,h]r=h=X:A Member Node software stack is updated (e.g. new version)r>…r?}r@(hj;hj9ubaubahhûubehjubahh‡ubeubhZ)rA}rB(hXGPost Conditions - The DataONE system is updated with current state of available resources - Change in replication policy may trigger adjustments to content that is replicated to that node (e.g. if storage capacity shrinks or is enlarged) - Operation is logged - Watchers are notified in change in DataONE system property hhShhhh]h }rC(h$]h%]h#]h"]h&]uh(K8h)hh]rD(h`)rE}rF(hXPost ConditionsrGhjAhhhhdh }rH(h$]h%]h#]h"]h&]uh(K8h]rIh=XPost ConditionsrJ…rK}rL(hjGhjEubaubhj)rM}rN(hUh }rO(h$]h%]h#]h"]h&]uhjAh]rPhè)rQ}rR(hUh }rS(hìX-h"]h#]h$]h%]h&]uhjMh]rT(hî)rU}rV(hXHThe DataONE system is updated with current state of available resources h }rW(h$]h%]h#]h"]h&]uhjQh]rXho)rY}rZ(hXGThe DataONE system is updated with current state of available resourcesr[hjUhhhhrh }r\(h$]h%]h#]h"]h&]uh(K0h]r]h=XGThe DataONE system is updated with current state of available resourcesr^…r_}r`(hj[hjYubaubahhûubhî)ra}rb(hX’Change in replication policy may trigger adjustments to content that is replicated to that node (e.g. if storage capacity shrinks or is enlarged) h }rc(h$]h%]h#]h"]h&]uhjQh]rdho)re}rf(hX‘Change in replication policy may trigger adjustments to content that is replicated to that node (e.g. if storage capacity shrinks or is enlarged)rghjahhhhrh }rh(h$]h%]h#]h"]h&]uh(K2h]rih=X‘Change in replication policy may trigger adjustments to content that is replicated to that node (e.g. if storage capacity shrinks or is enlarged)rj…rk}rl(hjghjeubaubahhûubhî)rm}rn(hXOperation is logged h }ro(h$]h%]h#]h"]h&]uhjQh]rpho)rq}rr(hXOperation is loggedrshjmhhhhrh }rt(h$]h%]h#]h"]h&]uh(K5h]ruh=XOperation is loggedrv…rw}rx(hjshjqubaubahhûubhî)ry}rz(hX<Watchers are notified in change in DataONE system property h }r{(h$]h%]h#]h"]h&]uhjQh]r|ho)r}}r~(hX:Watchers are notified in change in DataONE system propertyrhjyhhhhrh }r€(h$]h%]h#]h"]h&]uh(K7h]rh=X:Watchers are notified in change in DataONE system propertyr‚…rƒ}r„(hjhj}ubaubahhûubehjubahh‡ubeubeubcdocutils.nodes comment r…)r†}r‡(hX•@startuml images/08_uc.png package "DataONE" actor "Coordinating Node" as CN actor "Member Node" as MN usecase "13. Authorization" as author usecase "01. MN Policy" as policy usecase "XX. Notify Watchers" as NOTIFY usecase "XX. CN Replication" as CNSYNC CN -- policy MN -- policy policy ..> author: <> policy ..> NOTIFY: <> policy ..> CNSYNC: <> @endumlhh+hhhUcommentrˆh }r‰(U xml:spacerŠUpreserver‹h"]h#]h$]h%]h&]uh(KIh)hh]rŒh=X•@startuml images/08_uc.png package "DataONE" actor "Coordinating Node" as CN actor "Member Node" as MN usecase "13. Authorization" as author usecase "01. MN Policy" as policy usecase "XX. Notify Watchers" as NOTIFY usecase "XX. CN Replication" as CNSYNC CN -- policy MN -- policy policy ..> author: <> policy ..> NOTIFY: <> policy ..> CNSYNC: <> @endumlr…rŽ}r(hUhj†ubaubcdocutils.nodes image r)r‘}r’(hX.. image:: images/08_uc.png hh+hhhUimager“h }r”(UuriX design/UseCases/images/08_uc.pngr•h"]h#]h$]h%]U candidatesr–}r—U*j•sh&]uh(KKh)hh]ubho)r˜}r™(hX*Figure 1.* Use case 08.ršhh+hhhhrh }r›(h$]h%]h#]h"]h&]uh(KLh)hh]rœ(cdocutils.nodes emphasis r)rž}rŸ(hX *Figure 1.*h }r (h$]h%]h#]h"]h&]uhj˜h]r¡h=X Figure 1.r¢…r£}r¤(hUhjžubahUemphasisr¥ubh=X Use case 08.r¦…r§}r¨(hX Use case 08.hj˜ubeubj…)r©}rª(hX$@startuml images/08_seq.png participant "Replication API" as c_rep << Coordinating Node >> participant "Replication API" as m_rep << Member Node >> c_rep -> m_rep: ping() m_rep --> c_rep: [ACK, PolicyChange] m_rep -> c_rep: 1.a. setDefaultReplicationPolicy (system_token, policy) m_rep -> c_rep: 1.b. setReplicationPolicy (sess, policy, ID) m_rep -> c_rep: 2.a. getDefaultReplicationPolicy (sess) m_rep -> c_rep: 2.b. getReplicationPolicy (sess, ID) c_rep -> m_rep: policy note right Policy: Where When What gets replicated end note @endumlhh+hhhjˆh }r«(jŠj‹h"]h#]h$]h%]h&]uh(K`h)hh]r¬h=X$@startuml images/08_seq.png participant "Replication API" as c_rep << Coordinating Node >> participant "Replication API" as m_rep << Member Node >> c_rep -> m_rep: ping() m_rep --> c_rep: [ACK, PolicyChange] m_rep -> c_rep: 1.a. setDefaultReplicationPolicy (system_token, policy) m_rep -> c_rep: 1.b. setReplicationPolicy (sess, policy, ID) m_rep -> c_rep: 2.a. getDefaultReplicationPolicy (sess) m_rep -> c_rep: 2.b. getReplicationPolicy (sess, ID) c_rep -> m_rep: policy note right Policy: Where When What gets replicated end note @endumlr­…r®}r¯(hUhj©ubaubj)r°}r±(hX.. image:: images/08_seq.png hh+hhhj“h }r²(UuriX!design/UseCases/images/08_seq.pngr³h"]h#]h$]h%]j–}r´U*j³sh&]uh(Kbh)hh]ubho)rµ}r¶(hX8*Figure 2.* Communication of Replication Policy Metadatar·hh+hhhhrh }r¸(h$]h%]h#]h"]h&]uh(Kch)hh]r¹(j)rº}r»(hX *Figure 2.*h }r¼(h$]h%]h#]h"]h&]uhjµh]r½h=X Figure 2.r¾…r¿}rÀ(hUhjºubahj¥ubh=X- Communication of Replication Policy MetadatarÁ…rÂ}rÃ(hX- Communication of Replication Policy Metadatahjµubeubho)rÄ}rÅ(hX **Notes**rÆhh+hhhhrh }rÇ(h$]h%]h#]h"]h&]uh(Kfh)hh]rÈcdocutils.nodes strong rÉ)rÊ}rË(hjÆh }rÌ(h$]h%]h#]h"]h&]uhjÄh]rÍh=XNotesrÎ…rÏ}rÐ(hUhjÊubahUstrongrÑubaubhè)rÒ}rÓ(hUhh+hhhjh }rÔ(hìX-h"]h#]h$]h%]h&]uh(Khh)hh]rÕ(hî)rÖ}r×(hXŽThe goal as stated originally for this use case was "Communication of replication policy metadata among Member Nodes and Coordinating Nodes." hjÒhhhhûh }rØ(h$]h%]h#]h"]h&]uh(Nh)hh]rÙho)rÚ}rÛ(hXThe goal as stated originally for this use case was "Communication of replication policy metadata among Member Nodes and Coordinating Nodes."rÜhjÖhhhhrh }rÝ(h$]h%]h#]h"]h&]uh(Khh]rÞh=XThe goal as stated originally for this use case was "Communication of replication policy metadata among Member Nodes and Coordinating Nodes."rß…rà}rá(hjÜhjÚubaubaubhî)râ}rã(hXäThere should be some restriction on how often replication policy can be changed to avoid thrashing that might occur for example, if a MN flips between significant differences in storage capacities (low to high, then low again). hjÒhhhhûh }rä(h$]h%]h#]h"]h&]uh(Nh)hh]råho)ræ}rç(hXãThere should be some restriction on how often replication policy can be changed to avoid thrashing that might occur for example, if a MN flips between significant differences in storage capacities (low to high, then low again).rèhjâhhhhrh }ré(h$]h%]h#]h"]h&]uh(Kkh]rêh=XãThere should be some restriction on how often replication policy can be changed to avoid thrashing that might occur for example, if a MN flips between significant differences in storage capacities (low to high, then low again).rë…rì}rí(hjèhjæubaubaubeubh)rî}rï(hX¡.. _history: https://redmine.dataone.org/projects/d1/repository/changes/documents/Projects/cicore/architecture/api-documentation/source/design/UseCases/08_uc.txtU referencedrðKhh+hhhhh }rñ(hh€h"]ròhah#]h$]h%]h&]róhauh(Kph)hh]ubeubehUU transformerrôNU footnote_refsrõ}röUrefnamesr÷}røh~]rùhyasUsymbol_footnotesrú]rûUautofootnote_refsrü]rýUsymbol_footnote_refsrþ]rÿU citationsr]rh)hU current_linerNUtransform_messagesr]r(cdocutils.nodes system_message r)r}r(hUh }r(h$]UlevelKh"]h#]Usourcehh%]h&]UlineKUtypeUINFOr uh]r ho)r }r (hUh }r (h$]h%]h#]h"]h&]uhjh]rh=X*Hyperlink target "uc08" is not referenced.r…r}r(hUhj ubahhrubahUsystem_messagerubj)r}r(hUh }r(h$]UlevelKh"]h#]Usourcehh%]h&]UlineKUtypej uh]rho)r}r(hUh }r(h$]h%]h#]h"]h&]uhjh]rh=X-Hyperlink target "index-0" is not referenced.r…r}r(hUhjubahhrubahjubeUreporterrNUid_startrKU autofootnotesr ]r!U citation_refsr"}r#Uindirect_targetsr$]r%Usettingsr&(cdocutils.frontend Values r'or(}r)(Ufootnote_backlinksr*KUrecord_dependenciesr+NU rfc_base_urlr,Uhttps://tools.ietf.org/html/r-U tracebackr.ˆUpep_referencesr/NUstrip_commentsr0NU toc_backlinksr1Uentryr2U language_coder3Uenr4U datestampr5NU report_levelr6KU _destinationr7NU halt_levelr8KU strip_classesr9Nh:NUerror_encoding_error_handlerr:Ubackslashreplacer;Udebugr<NUembed_stylesheetr=‰Uoutput_encoding_error_handlerr>Ustrictr?U sectnum_xformr@KUdump_transformsrANU docinfo_xformrBKUwarning_streamrCNUpep_file_url_templaterDUpep-%04drEUexit_status_levelrFKUconfigrGNUstrict_visitorrHNUcloak_email_addressesrIˆUtrim_footnote_reference_spacerJ‰UenvrKNUdump_pseudo_xmlrLNUexpose_internalsrMNUsectsubtitle_xformrN‰U source_linkrONUrfc_referencesrPNUoutput_encodingrQUutf-8rRU source_urlrSNUinput_encodingrTU utf-8-sigrUU_disable_configrVNU id_prefixrWUU tab_widthrXKUerror_encodingrYUUTF-8rZU_sourcer[hUgettext_compactr\ˆU generatorr]NUdump_internalsr^NU smart_quotesr_‰U pep_base_urlr`U https://www.python.org/dev/peps/raUsyntax_highlightrbUlongrcUinput_encoding_error_handlerrdj?Uauto_id_prefixreUidrfUdoctitle_xformrg‰Ustrip_elements_with_classesrhNU _config_filesri]Ufile_insertion_enabledrjˆU raw_enabledrkKU dump_settingsrlNubUsymbol_footnote_startrmKUidsrn}ro(hh+hIhShh+hjîuUsubstitution_namesrp}rqhh)h }rr(h$]h"]h#]Usourcehh%]h&]uU footnotesrs]rtUrefidsru}rv(h]rwhahI]rxhOauub.