{"id":22302681,"url":"https://github.com/dataoneorg/d1_replication","last_synced_at":"2025-03-26T00:28:25.089Z","repository":{"id":71253776,"uuid":"311727860","full_name":"DataONEorg/d1_replication","owner":"DataONEorg","description":"CN replication service","archived":false,"fork":false,"pushed_at":"2020-11-10T17:01:17.000Z","size":773,"stargazers_count":0,"open_issues_count":2,"forks_count":1,"subscribers_count":11,"default_branch":"main","last_synced_at":"2025-01-30T21:17:20.932Z","etag":null,"topics":["cicore","d1-cn","java"],"latest_commit_sha":null,"homepage":"","language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/DataONEorg.png","metadata":{"files":{"readme":"README.txt","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.txt","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2020-11-10T16:59:50.000Z","updated_at":"2020-11-10T17:07:57.000Z","dependencies_parsed_at":"2023-05-18T23:45:25.064Z","dependency_job_id":null,"html_url":"https://github.com/DataONEorg/d1_replication","commit_stats":null,"previous_names":[],"tags_count":31,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/DataONEorg%2Fd1_replication","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/DataONEorg%2Fd1_replication/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/DataONEorg%2Fd1_replication/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/DataONEorg%2Fd1_replication/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/DataONEorg","download_url":"https://codeload.github.com/DataONEorg/d1_replication/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":245565185,"owners_count":20636257,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["cicore","d1-cn","java"],"created_at":"2024-12-03T18:40:47.470Z","updated_at":"2025-03-26T00:28:25.064Z","avatar_url":"https://github.com/DataONEorg.png","language":"Java","funding_links":[],"categories":[],"sub_categories":[],"readme":"====\n    This work was created by participants in the DataONE project, and is\n    jointly copyrighted by participating institutions in DataONE. For\n    more information on DataONE, see our web site at http://dataone.org.\n\n      Copyright ${year}\n\n    Licensed under the Apache License, Version 2.0 (the \"License\");\n    you may not use this file except in compliance with the License.\n    You may obtain a copy of the License at\n\n      http://www.apache.org/licenses/LICENSE-2.0\n\n    Unless required by applicable law or agreed to in writing, software\n    distributed under the License is distributed on an \"AS IS\" BASIS,\n    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n    See the License for the specific language governing permissions and\n    limitations under the License.\n\n    $Id$\n====\n\nDataONE Replication Component\n-----------------------------\n\nd1_replication is a small set of java classes that manage Member Node to \nMember Node replication of data and metadata objects by monitoring changes\nin the DataONE system. This is a component of the Coordinating Node software stack,\nand is instantiated by the d1_process_daemon web application.  When additions\nor changes to objects are registered on the Coordinating Nodes, the \nReplicationManager class evaluates the ReplicationPolicy section of the \nSystemMetadata for the given object, along with the Node capabilities for\npotential replica Member Nodes, and builds replication tasks that are executed\non a Coordinating Node.  These replication tasks initiate replication by\ncalling MNReplication.replicate() on the target Member Node.\n\nObject Responsibilities\n~~~~~~~~~~~~~~~~~~~~~~~\nReplicationEventListener\n - listens on the systemMetadataMap for changes to SystemMetadata.\n - creates ReplicationTasks in the ReplicationTaskRepository.\n - it's instantiation also triggers the ReplicationManager's instantiation. \n\nReplicationManager \n - upon instantiation initializes scheduled task execution of:\n   - QueuedReplicationAuditor\n   - StaleReplicationRequestAuditor\n   - ReplicationTaskProcessor\n - it contains the logic for evaluating a pid and determining which replicate requests to issue.\n   \nReplicationTaskProcessor\n - grabs a page of replicationTasks from the repo, and calls ReplicationManager.createAndQueueTasks\n \nStaleReplicationRequestAuditor\n - grabs a page of replicationTasks older than the cutoff and in REQUESTED state\n - resolves them by checking for presence of the replica on the MN.  either COMPLETE, or FAIL\n \nQueuedReplicationAuditor\n - by MemberNode \n\n\nInstallation\n------------\nUse 'mvn clean install' to install the jar file locally.  The d1_process_daemon\ncomponent depends on d1_replication and includes this jar in its deployed\npackage.\n\nSee LICENSE.txt for the details of distributing this software. \n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdataoneorg%2Fd1_replication","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdataoneorg%2Fd1_replication","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdataoneorg%2Fd1_replication/lists"}